Android和iOS平台游戏引擎?

我已经在Unity3d上工作了一段时间,发现它与OnGUI()或者GUITextures太笨拙了。 另外,即使Unity3d上最小的游戏至少也有10MB的下载量,这对于2D游戏来说太过分了。

所以,我目前正在寻找2D引擎。 我已经尝试过Cocos2D,但它只是iOS,我不想将所有东西都重写为Android的另一种语言(因此,例如,Android版Cocos2d的Java端口不是一种选项)。 相反,我想要编写代码一次,并且最少麻烦在iOS,Android和Windows Phone 7上部署它。我同时拥有Mac和Windows。

为了更加详细,这里是我对引擎的要求:

  • 必须是跨平台的
  • 必须高效
  • 应该是C ++,Java,C#或Objective C,因为我对它们很满意,而不是Flash,Javascript,HTML5,因为我不是Web开发人员
  • 必须有一个大型社区,教程和其他库,它们涵盖了您在iOS或Android上直接开发时的大部分内容(应用内结算,Facebook等)
  • 最终交付的软件包不能太大
  • 发动机可以免费,但我也不会介意支付合理的价格
  • 我找到了以下引擎:

  • Marmalade(和它上面的IwGame引擎) - C ++,发现对Marmalade的总体非常正面的评论,但对IwGame不确定。 编辑(2013年3月) :看起来像Marmalade SDK现在包括Cocos2Dx和一些内置的IDE,这使得它更好(独立开发每年花费150美元,这对我来说可以)。
  • Corona SDK - Lua(效率可疑),也需要互联网连接才能编译代码
  • Cocos2d-x - C ++收到了很多来自开发人员的评论,主要是积极的,许多人认为这对2D最好
  • 粒子代码 - Java + Eclipse,未发现任何评论或评论
  • Moai - Lua,找不到任何评论/意见
  • 猴子引擎 - 似乎有太少的功能
  • Haxenme - 这是Flash,我从来没有用过,也不想
  • 使用Unity3d,但使用2D工具包等2D软件包
  • SDL到Android(也在这里)和iOS的端口 - 看起来没有太多支持或当前的发展(?)
  • GLBasic - 基本语言,我不喜欢它
  • playN - 似乎在开发早期(?)
  • Gamvas - HTML5对我来说看起来不像一个成熟的引擎
  • Ignifuga - Python也看起来不成熟
  • ORX - 不知道它是否仍然开发(?)
  • 构造2 - 提醒GameMaker,可能适用于快速原型,但绝对不适用于行业级游戏
  • XNA,然后使用ExEn移植游戏(需要使用Mono Touch移植到iOS,使用Mono移植到Android移植到Android) - C#,可能更多的是来自Microsoft产品(如xBox)的人们(我来自Android)。 另外,对于小型开发人员来说,这些Mono工具总共花费800美元
  • 影响 - JavaScript,使用HTML5。 我对JavaScript没有太多的了解(例如Unity3d上的首选C#),也不确定效率,因为它在浏览器中运行(?)
  • GameMaker - 自己的脚本语言GML,我真的记得这是非程序员的工具。 它是否真正发展成为一个真正的引擎,我的意思是认真的发展?
  • AppGameKit - C ++,但似乎仍然很新。 还没有发现任何评论
  • 使用Cocos2D和Objective C仅针对iOS进行开发,然后使用Stella SDK制作一个适用于Android的APK。 有没有人做过这个? 我很确定会有局限性,Google的应用内结算,AdMob和Facebook在Android上的整合情况如何?
  • Moscrif - JavaScript,看起来更像是前网页开发者
  • Starling - Flash 11,我对Flash没多大兴趣
  • ND2D - 还不是1.0,它有很多功能吗?
  • 所以,如果你能从你的引擎经验中发表评论,并且建议列表中的哪一个(或者我错过的其他东西)对于所描述的需求是最好的,我会很高兴。 我对一些引擎的第一印象也可能是错误的。

    我目前正在考虑将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-2DxBox2D扩展也包含在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

    上一篇: platform game engine for Android and iOS?

    下一篇: C# game development after XNA