AWESOME ENGINE / TECHNICAL GUIDE

Introduction

What Awesome Engine includes, what you can learn from its code, and how to interpret the status of each system.

On this page

A 2D engine you can explore from the inside

Awesome Engine is a game engine written in C++20, built on SFML. Its core connects scenes to rendering, resource, input, audio, interface, and persistence services. The games in the repository show how to use these services from C++ code.

This documentation uses commit 5a6dfac as its reference. It describes the contents of that revision; changes observed only in the local working tree are marked as in development.

What you will find

  • Seven game scenes: Bounce, Clicker, MemoryCard, TicTacToe, MineSweeper, Runner, and Tetris.
  • 2D rendering: SFML drawable objects, intermediate textures, and Bloom and Monitor post-processing.
  • Action-based input: keyboard, mouse, and controllers, with multiple bindings for the same action.
  • Shared services: resources, time, audio, particles, JSON saves, and PNG screenshots.
  • TGUI interface: widgets and a pause overlay integrated with window events.

These systems connect through EngineContext. Each game implements the Scene interface and maintains its own objects and rules. The documented revision has no ECS architecture or visual editor.

  1. Install and build the project.
  2. Review the runtime configuration.
  3. Follow the engine loop and its dependencies.
  4. Read the scene contract.
  5. Explore rendering, resources, and input and audio.

How to interpret status labels

Status Meaning on this site
Implemented Concrete code exists in the reference revision. This does not certify every platform or scenario.
In development Implementation or changes exist in the local working tree but are not yet part of the reference commit.
Experimental The code exists, but its integration is disabled or is not part of the normal flow described here.
Planned Requires a documented intention from the project. Features are not assigned this status without that evidence.

AudioGroup, SpriteAnimator, SweptAabb, and the shared cooldown clock were observed as local work. Do not expect those APIs when cloning the reference revision.

Platform scope

The repository includes a working configuration for Windows with MinGW, Ninja, and GDB. The audit does not establish successful builds or execution on Linux, macOS, mobile devices, or browsers. The libraries used are not enough on their own to claim full engine compatibility.

The engine code is under the MIT license. History entry names correspond to real commits, not invented release versions.

Sources

Based on verified source code.Found an issue? →