Skip to content

Course framework for DA376B Game Engine Architecture, Malmö University 2025

License

Notifications You must be signed in to change notification settings

cjgribel/eduEngine

Repository files navigation

eduEngine

Course framework for DA376B Game Engine Architecture, Malmö University 2025.
Assets can be downloaded from the course page (not included in the repository).

Requirements

  • 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.

Under consideration

  • Scripting: LUA

Fetched dependencies

  • 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

Under consideration

Build Instructions

Note: A clean build will take some time to complete since dependencies are compiled from source.

🖥️ Windows with Visual Studio

# 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.

🖥️ Cross-Platform with VS Code and Ninja

  1. Install VS Code Extensions:

    • C/C++ (by Microsoft)
  2. Install Ninja. Ninja is a fast, cross-platform build system.

    Windows (using Chocolatery):

    choco install ninja

    MacOS (using Homebrew):

    brew install ninja
  3. 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 .
  4. 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) or Ctrl+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 or F5 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)

🖥️ macOS with VS Code and Unix Makefile

💡 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.

Other Platforms and IDEs

  • 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.

Documentation

Doxygen Work in progress

Samples (assets not part of repo)

Elements from Mixamo and Quaternius.
example1

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

Other credits

About

Course framework for DA376B Game Engine Architecture, Malmö University 2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published