Small pieces.
Possibilities in motion.
Awesome Engine is a 2D engine organized into scenes. A shared context brings together the systems each game uses, from input to the final frame.
Explore the audited code ↗A foundation
you can understand.
Developed by Carlos Cortina, Awesome Engine brings together C++ game logic and reusable services on SFML. Its seven included scenes show how to connect graphics, input, sound, and interfaces in small, complete games.
Its design favors composition: scenes receive an EngineContext and use managers with specific responsibilities. The MIT-licensed code lets you study, modify, and extend that foundation.
The repository has not yet published an origin story or formal goals. Here we describe its observable design and verified capabilities.
What you can explore today.
Rendering and views
Sprites, shapes, and text on sf::RenderTexture. Views with sf::View and bloom + monitor post-processing.
Implemented02Scenes and lifecycle
Start, Update, Render, OnEvent, OnPause, and OnCleanup. Deferred scene changes and restarts.
Implemented03Resources and memory
Texture, sound, and font caches. RAII, standard containers, and ownership with unique_ptr.
Implemented04Input and audio
Actions with multiple bindings. Keyboard, mouse, and gamepad; music, effects, and global volume.
Implemented05Interface and tools
TGUI, pause overlay, custom cursor, PNG screenshots with F12, and diagnostics with spdlog.
Implemented06Configuration and saves
Window, time, and audio configuration in JSON. Local persistence for scores and state.
ImplementedOne context.
Connected systems.
Managers live by value in EngineContext. SceneFactory constructs and owns scenes through unique_ptr.
EngineContext
SceneFactory → Scene
Bounce · Clicker · MemoryCard · TicTacToe · MineSweeper · Runner · Tetris
A frame's journey
The interface and cursor are drawn after scene post-processing. Glitch and inversion exist in the code, but are not active in the audited chain.
Concrete tools.
Explicit versions.
It also matters to
know the limits.
The development configuration found uses Windows with MinGW, Ninja, and GDB. Linux and macOS are not verified; path capitalization differences require review.
The engine does not include a visual editor, ECS, general physics engine, scripting, or web or mobile export. Game collisions and physics are specific to each scene.