This is the Monogame flavour of EcsRx!
It is an ECS style framework which puts architecture, design and flexibility above most other concerns.
It builds on top of the existing EcsRx framework and adds conventions and bootstrappers for Monogame specific scenarios.
As with all EcsRx engine integrations you will need to create your own application instance (EcsRxMonoGameApplication
), 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 EcsRx
//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:
IEcsRxContentManager
IEcsRxGame
IEcsRxGraphicsDevice
IEcsRxGraphicsDeviceManager
IEcsRxSpriteBatch
There is a book available which covers the main parts for the core EcsRx 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 Roguelike2d
folder (its not a roguelike2d example, it is just a placeholder).