TwoDEngine is a scenegraph based 2D game engine written in C# and Monogame. As such it should port to any platform supported by the Monogame project. It has currently been ported and preliminarily tested on IOS, Android, Windows Phone 8, OSX, Windows (OpenGL), and Windows 8 Store.

It consists of a registry system that improves on the XNA "service" system and a set of plugins that register themselves in the registry.

The list of plugins is undergoing expansion. Right now the available plugins are:
  • Scenegraph: This is the heart of the system and defines an extensible scene graph of display objects. Currently implemented are Simple Sprites, Animated Sprites, Multi-layer Tilemaps, TileMap Aware Sprites and Moving Objects.
  • ModeManager: This is a simple FInite State Machine that improves code readability and maintainability.


Source code, Examples and Documentation

The library docs for TwoDEngine are here
The source projects for the libraries as well as an example program compiled for all current platforms is here
(When examining source code outside of the IDEs, look in the Windows (OpenGL) project, all other projects link to that code.)
New Arrow.png

I am writing an episodic tutorial on building a cross platform games with Monogame and TwoDEngine in my Monogamey blog. The first blog in the series is here


TwoDEngine contains a copy of the Farseer Physics code base. This is made available by the Farseer Project under the Microsoft Permissive License
The rest of TwoDEgngine is provided under the Artistic License 2.0

Tools for use with TwoDEngine

  • Tiled is a free and very complete multi-platform tile map editor. TwoDEngine currently supports Tiled TMX maps with map data in XML format, hidden layers and tile properties. If you are going to use it with TwoDEngine please see these detailed instructions for using Tiled with TwoDEngine
    New Arrow.png
  • MakeTileSet is a script for Photoshop. It takes a directory of individual image files, sizes them and assembles them as a single tileset image for use in Tiled.