BloomEngine
From entities and events to worlds you can play.
An early-stage C++ engine with an entity-component-system architecture, an integrated editor, Lua scripting, and physics for top-down and side-scrolling games.

Overview / the idea
BloomEngine explores game-engine development through a C++ ECS architecture and an event dispatcher connecting its systems. SDL2 handles rendering and hardware access, Dear ImGui powers the editor, FMOD handles audio, and Lua supports level and gameplay scripting. It is a personal passion project and an ongoing way to explore C++ and game programming.
Capabilities / what makes it tick
Entities, components, events
An ECS foundation with an event dispatcher for communication between engine systems.
An integrated editor
Entity and component editing, a project browser, a live viewport, a debug console, and a Lua text editor.
Three views of 2D
Physics modes support top-down, side-scrolling games, and isomorphic with Lua for gameplay and level logic.
Dependencies / stack
- C++
- SDL2
- Dear ImGui
- FMOD
- Lua
- ECS
My contribution
Software Engineer
Case study / under the surface
Systems built around entities
BloomEngine uses an entity-component-system architecture, with an event dispatcher helping its systems communicate. The engine combines SDL2 rendering and hardware access with FMOD audio and Lua scripting.
An editor as part of the engine
The Dear ImGui editor exposes entities and their components alongside a project-file browser and live game viewport. A debug console reports system messages, while the embedded text editor supports work on Lua scripts for level design and gameplay.
An ongoing engine experiment
The engine supports both top-down and side-scrolling physics modes. The public project notes describe point-and-click movement for isometric games as a future direction. BloomEngine remains an early-stage personal exploration of C++ and game programming.
Continue exploring