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, eg 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:
I've found the following engines:
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!
EDIT (June 2013) : So far I made 2 cross-platform 2D games and used Unity3D with 2D Toolkit plugin for both. For the game with simple GUI I used a simple self-made GUI system based on Unity's own. For more complex one (eg where GUI elements can overlap) I used the NGUI plugin. Recently 2D Toolkit added some more classes for GUI which is very handy since one had to use 2 different systems for texture atlases when combining NGUI with 2D Toolkit. I'll definitely try that one in the next 2D game. The main reason for choosing Unity3D for 2D games was that I already was deep into Unity3D both in terms of experience and accumulated code snippets for re-use. Also, I purchased Unity3D pro (with Android Pro and iOS Pro) for 3D games and it made full sense to just pay additional $60 for the 2D Toolkit to get 2D games also covered. I so far don't regret my decision, it seems to have been optimal for my case. The only thing which gave me headache was adding social features with the Prime31's plugins (Android & iOS social plugins) but I assume that their bugs are not the fault of Prime31 but of Twitter/Facebook instead, so I probably would see the same bugs on any other engine or plugin.
EDIT (Jan 2014) : I guess with Unity 4.3 the answer to my question is pretty obvious now: the Unity's new sprites system and maybe also 2DToolkit totally beat anything else, especially for people who have (like me) been on Unity for a while and purchased the Pro version with add-ons.
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.
Edit :
Marmalade now has it's own RAD(Rapid Application Development) tool just for 2D development, named as Marmalade Quick
. Although the coding will be in Lua not in C++, but since it's built on top of C++ Marmalade, you can easily include a C++ library, and all other EDK extensions. Also the Cocos-2Dx
and Box2D
extensions are preincluded in the Quick. They recently launched it's Release version (It was in beta for 3-4 months). I think we you're really looking for only 2D development, you should give it a try.
Update:
Unity3D recently launched support for 2D games, which seems better than any other 2D game engine, due to it's GUI and Editor. Physics, sprite etc support is inbuilt. You can have a look on it.
Update 2
Marmalade is going to discontinue their SDK in favor of their in-house game production soon. So it won't be a wise decision to rely on that.
LibGDX is one of the best engines I've ever used, works on almost all platforms, and performs twice as fast as cocos2d-x in most tests I've done. You can use any JVM language you like. Here's a 13 part tutorial in Java, and here's a bunch using jruby. There's a good skeletal animation tool that works with it here, and it has baked in support for tiled TMX maps as well. The ui framework is awesome, and it has a scene graph and actor style API similar to cocos2d scenes, sprites and actions. The community is awesome, updates are frequent, and the documentation is good. Don't let the java part scare you, it's fast, and you can use jruby or scala or whatever you like. I highly recommend it for 2d or 3d work, it supports both.
You mention Haxe/NME but you seem to instinctively dislike it. However, my experience with it has been very positive. Sure, the API is a reimplementation of the Flash API, but you're not limited to targeting Flash, you can also compile to HTML5 or native Windows, Mac, iOS and Android apps. Haxe is a pleasant, modern language similar to Java or C#.
If you're interested, I've written a bit about my experience using Haxe/NME: link
链接地址: http://www.djcxy.com/p/95492.html上一篇: 3D世界中的碰撞
下一篇: Android和iOS平台游戏引擎?