I am creating a 2D game which I wish to run cross platform (on platforms such as Windows, Mac, iOS and Android as the main targets) and the engine I use needs to be open source. The main goal is to have the most code portability (possibly through scripting).
I would prefer to do this in C# but using another language is not a massive issue if I have to.
I have considered MonoGame and flash using the Flex SDK as they both claim to be cross platform and open source.
Which one of these would be a better choice considering my criteria? Or would another game engine/library be more suitable?
I would suggest Unity3D. It is a 3D platform. But if you only use 2 dimensions you're good to go. In Unity3D you can write your game in C#, Javascript or Boo.
Unity is free and can export to Windows Phone, Windows 8 App, Windows, Mac, Linux, Android, Blackberry, iOs, Xbox360, Wii and PS3 but for those last 3 you need a developer license from Microsoft/Sony/Nintendo. But the possibility is there.
You had to pay for the ios and android addons earlier. Now they are free:
Today, we’re taking another step on this long road: as of right now, independent Unity developers will be able to deploy their games to Android and iOS platforms completely free of charge. Update Unity and you will find Android and iOS build options (previously basic add-ons) ready and waiting for you to use.
Source: http://blogs.unity3d.com/
In the meanwhile, support for other platforms has come out (including windows phone, winrt & blackberry). Those are all free. If you want pro features you need a pro license. But most of the stuff you need is in the free version. To compare look at this page.
The engines below allow you to reuse pretty much all your code, only thing you need to change is resolution and touch input/controls from desktop to mobile or the other way around. I would suggest you check out these engines, they are all open source:
libgdx seems like a perfect fit for you. the performance is amazing, the community is big and it lets you reuse the same code for all platforms, just to name a few. Only downside being it doesn't use C#. Of course you should definitely look into them yourselves and see if they are match for what you want. I wish you the best of luck in your endeavors.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With