我用 Unity3d 工作了一段时间,发现它的 2D 部分与 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,因为我不是网络开发人员
- 必须有一个大型社区、教程、其他库,这些库涵盖了您在 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 Toolkit
- SDL到Android(也在这里)和iOS的端口- 看起来没有太多支持或当前的开发(?)
- GLBasic - 基本语言,我不喜欢
- playN - 似乎处于开发早期(?)
- Gamvas - HTML5,对我来说看起来不像一个成熟的引擎
- Ignifuga - Python,看起来也不成熟
- ORX - 不确定它是否还在开发(?)
- Construct 2 - 提醒 GameMaker,可能适用于快速原型,但绝对不适用于行业级游戏
- XNA,然后使用ExEn移植游戏(需要Mono Touch移植到 iOS 和Mono for Android移植到 Android) - C#,可能更适合来自 Microsoft 产品(如 xBox)的人(我来自 Android)。此外,对于小型开发人员来说,这些 Mono 工具的总成本为 800 美元
- Impact - JavaScript,使用 HTML5。我不太喜欢 JavaScript(例如 Unity3d 上的首选 C#),也不确定效率,因为它在浏览器中运行(?)
- GameMaker - 自己的脚本语言 GML,我实际上记得它是为非程序员提供的工具。它是否真的成长为一个真正的引擎,我的意思是进行认真的开发?
- AppGameKit - C++,但似乎还是很新。没有找到任何关于它的评论
- 仅使用Cocos2D和 Objective C 为 iOS 开发,然后使用Stella SDK为 Android 制作一个 APK 。有人做过吗?我很确定会有一些限制,那么 Google 在 Android 上的应用内计费、AdMob 和 Facebook 集成怎么样?
- Moscrif - JavaScript,看起来更适合以前的 Web 开发人员
- Starling - Flash 11,我不太喜欢 Flash
- ND2D - 还没有 1.0,它有很多功能吗?
因此,如果您能根据您使用引擎的经验发表评论,并建议列表中的哪一个(或我遗漏的任何其他内容)最适合所描述的要求,我会很高兴。我对某些引擎的第一印象也可能是错误的。
我目前认为 Marmalade+IwGame 是最好的选择,但由于我没有太多关于 Cocos2d-x 和粒子代码的信息,所以我不太确定。
谢谢!
编辑(2013 年 6 月): 到目前为止,我制作了 2 个跨平台的 2D 游戏,并为两者使用了 Unity3D 和 2D Toolkit 插件。对于GUI简单的游戏,我使用了一个基于Unity自己的简单的自制GUI系统。对于更复杂的一个(例如 GUI 元素可以重叠的地方),我使用了 NGUI 插件。最近 2D Toolkit 为 GUI 添加了更多类,这非常方便,因为在将 NGUI 与 2D Toolkit 结合使用时,必须使用 2 个不同的系统来制作纹理图集。我肯定会在下一个 2D 游戏中尝试那个。为 2D 游戏选择 Unity3D 的主要原因是我已经深入 Unity3D,无论是经验还是积累的代码片段以供重用。此外,我为 3D 游戏购买了 Unity3D pro(带有 Android Pro 和 iOS Pro),只需额外支付 60 美元购买 2D 工具包即可获得 2D 游戏。我到目前为止还没有 不后悔我的决定,这似乎对我来说是最佳选择。唯一让我头疼的是使用 Prime31 的插件(Android 和 iOS 社交插件)添加社交功能,但我认为他们的错误不是 Prime31 的错,而是 Twitter/Facebook 的错,所以我可能会看到相同的错误任何其他引擎或插件。
编辑(2014 年 1 月):我想 Unity 4.3 对我的问题的回答现在非常明显:Unity 的新精灵系统,也许还有 2DToolkit 完全击败了其他任何东西,特别是对于那些(像我一样)在 Unity 上待过一段时间的人并购买了带有附加组件的 Pro 版本。