263

我用 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 。有人做过吗?我很确定会有一些限制,那么 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 版本。

4

11 回答 11

43

LibGDX是我用过的最好的引擎之一,几乎可以在所有平台上运行,在我做过的大多数测试中,它的执行速度是 cocos2d-x 的两倍。您可以使用任何您喜欢的 JVM 语言。这是一个 13 部分的 Java 教程,还有一堆使用 jruby的教程。这里有一个很好的骨骼动画工具,它也支持平铺的 TMX 贴图。ui 框架很棒,它有一个类似于 cocos2d 场景、精灵和动作的场景图和演员样式 API。社区很棒,更新频繁,文档也很好。不要让 java 部分吓到你,它很快,你可以使用 jruby 或 scala 或任何你喜欢的东西。我强烈推荐它用于 2d 或 3d 工作,它支持两者。

于 2013-01-22T04:31:44.267 回答
33

我合作过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 以支持他们的内部游戏制作。因此,依赖它不是一个明智的决定。

于 2012-09-03T07:22:17.490 回答
13

您提到 Haxe/NME,但您似乎本能地不喜欢它。但是,我的经验是非常积极的。当然,API 是 Fl​​ash API 的重新实现,但您不仅限于以 Flash 为目标,还可以编译为 HTML5 或原生 Windows、Mac、iOS 和 Android 应用程序。Haxe 是一种令人愉悦的现代语言,类似于 Java 或 C#。

如果你有兴趣,我写了一些关于我使用 Haxe/NME 的经验:link

于 2012-09-03T12:29:06.443 回答
12

V-Play (v-play.net) 是一个基于 Qt/QML 的跨平台游戏引擎,具有许多有用的 V-Play QML 游戏组件,用于处理多种显示分辨率和纵横比、动画、粒子、物理、多点触控、手势,寻路等等。API 参考 引擎核心采用原生 C++ 编写,结合自定义渲染器,游戏在所有设备上均达到 60fps 的稳定性能。

V-Play 还为最成功的游戏类型(如塔防、平台游戏或益智游戏)提供即用型游戏模板。

如果您对使用 V-Play 制作的游戏感到好奇,以下是它们的快速选择:

(免责声明:我是 V-Play 背后的人之一)

于 2013-08-23T14:44:07.743 回答
7

这只是 LinkedIn 上 Richard Pickup 对我的一个类似问题的回复:

我在 iOS 和 android 上都使用过 cocos 2dx marmalade 和 unity。对于 2d 游戏 cocos2dx 是每次都要走的路。Unity 对于 2d 游戏来说太过分了,正如已经说过的那样,marmalade 只是一个薄的抽象层,而不是真正的游戏引擎。你甚至可以在橘子酱上运行 cocos2d。我的方法是在 iOS 和 android 上使用 cocos2dx,然后在未来在橘子酱上运行 cocosd2dx 代码作为移植到 bb10 并赢得手机 7 的简单方法

于 2012-09-04T10:02:27.750 回答
7

几天前我发现了一个漂亮整洁的Wave 游戏引擎。它使用 C# 并具有 Windows Phone 和 Windows Store 转换器,这使它成为我 XNA 的绝佳替代品

于 2013-07-30T07:08:19.577 回答
6

BadLogicGames的 LibGDX 呢?

于 2013-01-20T16:03:24.240 回答
6

查看 Loom ( http://theengine.co ) 是一个新的跨平台 2D 游戏引擎,具有设备上的热交换代码和资产。这意味着您可以在 Photoshop 中处理您的资产,您可以更新您的代码,修改您的应用程序/游戏的 UI,然后在应用程序运行时在您的设备上查看更改。

考虑到我听说过甚至玩过的其他跨平台游戏引擎,Loom 游戏引擎是迄今为止我认为最好的,具有许多出色的功能。大多数其他类似的游戏引擎(Corona SDK、MOAI SDK、Gideros Mobile)都是基于 Lua 的(至少对我来说语法很奇怪)。Loom 游戏引擎使用 LoomScripts,这是一种受 ActionScript 3 启发的脚本语言,具有从 C# 中借用的几个功能。如果您曾经使用 ActionScript 3、C# 或 Java 开发过,LoomScript 对您来说会很熟悉(而且我更喜欢这种语法而不是 Lua 的语法)。

Loom 游戏引擎的 1 年许可费用为 500 美元,我认为对于任何独立游戏开发者来说,这是一个可以承受的价格。几周前,他们也免费提供了 1 年的许可证。许可证到期后,您仍然可以使用 Loom 创建和部署您自己的游戏,但您不会获得任何进一步的更新。Loom 的创建者非常有信心,他们承诺会不断改进他们的孩子,使购买另一个许可证变得物有所值。

事不宜迟,以下是 Loom 的强大功能:

  1. 跨平台(iOS、Android、OS X、Windows、Linux/Ubuntu)

  2. 受 Rails 启发的工作流程让您可以花时间处理游戏(一个命令创建新项目,另一个命令运行它)

  3. 快速编译器

  4. 实时代码和资产编辑

  5. 集成第三方库的可能性

  6. 使用 Cocos2DX 进行渲染

  7. XML、JSON 支持

  8. 用于设置 UI 元素样式的 LML(标记语言)和 CSS

  9. 用户界面库

  10. 依赖注入

  11. 单元测试框架

  12. 花栗鼠物理学

  13. 实时查看您的更改使多设备开发变得容易

  14. 小下载大小

  15. 专为团队打造

你可以在这里找到更多关于 Loom 的视频:http ://www.youtube.com/user/LoomEngine?feature=watch

也可以查看这 4 部分的深入教程:http ://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx

于 2013-04-18T13:26:57.007 回答
5

我试过 AppGameKit,它既是 c++ 又是 Basic。在 Basic 变体中编写 2d 游戏非常容易,包括物理、碰撞和堆更多。它也在积极开发中,而且非常便宜(65 美元)。主要问题是为 Android 编译真的很困难(你需要下载大量文件并遵循困难的指南之类的东西)我认为它还不足以用于商业用途,但对独立程序员有好处它有一个中等规模的社区

于 2012-12-19T06:11:23.710 回答
4

我目前将 Corona 用于商业应用程序并取得了巨大成功。就游戏而言,我的印象是它没有提供其他一些跨平台开发引擎所提供的性能。值得注意的是,Carlos(Ansca Mobile/Corona SDK 的创始人)已经在竞争引擎上创办了另一家公司;用于 Appcelerator Titanium 的 Lanica Platino 引擎。虽然我没有亲自处理过这个问题,但它看起来确实很有希望。但是请记住,它的价格为 999 美元/年。

综上所述,我研究 Moai 已经有一段时间了(因为我已经熟悉 Lua 语法),它看起来确实很有希望。它可以为多个平台编译,不仅限于移动环境,这一事实很有吸引力。

考虑到制作的游戏的复杂性和从中实现的性能,Multimedia Fusion 2 也是一个值得竞争的产品。我想到了Vincere Totus Astrum ( http://gamesare.com )。

于 2013-08-27T01:54:56.327 回答
3

最近我使用了一个 AS3 引擎:PushButton(现在已经死了,但它仍然可以使用,你可以使用其他东西)来完成这项工作。为了使其适用于 Android 和 iOS,该项目在 AIR 中针对这两个平台进行了编译,并且一切正常,没有性能损失。由于 Flash Builder 有点贵(249 美元),您可以使用 FlashDevelop(有一些教程可以用它在 AIR 中编译)。

Flash 可能是一种选择,因为它非常容易学习。

于 2012-09-10T18:58:22.830 回答