This is the Monogame flavour of EcsR3!
It is an ECS style framework which puts architecture, design and flexibility above most other concerns.
It builds on top of the existing EcsR3 framework and adds conventions and bootstrappers for Monogame specific scenarios.
As with all EcsR3 engine integrations you will need to create your own application instance (EcsR3MonoGameApplication
), and then you just use that instead of your normal Game
instance, like so:
static void Main()
{
// No longer need this, as we use applications with EcsR3
//using (var game = new Game1()) { game.Run(); }
using(new DemoApplication()){}
}
There is still a Game
instance under the hood, but we abstract it away, so in almost all scenarios you wont need to touch the game as you will treat the Application
as your entry point.
There are custom versions of most common monogame objects that you can inject into any of your classes, such as:
IEcsR3ContentManager
IEcsR3Game
IEcsR3GraphicsDevice
IEcsR3GraphicsDeviceManager
IEcsR3SpriteBatch
There is a book available which covers the main parts for the core EcsR3 framework which can be found here:
Will add monogame specific documentation within this repo as time goes on, but for the moment hop on discord to know more.
There is also a demo application within the Asteroids
folder.