This is a C# game engine built on top of Monogame made in 2 years alongside my game Unnamed (source code). The engine is inspired by Monocle, Celeste's engine.
The engine includes
- An Entity-Component framework, with entities that can Update and Render, have components and have other entity as children
- Platformer physics system with structures like solids and actors inspired by this article
- A small basic physics engine based on Erin Catto's work
- Various premade components such as timers, different renderers like sprites, Sound utility, state machines...
- a sound system with spacial sound using FMOD
- A computationally efficient light drawing system inspired by this article
- Data loading and caching (with .ase files support thanks to Monogame Aseprite)
- A simple particle system
- A simple UI system that can scale with screensize
- Input Management
- Various utils (bezier curves, raycasting, drawing primitives...)
Everything is already featured in the csproj, but this uses the Monogame.Framework.DesktopGL and Monogame.Aseprite packages.