AWESOME ENGINE / TECHNICAL GUIDE

Installation and build

Set up CMake and a C++20 compiler, build the executable, and run it from the correct directory.

On this page

Project requirements

Tool Verified requirement
C++ compiler Support for C++20 and the standard library features used, including std::format.
CMake Version 3.28 or later.
Git Required to clone the project and download SFML through FetchContent.
Ninja Required if you choose the generator used in this guide’s commands.
Internet connection Initial configuration downloads dependencies.

The environment configured in .vscode uses Windows, MinGW GCC, Ninja, and GDB. The following commands are derived from CMakeLists.txt and that configuration; they do not represent a certified build matrix.

Get the code

In a terminal with the tools available in PATH:

git clone https://github.com/Arukado01/AwesomeEngine.git
cd AwesomeEngine

To inspect exactly the code described in this documentation, you can select the audited revision in a fresh clone:

git checkout 5a6dfacd86414c4cdfaa7157b533330f173a3126

This last command leaves the clone at a specific commit. If you intend to develop changes, create your own branch before working. The documentation also links every source to that revision so you can compare it with future updates.

Configure and build

cmake -S . -B Build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build Build --parallel

CMake collects the .cpp files from Engine/Source and Games/Source into a single executable named AwesomeEngine. Dependencies are fetched through FetchContent:

  • SFML 3.1.0.
  • nlohmann/json 3.12.0.
  • spdlog 1.16.0.
  • TGUI 1.13.0.
  • magic_enum 0.9.8.

For a separate Release build:

cmake -S . -B BuildRelease -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build BuildRelease --parallel

The project also includes MSVC compiler options, but the steps above use Ninja and the compiler available in your environment. Do not mix generators or compilers in the same build directory.

Run on Windows

Keep the terminal at the repository root, next to Content:

.\Build\AwesomeEngine.exe

The documented revision requests Tetris as its initial scene. No working game selector is registered in this revision: the initial scene is set in Engine.cpp.

The working directory matters. Configuration, shaders, the font, and other resources are loaded through relative paths such as Content/Config.json. Running from Build may prevent the engine from finding them.

Work with VS Code

The repository contains build tasks and a GDB debugging configuration. The executable path is Build/AwesomeEngine.exe, and the working directory remains at the root.

Some editor settings contain absolute paths from the author’s computer. Adjust compiler and tool paths to your installation; do not copy them as universal requirements.

If building or startup fails

See Troubleshooting, which separates tool, dependency download, resource, and known code limitations. No installer or cross-platform binary is published as part of this guide.

Sources

Based on verified source code.Found an issue? →