A simple C++ game engine
My goal when writing µEngine was to learn about the internal workings of a game engine. µEngine aims mostly to be easy-to-understand. This is certainly not an attempt at a performance-driven or highly-configurable game engine.
- C++20 compliant
- Configurable settings
- Command line arguments
- Uses a modern build system
By order of likeliness:
- Configurable levels
- Cross-platform
--help
: display µEngine options--settings-file
: path to the settings file - defaults toconfig/settings.toml
--settings-format
: format of the settings file - defaults to 'toml'- '--dry-run': only run the set up and tear down steps
- '--disable-graphics': disable the graphics manager
The settings in config/settings.toml
correspond to the following table:
Section | Name | Type | Default value |
---|---|---|---|
graphics | width | int | 640 |
graphics | height | int | 480 |
graphics | windowName | std::string | "MicroEngine" |
graphics | framerateLimit | int | 60 |
graphics | enableVsync | bool | true |
graphics | fullscreen | bool | false |
The "official" build system for µEngine is CMake, but the Makefile is there to provide "aliases" to avoid typing long commands every time.
The usual build steps go like this:
- Install dependencies
- Clone the repo
make release
ormake debug
depending on what you want./build/µEngine
Otherwise you can always follow the typical CMake build steps:
- Install dependencies
- Clone the repo
mkdir build && cd build
cmake .. && make
./µEngine
- Install dependencies
- Clone the repo
make doc
- Open
build/html/index.html
with the web browser of your choice
A big thanks to the following: