A custom, hackable 2D Game Engine written in C.
Check out the hand-crafted documentation website here.
For advanced C developers, you can generate Doxygen documentation with doxygen Doxyfile
in the engine
directory.
Head on over to the yoyoengine hub to download the latest editor release.
Yoyoengine started as a small game in SDL, and evolved into a fully featured, general purpose 2D game engine.
- Easy to use visual editor
- Multi platform support (Windows, Linux, Web)
- Basic Networking through SDL_net
- Asset bundling by default, for optimized builds.
- A plugin system, with a few premade plugins for things like Discord RPC (see yoyo-rpc)
- Generic Gamepad and Controller abstraction layer
- First class Lua scripting support, with native C scripting for complex or performance critical tasks
- SDL2 (windowing, rendering, audio, input, networking, etc)
- Nuklear (UI)
- Uthash (Hash tables)
- Jansson (JSON parsing)
- Lua (Scripting)
- Custom Entity Component System
- Custom binary packing format for assets, with zlib for compression
- Custom physics and collision system
In May 2023, I started working on a visual novel game in SDL2 as a way to learn C for the very first time. While I have yet to finish that game, the dopamine loop of working with a lower level language quickly spiraled me into a scope creep grind, and I ended up with a fully featured, general purpose game engine.
I work on random projects of interest, and occasionally build games with this engine.
Feel free to check out my work on GitHub or Itch.io.
You can get in touch with me through my portfolio, on discord @zoogies
, or by opening an issue on this repository. I don't usually check my email, but you can try that too.
- The listed dependencies, for making this project possible.
- Kaidiak, for producing the engine splash screen sound effect.
- Ben Mathes, for creating icons used in the editor.
- The SDL discord, a must join community if you use SDL.