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.
Unity seemed like an obvious choice. I tried that too. I found that while it is possible to create 2D games with Unity, which I intend to do, it just feels like the tools are not made for that. So then I moved to MonoGame.
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.