Game engine · Personal project
BlackRoseEngine
A 2D game engine in C++, with an ECS core, Lua scripting and a custom editor.

BlackRoseEngine is a 2D game engine I am building from scratch to understand, in depth, how games are made, and to have a place to try out architecture ideas I can't always try at work.
Architecture
The engine is built around an entity-component-system using EnTT. Transforms, sprites, animation, physics bodies, hit boxes and scripts are all components, so behaviour comes from composing small pieces instead of deep inheritance. Physics runs on Box2D, and rendering and input on SDL2.
Scripting
Game logic lives in Lua, connected through sol3 with a custom API. Gameplay code stays separate from the engine: scripts can be changed and reloaded without recompiling, and the engine's C++ stays focused on systems.
Editor and tools
The engine has its own editor built with Dear ImGui: a level tree, an entity inspector for adding and editing components, gizmos for moving and rotating objects, and play mode inside the editor. Projects, assets and levels are saved as YAML, so they are readable and play well with version control.