小编典典

适用于 Android 和 iOS 的 2D 跨平台游戏引擎?

all

我用 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
  • SDLAndroid(也在这里)和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 。有人做过吗?我很确定会有一些限制,那么谷歌在 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 版本。


阅读 71

收藏
2022-05-16

共1个答案

小编典典

我合作过Marmalade,我觉得很满意。虽然它不是免费的,而且开发者社区也不够大,但你仍然可以使用它的教程来处理大部分任务。(一旦有时间,我也会写我的教程)。
IwGame是一个很好的引擎,由一位 Marmalade
用户开发。这对于基本游戏来说是很好的,但如果您正在寻找一些严肃的高级游戏内容,您也可以Cocos2D-x与 Marmalade
一起使用。我从来没有使用过 Cocos2D-x,但是 Marmalade 的Github.
Marmalade 的另一个好处是它EDK (Extension Development Kit),它可以让您扩展您需要的任何功能,这些功能在本机代码中可用,但在 Marmalade 中不可用。一世’

编辑
Marmalade 现在拥有自己的 RAD(快速应用程序开发)工具,仅用于 2D 开发,命名为Marmalade Quick. 虽然编码将在 Lua 中而不是在 C
中,但由于它构建在 C
Marmalade 之上,因此您可以轻松地包含 C++ 库和所有其他 EDK
扩展。Cocos-2Dx和扩展也Box2D预先包含在快速中。他们最近推出了它的发布版本(它是 3-4 个月的测试版)。我认为我们您真的只在寻找 2D
开发,您应该尝试一下。

更新:
Unity3D 最近推出了对 2D 游戏的支持,由于它的 GUI 和编辑器,这似乎比任何其他 2D 游戏引擎都要好。内置物理、精灵等支持。你可以看看它。

更新 2
Marmalade 将很快停止他们的 SDK 以支持他们的内部游戏制作。因此,依赖它不是一个明智的决定。

2022-05-16