/ecsrx.monogame

Monogame flavoured EcsRx setup and implementations

Primary LanguageC#MIT LicenseMIT

EcsRx.Monogame

This is the Monogame flavour of EcsRx!

License Nuget Version Join Discord Chat Documentation

What is it?

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.

Getting started

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()){}
}

WHAT HAVE YOU DONE WITH MY Game

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

Docs

There is a book available which covers the main parts for the core EcsRx framework which can be found here:

Documentation

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).