Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I made a little Windows Phone game with XNA and Farseer Physics engine and I want to port that game to iOS and Android. Is Monogame the only software that I can use or are there alternatives?

I don't want to change my entire code. It should be easy to port the game.

Is it possible to use Unity to port the game or is it better and easier to use other software?

share|improve this question
"Should be easy"? How do you arrive at that conclusion? – Almo Feb 10 '14 at 20:57
I hope that I don't need to change the entire code. Is there something similar to Monogame? What is the difference between Xamarin and Monogame? – Homer_Simpson Feb 10 '14 at 21:26
up vote 4 down vote accepted

MonoGame is a set of libraries for various platforms (such as iOS/Android) and tools that mostly re-implements the XNA interface. One of the most notable differences between MonoGame and .NET is the workflow around content projects.

Xamarin is a product which allows you to build iOS/Android apps in C# that run on Mono. You still require Xamarin to build an iOS/Android game that uses MonoGame. In this scenario, Xamarin lets you compile and deploy the game, but MonoGame is the library you're using.

Unity3D would require you to re-architect your game. You could re-use graphical and sound assets, and even large portions of code, but it would be more of a "rewrite" than a "port", so it would most likely take significantly longer. (Note that you do not require Xamarin to create an iOS/Android game in Unity3D.)

share|improve this answer

IIRC, it is the either Monogame or Xamarin. Xamarin costs a lot more, but I can definitely say it is worth the money, depends on your financial position as well. MonoGame is okay, but I have heard of a lot of porting issues regarding this method. Good Luck!!

share|improve this answer
MonoGame runs on top of Xamarin's Mono for iOS product. You need both. Mono for iOS is pretty solid. MonoGame is kinda buggy. – Andrew Russell Feb 11 '14 at 7:44

The only alternative to MonoGame, as far as I am aware, is ExEn, which is a library I made. It's missing several XNA features (it only works for SpriteBatch games). The code quality is widely considered to be superior to MonoGame's (although it has been a while since I have looked myself).

MonoGame, I think, gives a lot more guidance to beginners. ExEn expects you to be a competent coder and not afraid to read source code (especially the samples).

I have no idea whether ExEn will still work unmodified. The have been lots of iOS and Mono updates, and I have not updated ExEn for a long time.

Both ExEn and MonoGame require Xamarin's Mono for iOS / Mono for Android as the underlying platform.

Basically MonoGame and ExEn each provide an implementation of XNA. While Mono provides an implementation of .NET.

Unity requires you port from XNA to its own API.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.