2D cross-platform game engine for Android and iOS?
I've worked for some time with Unity3d and found it's 2D part with OnGUI() or GUITextures too clumsy. Also, even a smallest game done on Unity3d is at least 10MB download which is just too much for a 2D game.
So, I'm currently looking for an engine for 2D. I've tried Cocos2D but it's iOS only and I wouldn't like to rewrite everything into another language for Android (so, e.g. Java port of Cocos2d for Android is not an option). Instead, I want to write the code once and with least hassle deploy it on iOS, Android and possibly Windows Phone 7. I have both Mac and Windows.
Just to be more detailed, here are my requirements to the engine:
must be cross-platform
must be efficient
should be C++, Java, C# or Objective C since I'm comfortable with them and NOT Flash, Javascript, HTML5 since I am not a web developer
must have a large community, tutorials, additional libraries which cover most of the stuff you'd have when developing on iOS or Android directly (in-app billing, facebook etc.)
the final delivered package must be not too large
the engine can be free, but I also wouldn't mind paying a reasonable price
I've found the following engines:
Marmalade (and IwGame engine on top of it) - C++, found overall very positive reviews of Marmalade but not sure about IwGame. EDIT (March 2013): Looks like Marmalade SDK now includes Cocos2Dx and some in-built IDE which makes it much better (and costs $150 per year for indie dev which is ok with me).
Corona SDK - Lua (efficiency doubtful), also needs internet connection to compile code
Cocos2d-x - C++, received lots of reviews from developers, mostly positive and many think it's best for 2D
Particle code - Java+Eclipse, found no reviews or comments
Moai - Lua, coudn't find any reviews/opinions on it
Monkey engine - seems to have too few features
Haxenme - it's Flash, I've never used it and don't want to
use Unity3d but with 2D packages like 2D Toolkit
ports of SDL to Android (also here) and iOS - doesn't look to have much support or current development (?)
GLBasic - Basic language, I don't like it
playN - seems to be early in development (?)
Gamvas - HTML5, doesn't look like a mature engine to me
Ignifuga - Python, also doesn't look mature
ORX - not sure if it's still developed (?)
Construct 2 - reminds GameMaker, might be ok for rapid prototypes but definitely not for industry-level games
XNA and then port the game using ExEn (would need Mono Touch to port to iOS and Mono for Android to port to Android) - C#, and is probably more thought for folks coming from Microsoft products like xBox (I come from Android). Also, those Mono tools cost $800 in total for small developers
Impact - JavaScript, uses HTML5. I'm not much into JavaScript (e.g. preferred C# on Unity3d), also not sure about efficiency since it runs in the browser (?)
GameMaker - own scripting language GML and I actually remember this one as a tool for non-programmers. Has it actually grown into a real engine, I mean for serious development?
AppGameKit - C++, yet seems to be still pretty new. Haven't found any reviews on it
use Cocos2D and Objective C to develop for iOS only and then make an APK for Android out of it using Stella SDK. Has anyone done this? I'm pretty sure there will be limitations, and how about Google's in-app billing, AdMob and Facebook integration on Android?
Moscrif - JavaScript, looks like it's more for former web-developers
Starling - Flash 11, i'm not much into Flash
ND2D - not yet 1.0, does it have many features?
So, I'd be happy if you could comment from your experiences with the engines and suggest which one in the list (or anything else that I've missed) is the best for the described requirements. I also may be wrong with my first impressions about some of the engines.
I'm currently thinking of Marmalade+IwGame as the best option but since I don't have much info about Cocos2d-x and Particle code, I am not really sure about it.
Thank you!
A PHP Error was encountered
Severity: Notice
Message: Undefined index: HTTP_ACCEPT_LANGUAGE
Filename: helpers/time_helper.php
Line Number: 22
6334 views 12 answers
Post My Answer
0
If you feel comfortable with Lua...
http://giderosmobile.com/
A PHP Error was encountered
Severity: Notice
Message: Undefined index: HTTP_ACCEPT_LANGUAGE
Filename: helpers/time_helper.php
Line Number: 22
0
Hey, I know you said you weren't comfortable with flash, but you should give Gingee a go. It's an SDK for ActionScript3 and it will probably make your life easier. It's cross platform, efficient, etc. It's new so the community might not be as large as some other ones, but they do a good job of posting video tutorials on their site. Anyway, check them out, might be what you're looking for (also has Facebook and Google analytics integration)...
A PHP Error was encountered
Severity: Notice
Message: Undefined index: HTTP_ACCEPT_LANGUAGE
Filename: helpers/time_helper.php
Line Number: 22
0
In your list, you put "haxenme - it's flash" well this is not accurate at all. Haxe is a complete programming language with a modern syntax like C# that also have some functional things on it. You can compile to the swf format but you can compile to a lot of differents targets with it like Javascript, PHP, C++, Java, neko, C#, etc. Also you can make mobile applications with Lime using OpenFl, Flambe, Haxepunk, Haxeflixel, awe6 and a few other game engines, haxe is a great tool, the only drawback is the lack of documentation but you can find a lot of tutorial spreaded over the network.
You can also get a look into Libgdx http://libgdx.badlogicgames.com/ I didnt see it in your list.
A PHP Error was encountered
Severity: Notice
Message: Undefined index: HTTP_ACCEPT_LANGUAGE
Filename: helpers/time_helper.php
Line Number: 22
0
I've worked with Marmalade and I found it satisfying. Although it's not free and the developer community is also not large enough, but still you can handle most of the task using it's tutorials. (I'll write my tutorials once I got some times too).
IwGame is a good engine, developed by one of the Marmalade user. It's good for a basic game, but if you are looking for some serious advanced gaming stuff, you can also use Cocos2D-x with Marmalade. I've never used Cocos2D-x, but there's an Extension on Marmalade's Github.
Another good thing about Marmalade is it's EDK (Extension Development Kit), which lets you make an extension for whatever functionality you need which is available in native code, but not in Marmalade. I've used it to develop my own Customized Admob extension and a Facebook extension too.
A PHP Error was encountered
Severity: Notice
Message: Undefined index: HTTP_ACCEPT_LANGUAGE
Filename: helpers/time_helper.php
Line Number: 22