peppermint is a simple 2.5D game engine written in C++, making use of OpenGL as its graphics API. This is just the runtime - I also made an editor program that might be visible here.
It also has a project managing/sharing website, which can be viewed in this repo.
peppermint uses a standard game object and component model for creating a set of scenes that can be switched between programatically. This allows the objects in a scene to be highly customised, facilitating the creation of complex behaviours. It supports custom scripts as well - an example of such scripts can be seen in src/scripts/TestComponent.cpp and include/scripts/TestComponent.h.
While there unfortunately isn't a proper demo video, a video of all the tests done to ensure the program met all its requirements can be found below. I recommend skipping around a bit to see various things as it is quite long.
| Term | Meaning |
|---|---|
| game object | a thing with a single purpose within a game - anything from something that renders a square to something that provides character control |
| scene | a collection of game objects |
| asset | a set of information reused by multiple game objects, possibly across multiple scenes (eg an image) |
This was my first full project in a C-family programming language - as such, lots of the code isn't great, and some interesting design choices were made in places.
