Skip to content

adelhales/ArcadeEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arcade Engine

C++20 Platforms License

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.

🎓 Udemy Course

Build Your Own 2D Game Engine in C++20 with SFML 3

Learn how to build this engine from scratch in my complete Udemy course.

📦 Dependencies

All dependencies are managed via CMake's FetchContent:

🛠️ Prerequisites

  • C++20 compiler (MSVC, GCC or Clang).
  • CMake 3.28+
  • Git for cloning.

📂 Project Structure

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, …

⚡ Building the Project

git clone https://github.com/adelhales/ArcadeEngine.git
cd ArcadeEngine
cmake -B Build -D CMAKE_BUILD_TYPE=Debug
cmake --build Build --config Debug -j

The executable will be located in Build/Debug (or Build).

🧾 Compiler Options

Strict compilation flags are enabled by default:

  • MSVC: /W4 /WX
  • GCC/Clang: -Wall -Wextra -Werror

🎮 Running the Game

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 + SContent/Screenshots/

📸 Screenshots


Overview of the 18 Games built with the Engine

📜 License

This project is licensed under the terms of the MIT License.


© 2025 Adel Hales