A modern C++20 game engine designed for fast and efficient 2D game development. It leverages powerful open-source libraries to handle graphics, audio, data, logging, UI and enums.
Learn how to build this engine from scratch in my complete Udemy course.
All dependencies are managed via CMake's FetchContent:
- C++20 compiler (MSVC, GCC or Clang).
- CMake 3.28+
- Git for cloning.
ArcadeEngine/
├── CMakeLists.txt
├── Engine/
│ ├── Include/
│ └── Source/
├── Games/
│ ├── Include/
│ └── Source/
└── Content/
- Engine: Core, Graphics, Managers, Scene, Utils.
- Games: Config, Types, Scenes.
- Content: Textures, Sounds, Fonts, Shaders, …
git clone https://github.com/adelhales/ArcadeEngine.git
cd ArcadeEngine
cmake -B Build -D CMAKE_BUILD_TYPE=Debug
cmake --build Build --config Debug -jThe executable will be located in Build/Debug (or Build).
Strict compilation flags are enabled by default:
- MSVC:
/W4 /WX - GCC/Clang:
-Wall -Wextra -Werror
Make sure the Content folder is in the same folder from which you run the executable.
Keyboard/Mouse and PlayStation/Xbox gamepads are supported.
| Action | Input |
|---|---|
| Launch game (menu) | Mouse Left / Gamepad South |
| Show controls (menu) | Mouse Right / Gamepad West |
| Toggle pause overlay | Esc / Gamepad Start |
| Back to menu | Overlay: Menu / M / Gamepad Select |
| Restart current game | Overlay: Restart / R |
| Quit application | Overlay: Quit / Alt + F4 / ⌘ + Q |
| Screenshot window | Ctrl + Shift + S → Content/Screenshots/ |
Overview of the 18 Games built with the Engine
This project is licensed under the terms of the MIT License.
© 2025 Adel Hales