Skip to content
jwr@malifex~/projects/bloomengine

Type help for commands. Press Enter to run, Up or Down for command history, and Escape to dismiss output.

jwrOS / navigation

← selected systemsproject.reader / bloomengine
2D game engineExperimental

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.

project-bloomengine.png

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

01

Entities, components, events

An ECS foundation with an event dispatcher for communication between engine systems.

02

An integrated editor

Entity and component editing, a project browser, a live viewport, a debug console, and a Lua text editor.

03

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.

Enter runs a command. Up and Down recall history. Tab completes commands; press Tab again to choose a suggestion. Escape dismisses suggestions. Control L clears output. Control C cancels input. Control backtick opens or minimizes the window. Focus the title bar to move with arrows or H J K L; hold Shift to resize. Focus the scrollback to scroll with arrows or H J K L.