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 releaseormake debugdepending on what you want./build/µEngine
Otherwise you can always follow the typical CMake build steps:
- Install dependencies
- Clone the repo
mkdir build && cd buildcmake .. && make./µEngine
- Install dependencies
- Clone the repo
make doc- Open
build/html/index.htmlwith the web browser of your choice
A big thanks to the following: