My unnamed 2D game engine (sometimes known as
sdlgame since that's the GitHub repo name) has been a long-term on and off personal project since July 2016. It's primarily just been a fun thing to work on, without any real end goal for shipping a game. It also has served to be one of the biggest sources of learning C++ and understanding the consequences of certain lower level designs. It has, however, successfully been used to bring a game from start to completion! Clive Sturridge's Battlement Defense Legacy Collection uses this engine, and the experience of using it was surprisingly pretty good!
The engine doesn't really prescribe any big opinions on structure or API (there's not even any sort of ECS included) but the biggest inspirations were probably PICO-8 and TIC-80. Fantasy console APIs are a great sweet spot of what most people need for making 2D games, and I just wanted something that has a similar API, but without the other restrictions like code size, or color palettes.
It is made up of several pre-existing libraries:
- SDL - windowing, OpenGL context, input, DLL support
- Wren - embedded scripting language
- NanoVG - 2d graphics
- PhysicsFS - virtual filesystem, zip loading
- dear imgui - debugging tools
- SoLoud - audio engine
- TMX C Loader - loading Tiled maps
- GLEW - GL extension support
sdlgame currently runs on Windows, and web via Emscripten. It has ran on OS X in the past, but it is probably suffering from some bitrot. It probably also runs on Linux, but I haven't bothered to try.