Thursday, February 16, 2012

Cross platform mobile game development

On this blog I plan to give some insights on my development that I think might be useful to others. In this first post, I will give an overview on what tools I use and why I chose them.

When I first came in contact with C# as a tools developer at the German game studio Radon Labs (developer of Drakensang) in 2008, I quickly fall in love with it. Having used C++ for about 10 years till then, I felt that computer languages finally had advanced. Soon I started to use XNA for private projects and even ported my Virtual Reality library to XNA. With the release of Windows Phone 7, I couldn't resist the temptation of developing apps in C# and entered the world of smart phones with an HTC HD7.

When I decided to quit my job as a C++ developer and become a full time indie game developer last year, I began looking into cross platform possibilities for smart phones. My preconditions were:

  • C#
  • Support of iOS, Android and Windows Phone 7
Obviously these preconditions made it hard to find any usable solution at all. I finally looked into these options:
Unity 3D is obviously the most advanced of these choices, being a full featured game engine since many years. Unfortunately it lacks the support of WP7. WP7 might not be of much commercial interest right now, but because it is the OS I privately use, I didn't want to ignore it. Furthermore, if you want to have the advanced features of Unity 3D, it becomes rather pricey.

Delta Engine is a .NET based game library in C# with a multi-platform approach. It is developed by the German game studio MobileBits, which is using it itself for their mobile game development. It looked very promising for me and I was very excited when the beta started. It is rather comprehensive and has a well known XNA developer behind it. Unfortunately the support for iOS and Android was not available to beta users at that time.

Actually from MonoGame I expected the least but got surprised. MonoGame is an open source project to provide the XNA framework to Mono, which is an open source implementation of Microsoft's .Net framework. Mono is available for Windows, MacOS and Linux. However, the Mono libraries for iOS and Android are not free and you need to buy them from Xamarin. And these are mandatory if you want to use MonoGame on iOS or Android. For testing, you can get these for free, but they will only run in the emulator and will not deploy to an actual device. I gave it a try and was surprised how easy it was to got my source code compiled and up running in the emulator. However, MonoGame so far only works stable for 2D functions, if you develop 3D games, you will have to wait for a later update.

I have used MonoGame for two games (Santa Melia and Bullet Babs) now. I use Windows Phone as my lead development platform. After I complete the WP7 version I first port it to iOS and then Android. For my second game Bullet Babs, porting source code didn't take more than a day for each platform. I spent more time recreating graphics for the different resolutions and aspect ratios and the store submission procedures. You have to create icons and screenshots for each platform. I will share some of my experiences with MonoGame as well as my multi-platform approaches and general C# tips in following posts.

4 comments:

  1. The company Press Play have released an open-source XNA framework called Fast Forward (FFWD) that allows you to port Unity 3D games to Windows Phone. You can find it here: https://github.com/fehaar/FFWD

    What do you think about that? Does that affect your decision? Could you maybe do a future post on the differences between Unity 3D and MonoGame?

    ReplyDelete
  2. Nice and informative post about Mobile Game Development in Cros Platform. Will bookmark post for future refrences.

    Source=Asset Mobile LLC

    ReplyDelete
  3. Unity 3D code is really the advanced of this choice when we talk about game development. Thanks fo this good insights that you have posted regarding mobile game development. A lot of things here is preferably good to know as a web developer.

    Florida Game Developer|Miami Game developer

    ReplyDelete
  4. Thanks sharing this information,your article always helpful for every time,keep feed us
    more information in your future blogs thank you...

    game app developer

    ReplyDelete