Skip to content

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Arcade Engine

C++20 Platforms License

A simple and fast modern C++20 game engine for 2D and 3D game development.
It leverages powerful open-source libraries for graphics, audio, JSON, logging, UI, enums, and math.

🎓 Udemy Course

Build a 2D & 3D Game Engine in C++20 with SFML & OpenGL

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

📦 Dependencies

Third-party libraries are managed via CMake’s FetchContent.

🛠️ Prerequisites

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

📂 Project Structure

ArcadeEngine/
├── Content/
├── Engine/
│   ├── Include/
│   └── Source/
├── Games/
│   ├── Include/
│   └── Source/
└── Vendor/
  • Content: Textures, Sounds, Fonts, Shaders, Models, …
  • Engine: Core, Graphics, Managers, Scene, Utils
  • Games: Config, Types, Scenes
  • Vendor: glad, tinyobjloader

⚡ 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 Games

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/

📸 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