The XNA framework was Microsoft’s attempt to reach a wide range of game developers, including professionals as well as indie developers while targeting their different platforms Windows, Xbox 360 and Windows Phone. Although the framework was used and loved by many developers, Microsoft quit its further development in 2014 with version XNA 4.0.
Still this doesn’t mean that it’s dead. Thanks to MonoGame, an open source implementation of the XNA API, there is a great alternative, that not only guarantees a nearly 100% code reuse but also allows cross-platform development for a lot of targets, including Android, iOS and Linux.
The fantastic foundation of the XNA framework combined with the new possibilities and flexibility of MonoGame makes it the ideal choice for my needs. Here are three reasons why I love it.
#1 – Just as lightweight as necessary
I am not a big fan of full scale game engines. The problem with large engines such as Unity for small game developers is the sheer amount of functionality which the poor developer is flooded with. You are basically using a huge chunk of foreign code and expanding it with your own. If it’s not your own code you are probably not very familiar with it which gets especially painful in case of debugging.
MonoGame is rather lightweight compared to many other game frameworks or engines. It basically comes with just what is necessary to start on the actual programming of your game instantly.
- A game loop outline
- Asset management and loading
- Batched sprite drawing
- Basic math utility
All these things have nothing to do with your actual game and are pretty much the same every time, so you don’t want to put effort into such things. At the same time it doesn’t limit you as a programmer at all. In order to start developing with MonoGame, there’s hardly any knowledge of the framework itself required. MonoGame gives you little but the things it gives you are invaluable.
#2 – C#’s cool
A bit of a subjective opinion maybe but still I think C# (which is the one language for MonoGame) is one of the greatest programming languages both, for application and game development.
Only to name a few reasons:
- It’s object-oriented,
- it supports managed as well as unmanaged code,
- it has a modern and well-documented API,
- it’s popular, so you will find a lot of help in the internet
Not only the language itself but the entire .NET-Framework is great. Combined with the fantastic Visual Studio it provides you as a developer with everything you need for comfortable programming. Debugging with Visual Studio and C# is so easy that you almost dare to cheer if a bug appears.
#3 – Cross-Platform
When targeting Windows, MonoGame utilizes the .NET Framework and DirectX.
Luckily with the help of the Xamarin platform runtime (Mono) as well as the OpenTK library (wraps OpenGL), MonoGame is able to target not only Windows but also Android, iOS and several Linux distributions. While MonoGame is getting the most out of each individual platform, it only requires very minimal code changes.
In addition to the already mentioned features, MonoGame is an open source project and has got a relatively active community that takes care of constantly updating the framework.
To all of you who likes clean code and maximal control over it, I can highly recommend to take a look at MonoGame.