Course framework for DA376B Game Engine Architecture, Malmö University 2025.
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 and 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 orF5
to 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=Debug
or-DCMAKE_BUILD_TYPE=Release
.
💡 Use
cmake --help
to list available generators on your system.
Doxygen Work in progress
Elements from Mixamo and Quaternius.
Sponza (Dabrovic, Meinl, McGuire, Hansen) with elements from Mixamo.
- GLDebugMessageCallback by Plasmoxy and liam-middlebrook
- entt-meets-sol2