Skip to content

avadae/minigin

Repository files navigation

Minigin

Minigin is a very small project using SDL3 and glm for 2D c++ game projects. It is in no way a game engine, only a barebone start project where everything sdl related has been set up. It contains glm for vector math, to aleviate the need to write custom vector and matrix classes.

Build Status Build Status GitHub Release

Goal

Minigin can/may be used as a start project for the exam assignment in the course Programming 4 at DAE. In that assignment students need to recreate a popular 80's arcade game with a game engine they need to program themselves. During the course we discuss several game programming patterns, using the book 'Game Programming Patterns' by Robert Nystrom as reading material.

Disclaimer

Minigin is, despite perhaps the suggestion in its name, not a game engine. It is just a very simple SDL3 ready project with some of the scaffolding in place to get started. None of the patterns discussed in the course are used yet (except singleton which use we challenge during the course). It is up to the students to implement their own vision for their engine, apply patterns as they see fit, create their game as efficient as possible.

Use

Get the source from this project, or since students need to have their work on github too, they can use this repository as a template. Hit the "Use this template" button on the top right corner of the github page of this project.

Windows version

Either

  • Open the root folder in Visual Studio 2026; this will be recognized as a cmake project.

Or

  • Install CMake
  • Install CMake and CMake Tools extensions in Visual Code
  • Open the root folder in Visual Code, this will be recognized as a cmake project.

Or

  • Use whatever editor you like :)

Emscripten (web) version

On windows

For installing all of the needed tools on Windows I recommend using Chocolatey. You can then run the following in a terminal to install what is needed:

choco install -y cmake
choco install -y emscripten
choco install -y ninja
choco install -y python

In a terminal, navigate to the root folder. Run this:

mkdir build_web
cd build_web
emcmake cmake ..
emmake ninja

To be able to see the webpage you can start a python webserver in the build_web folder

python -m http.server

Then browse to http://localhost:8000 and you're good to go.

On OSX

On Mac you can use homebrew

brew install cmake
brew install emscripten
brew install python

In a terminal on OSX, navigate to the root folder. Run this:

mkdir build_web
cd build_web
emcmake cmake .. -DCMAKE_OSX_ARCHITECTURES=""
emmake make

To be able to see the webpage you can start a python webserver in the build_web folder

python3 -m http.server

Then browse to http://localhost:8000 and you're good to go.

Github Actions

This project is build with github actions.

  • The CMake workflow builds the project in Debug and Release for Windows and serves as a check that the project builds on that platform.
  • The Emscripten workflow generates a web version of the project and publishes it as a github page.
    • The url of that page will be https://<username>.github.io/<repository>/
  • You can embed this page with

<iframe style="position: absolute; top: 0px; left: 0px; width: 1024px; height: 576px;" src="https://<username>.github.io/<repository>/" loading="lazy"></iframe>

About

Small start project for assignments in the course Programming 4 @ DAE

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •