Before I can start making games, I have to choose a development platform. On mobile, just like for almost any ecosystem, there are many choices. To narrow my search, I listed a few requirements.
First and foremost I want my development tools to be multiplaform, so I must be able to use the same codebase for iOS and Android. This excludes native development in Swift or in Java. I know from experience that native development has a lot of advantages but also limits speed and agility immensely.
Second requirement is that the development tool needs to be broadly supported. I don’t want to use a niche tool that is supported by one company, and find out later that its support ends. There need to be plenty of support by a community online and for example SDK’s for payments, advertising and social interactions need to be available and up to date.
And third, I really like C# as a language and Visual Studio as a development environment. I will favor tools supporting either or both.
Finding a suitable development platform was more difficult than I thought. I considered a lot of options, such as Cordova, Corona SDK, Cocoon.io, Unity, Cosos2Dx, Unreal Engine, Marmalade, Defold, libglx and others. This took me a few months and was very frustrating, because every option seemed to have something against it.
I tried Cocos2D for my first project, but was disappointed, because as it turned out it did not meet my second requirement of a broadly supported tool. I quickly found myself debugging errors that nobody on the web could explain. Very frustrating.
MonoGame is based on Microsoft XNA and now open source. The work is done in Visual Studio with C#. The community and its future seem on the move. Good enough to go forward. MonoGame compiles against both iOS and Android.
It’s possible that I will regret this choice in the end. It’s no sure winner. But I’m going to give it a shot. #BuiltWithMonoGame it is.