Android和iOS平台游戏引擎?
我已经在Unity3d上工作了一段时间,发现它与OnGUI()或者GUITextures太笨拙了。 另外,即使Unity3d上最小的游戏至少也有10MB的下载量,这对于2D游戏来说太过分了。
所以,我目前正在寻找2D引擎。 我已经尝试过Cocos2D,但它只是iOS,我不想将所有东西都重写为Android的另一种语言(因此,例如,Android版Cocos2d的Java端口不是一种选项)。 相反,我想要编写代码一次,并且最少麻烦在iOS,Android和Windows Phone 7上部署它。我同时拥有Mac和Windows。
为了更加详细,这里是我对引擎的要求:
我找到了以下引擎:
所以,如果你能从你的引擎经验中发表评论,并且建议列表中的哪一个(或者我错过的其他东西)对于所描述的需求是最好的,我会很高兴。 我对一些引擎的第一印象也可能是错误的。
我目前正在考虑将Marmalade + IwGame作为最佳选择,但由于我没有关于Cocos2d-x和Particle代码的很多信息,所以我不太确定。
谢谢!
编辑(2013年6月) :到目前为止,我制作了2款跨平台的2D游戏,并为2D和2D工具包插件使用了Unity3D。 对于具有简单GUI的游戏,我使用了一个基于Unity自己的简单的自制GUI系统。 对于更复杂的(例如,GUI元素可以重叠的地方),我使用了NGUI插件。 最近2D Toolkit为GUI添加了更多类,这非常方便,因为在将NGUI与2D Toolkit结合使用时,必须使用2个不同的纹理地图系统。 我一定会在下一个2D游戏中尝试一个。 选择Unity3D用于2D游戏的主要原因是我已经深入到Unity3D的经验和积累的代码片段重用。 此外,我购买了Unity3D专业版(配合Android Pro和iOS Pro)以用于3D游戏,并且为了获得2D游戏还支付额外的60美元用于2D工具包是完全合理的。 我至今不后悔我的决定,似乎对我的情况来说是最佳的。 让我头痛的唯一事情是在Prime31的插件(Android和iOS社交插件)中添加社交功能,但我认为他们的错误不是Prime31的错,而是Twitter / Facebook的错误,所以我可能会看到相同的错误任何其他引擎或插件。
编辑(2014年1月) :我猜想在Unity 4.3中,我的问题的答案现在非常明显:Unity的新精灵系统和2DToolkit完全可以胜过其他任何东西,特别是对于像我一样在Unity中工作一段时间并购买带附加软件的专业版。
我已经和Marmalade
一起工作,我发现它很令人满意。 虽然它不是免费的,开发人员社区也不够大,但仍然可以使用它的教程来处理大部分任务。 (一旦我有一段时间,我会写我的教程)。
IwGame
是一个很好的引擎,由Marmalade的用户开发。 这对于一款基础游戏很有用,但如果你正在寻找一些严肃的高级游戏内容,你还可以使用带有果酱的Cocos2D-x
。 我从来没有使用Cocos2D-x,但Marmalade的Github
上有一个扩展。
关于Marmalade的另一个好处是它是EDK (Extension Development Kit)
,它可以让你对本地代码中可用的任何功能进行扩展,但不能在Marmalade中使用。 我用它来开发自己的Customized Admob扩展和Facebook扩展。
编辑 :
Marmalade现在拥有自己的RAD(快速应用程序开发)工具,仅用于2D开发,命名为Marmalade Quick
。 尽管Lua中的代码不在C ++中,但由于它是建立在C ++ Marmalade之上的,因此您可以轻松地包含C ++库以及所有其他EDK扩展。 Cocos-2Dx
和Box2D
扩展也包含在Quick中。 他们最近推出了它的发布版本(它已经在测试中持续3-4个月)。 我认为我们你真的只是在寻找2D开发,你应该试试看。
更新:
Unity3D最近推出了对2D游戏的支持,由于它的GUI和编辑器,它比任何其他2D游戏引擎都好。 物理,精灵等支持内置。 你可以看看它。
更新2
Marmalade将很快停止他们的SDK以支持他们的内部游戏制作。 所以依靠这个决定并不是一个明智的决定。
LibGDX是我曾经使用过的最好的引擎之一,几乎可以在所有平台上运行,并且在大多数测试中,它的执行速度是cocos2d-x的两倍。 您可以使用任何您喜欢的JVM语言。 这里有13部分的Java教程,这里有一些使用jruby。 这里有一个很好的骨架动画工具,它也支持平铺的TMX地图。 ui框架非常棒,它有一个类似于cocos2d场景,精灵和动作的场景图和actor风格的API。 社区很棒,更新频繁,文档很好。 不要让java部分吓唬你,它很快,你可以使用jruby或scala或任何你喜欢的东西。 我强烈推荐它用于2D或3D工作,它支持两者。
你提到Haxe / NME,但你似乎本能地不喜欢它。 不过,我的经验非常积极。 当然,API是Flash API的重新实现,但您不仅限于定位Flash,还可以编译为HTML5或本机Windows,Mac,iOS和Android应用程序。 Haxe是一种类似于Java或C#的令人愉快的现代语言。
如果您有兴趣,我已经写了一些关于我使用Haxe / NME的经历:链接
链接地址: http://www.djcxy.com/p/95491.html