Course framework for DA376B Game Engine Architecture, Malmö University.
Assets can be downloaded from the course page (not included in the repository).
- A compiler that supports C++20
- Source control: git
- Build tool: CMake
- Editor or IDE of choice, for example -
- Visual Studio 2022 with the Desktop development with C++ workload (this workload includes CMake).
- Visual Studio Code (Cross Platform). Build and launch scripts included.
- Scripting: LUA
- Backend for window, sound, input etc: SDL3
- OpenGL extension loader: glew-cmake
- Model loader: assimp (v5.0.1 200112 - newer versions have issues with Mixamo models).
- User interface: Dear ImGui
- Vector & matrix math: glm
- Image loader & writer: stb
- Entity-Component-System: EnTT
- Multi-channel audio mixer: SDL_mixer (missing proper cmake support?)
- Advanced animation: ozz-animation
- JSON reader & writer: nlohmann-json
- File dialog based on Dear ImGui: ImGuiFileDialog
- LUA binding: sol2
Note: A clean build will take some time to complete since dependencies are compiled from source.
# 1. Open PowerShell and clone the repository
git clone https://github.com/cjgribel/eduEngine.git
# 2. Navigate to the project directory
cd eduEngine
# 3. Generate project
cmake -S . -B Build -G "Visual Studio 17 2022"Now open the Visual Studio solution file, located in eduEngine/Build.
Switch between Debug, Release, or any other configuration as needed.
Press F5 to Build and Run.
-
Install VS Code Extensions:
- C/C++ (by Microsoft)
-
Install Ninja. Ninja is a fast, cross-platform build system.
Windows (using Chocolatery):
choco install ninja
MacOS (using Homebrew):
brew install ninja
-
Set up project
# 1. Open a terminal (on Windows, use Developer Command Prompt) and clone the repository git clone https://github.com/cjgribel/eduEngine.git # 2. Navigate to the project directory and open VS Code cd eduEngine code .
-
In VS Code, use the provided scripts to Configure, Build and Debug the program.
💡 To run a Task, open the Command Palette with
Cmd+Shift+P(macOS) orCtrl+Shift+P(Windows), select "Tasks: Run Task", and choose the desired Task.💡 Launch actions are triggered from the Run and Debug panel (
Shift+Cmd+D). Select the launch configuration, then press the green arrow orF5to launch.Debug mode:
- Configure and Build
CMake Configure (Debug) (Ninja)CMake Build (Debug)
- Launch Debugger
Launch (Debug) (Windows/Linux/macOS)(choose platform)
Release mode:
- Configure and Build
CMake Configure (Release) (Ninja)CMake Build (Release)
- Launch
Launch (Release) (Windows/Linux/macOS)(choose platform)
- Configure and Build
💡 Unix Makefile projects typically builds much slower than Ninja-based projects.
To use Unix Makefiles for building, follow the same process as for Cross-Platform and use script versions with (Default Generator) instead of (Ninja) in their names.
-
Multi-configuration Generators (Xcode, CLion etc)
The overall workflow should be similar to the one provided for Visual Studio, just set the desired generator (
-G <generator>) when running CMake.Example (Xcode):
cmake -S . -B Build -G Xcode -
Single-configuration Generators
When configuring using CMake, set the desired generator (
-G <generator>) and use-DCMAKE_BUILD_TYPE=Debugor-DCMAKE_BUILD_TYPE=Release.
💡 Use
cmake --helpto list available generators on your system.
Doxygen Work in progress
Some of the documentation is AI generated.
Elements from Mixamo and Quaternius.

Sponza (Dabrovic, Meinl, McGuire, Hansen) with elements from Mixamo.

- Thanks to all students who provided feedback on instructions, code etc.
- GLDebugMessageCallback by Plasmoxy and liam-middlebrook
- entt-meets-sol2
