Is MonoGame reliable?

MonoGame currently has ( that we know of ) 28 games published on the iOS App Store, and 5 on the Android Market place and also some recently published games on the Mac App Store and Linux markets. If any of these titles are failing, please get in contact with the developers to confirm if the issue is MonoGame related or a bug within their game.

MonoGame is not perfect, but as already mentioned it is being actively developed and improved with everyone's help. 2 Sundays ago we did a presentation at the FOSDEM conference which outlined what we will be working on in the coming year. First off is ES 2.0 support in the MonoGame 2.5 release ( hopefully out in the next 2-3 weeks ). This will add shader support to all of our platforms. Then after that we will be focused on adding 3D and therefore our biggest release MonoGame 3.0.

You can see a video of our FOSDEM presentation here - http://www.youtube.com/watch?v=kLWE52mkii0 And a teaser video of how far we are along with 3D support here - http://www.youtube.com/watch?v=vEAdC-4gfHI - It is hhe MIX10 3D Reach demo running on MacOS X that we showed publically for the first time at FOSDEM 2012.

If you use twitter, follow our progress @MonoGameTeam. We tend to talk shop on irc.gnome.org or irc.gimp.org on the #MonoGame channel. We also try to answer questions in the monogame.codeplex.com discussion area.

I hope the above information helps.

D.


This question was asked a long time ago, but deserves an update.

The MonoGame team has a showcase of popular indie games. At the time of writing that includes:

  • Fez (Xbox and Windows)
  • Skulls of the Shogun (Windows, Windows Phone, Playstation4)
  • Infinite Flight (iOS, Windows Phone and Android in development)
  • Bastion (iOS, Mac, Linux, Windows, Chrome)
  • Transistor (Windows, Playstation 4)
  • Mercenary Kings (Windows, Playstation 4, Playstation Vita, Mac OSX)
  • TowerFall: Ascension (Playstation 4, XBox One)
  • Stardew Valley (Windows, Linux, Mac OSX, PlayStation 4, Xbox One, Nintendo Switch)

among others.

At the end of the day theory is interesting, but nothing beats the reality of seeing extremely successful indie games using the platform.

EDIT 27-Jan-2014

As of Jan 2014 Monogame has announced that they will be supporting PS4 but has made no such announcement for the XBox One.

EDIT 9-Sep-2014

Added several additional games. Also check out the #MonoGame hash tag on twitter.

EDIT 1-June-2017 Monogame has supported XBox One since last 2016.

EDIT 20-August-2020 Monogame supports Dot Net Core.


Mono products (www.xamarin.com) are getting better and better with each version.

Currently I'm porting a 2d game from Windows Phone (XNA) to iphone and using ExEn (http://andrewrussell.net/exen/) and Monotouch (http://xamarin.com/monotouch) and it works really fine. (3d is unsupported right now)

I've done some test using monogame (http://monogame.codeplex.com) v2 and found some issues that I didnt find them using ExEn. With ExEn (almost) everything works out of the box. ExEn includes an excelent working example for Silverlight, iphone, android, etc. This example was my primary learning source.

Other positive point to ExEn is its develepor: Andrew Rusell (https://twitter.com/#!/_AndrewRussell), is XNA/DirectX MVP (http://andrewrussell.net/2011/10/look-at-me-im-an-mvp/)

What's wrong with ExEn? its developemnt appears to be stopped.

Monogame community and developers appears to be more active. They recently release a new version (v2.1) that I didnt test it. v2.1 includes our first steps to 3D support as well as bug fixes, optimizations and more XNA 4.0 support (http://cocoa-mono.org/archives/452/monogame-takes-tentative-steps-into-3d-monogame-2-1-announced/)

Personally I'll continue my porting using ExEn because everything is working up to now (and I almost finish it :) but for my next project I'll monogame 2.1 a try.


I am just finishing a simultaneous/portable development project. For 4 of my 5 platforms I use Monogame as my render base (my 5th is HTML5 Canvas). You can see my results at http://unseenu.wikispaces.com/AnyGUI.

My experiences are thus:

The Good:

I started with the C#/JSIL version for Canvas since that was the biggest unknown. My first port after that was to OSX and Monogame.

The OSX port went very smoothly. I've already worked with Monogame before so it took me maybe a week to get my render layer ported.

After that it literally took a few hours to get the Windows OGL port running.

It took about 2 days to get the iOS port running. About half of that was dealing with build issues and the iOS tools. The other half was getting touch input working as that was my first mobile platform.

I'm working on Android right now, and its the first place I am seeing what seem to be Monogame portability issues. Clipping seems to be off. Other then that, it was a matter of hours getting it up and again most of that time ws getting the build environment right. Ive needed no code changes. (Though this clipping thing is an pen problem.)

The Bad:

I'm on OSX and the tools can be a bit funky. Biggest issue is that the Monogame support for Xamarin Studio/Monodevelop just doesn't work on the Mac. This is not as big an issue as it sounds though. The templates work all right, what is broken are the library references. So I just downloaded Monogame separately and I change the library References in each project to be those downloaded libraries after I create the project. One I learned to do that, I had few tool problems.

In general, C# handles version control pretty badly. Its very picky about library versions, in part because Microsoft did not want to worry about .NET backwards compatibility.

This shows up in trying to do multi-platform monogame stuff. I've had a lot of grief with that in the past. Even though the monogame API is identical, when you compile code against it that bakes a reference to the particular platform libraries for Monogame into your code. Its not so bad if thats application code, since applications need their own build for each platform anyway, but if you want intermediate libraries it means you need a separate build of each intermediate library for each platform, which is unacceptable.

My solution in this project has been to define my own interface that sits between my game and monogame so I can inject the actual monogame code through dependancy injection t run time. I'll be writing about this eventually on my site in more detail.

The other issue of course is that you need Xamarin Mono for iOS and Android to develop for those platforms and that costs some money.

SO the short answer is this. In general its a good API and the implementations are mostly faithful between platforms. The form it comes in and the tools you need to work with are still a bit rough and can give you some grief. In the end, thats not so different from every other game platform I've ever worked on.