Ideas in code.
Worlds in
motion.
A C++ game engine to explore what you can build. 2D rendering, scenes, audio, and tools in an architecture you can understand from start to finish.
The pieces to bring
your ideas to life.
From the first event to the last pixel. Concrete systems working together, with their implementation open for exploration.
From code to screen.
No black boxes.
The engine coordinates. The scene defines the game. Managers handle the resources and systems you need.
A representation of the pipeline implemented in RenderManager.
Code comes to life.

Runner
A city that never stops.
Run, jump, and slide.
Read the code.
Understand the engine.
Build what comes next.
A C++20 foundation, dependencies declared with CMake, and documentation connected to the source code.
Browse documentation ↗int main() {
Engine engine;
while (engine.IsRunning()) {
engine.ProcessEvent();
engine.Update();
if (!engine.HasFocus()) {
sf::sleep(sf::milliseconds(10));
continue;
}
engine.Render();
}
}An engine in motion.
Tetris joins the engine's scenes
A new scene exercises input, timers, shape rendering, and board logic.
A shared particle manager
Particle management moves out of the Runner game and becomes one of the engine's services.
Synchronized scene pauses
The engine coordinates pause state when focus or scene changes.