A 2D game engine written in C++20. Built with CMake and common OpenGL libraries.
Understand how the engine boots, processes updates, and shuts down.
See Lifecycle for the full execution order.
Foundational utilities that sit outside the service system.
CEngine organizes core functionality into modular services that cover rendering, input, and more.
Services are registered with the engine and can be accessed via facades. See Lifecycle for execution order and Services guide for extension guidance.
Helpers for submitting primitive draw commands via the Render service.
Standalone helpers for occasional tasks.
This ./sandbox is where we have our demo game to test the features of this
engine and create example functionality.
- C++20 compiler and CMake 3.16+
- GLFW 3
- OpenGL development libraries
- GLM
- SDL2
- ccache
- GLAD, stb, Tweeny, nlohmann/json fetched automatically
brew install cmake glfw glm sdl2 ccachesudo apt update
sudo apt install -y build-essential cmake libglfw3-dev libglm-dev \
libgl1-mesa-dev libsdl2-dev ccachecmake -S . -B build
cmake --build build --target MyGame --parallelPass -DCMAKE_BUILD_TYPE=Release for an optimized build.
The executable lands in build/.
For macOS run ./sh/tests.sh
See CONTRIBUTING.md for guidelines and AGENTS.md for repository-specific instructions.
CEngine by Timothy Marois