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

我用Unity3d工作过一段时间,发现它的2D部分OnGUI()或GUITextures太笨拙了。此外,即使是在Unity3d上完成的一款最小的游戏也至少需要10MB的下载,这对于2D游戏来说实在是太多了。

所以,我目前正在寻找一个2D引擎。我尝试过Cocos2D,但它只适用于iOS,我不想将所有内容重写为Android的另一种语言(游戏邦注:例如,将Cocos2D移植到Android并不是一种选择)。相反,我希望只编写一次代码,并尽可能地将其部署到iOS、Android和Windows Phone 7上。我有Mac电脑和Windows电脑。

更详细地说,以下是我对引擎的要求:

  • 必须是跨平台的
  • 必须高效
  • 应该是c++, Java, c#或Objective C,因为我很熟悉它们和 Flash, Javascript, HTML5,因为我不是一个web开发人员
  • 你必须拥有一个庞大的社区,教程和额外的库,这些都能够覆盖你在iOS或Android平台上所拥有的大部分内容(游戏邦注:如应用内置付费功能,facebook等)。
  • 最后送出的包裹不能太大
  • 引擎可以是免费的,但我也不介意付个合理的价钱

我发现了以下引擎:

  • 果酱(和IwGame引擎在上面)- c++,发现总体上非常积极的评价Marmalade,但不确定IwGame。编辑(2013年3月):看起来Marmalade SDK现在包括Cocos2Dx和一些内置的IDE,这使它变得更好(独立开发每年花费150美元,这对我来说是可以的)。
  • 电晕SDK - Lua(效率怀疑),也需要互联网连接来编译代码
  • Cocos2d-x - c++,收到了很多开发者的评论,大部分是积极的,许多人认为它最适合2D
  • 粒子的代码 - Java+Eclipse,发现没有评论或评论
  • 摩埃 - Lua,找不到任何关于它的评论/意见
  • 猴子引擎 -似乎有太少的功能
  • Haxenme -这是Flash,我从来没有用过,也不想用
  • 使用Unity3d,但使用2D包,如2D Toolkit
  • SDL安卓(也是在这里)和iOS的端口-看起来没有太多的支持或当前的开发(?)
  • GLBasic -基本语言,我不喜欢它
  • playN -似乎是早期开发(?)
  • Gamvas - HTML5,对我来说不像一个成熟的引擎
  • Ignifuga - Python,看起来也不成熟
  • ORX -不确定它是否仍然被开发(?)
  • 构建2 -提醒GameMaker,可能适用于快速原型,但绝对不适用于行业级别的游戏
  • XNA,然后使用ExEn移植游戏(需要Mono触摸移植到iOS, Mono for Android移植到Android) - c#,可能更适合来自微软产品(如xBox)的人(我来自Android)。此外,对于小型开发人员来说,这些Mono工具总共要花费800美元
  • 影响 - JavaScript,使用HTML5。我不太喜欢JavaScript(例如Unity3d上更喜欢c#),也不确定效率,因为它在浏览器中运行(?)
  • GameMaker -自己的脚本语言GML,我实际上记得这是一个非程序员的工具。它真的成长为一个真正的引擎了吗?
  • AppGameKit - c++,但似乎仍然是相当新的。我没有找到任何关于它的评论
  • 使用是Cocos2D和Objective C只为iOS开发,然后使用Stella SDK为Android制作APK。有人这样做过吗?我敢肯定会有限制,谷歌的应用内计费、AdMob和Facebook在Android上的整合如何?
  • Moscrif - JavaScript,看起来更适合以前的web开发人员
  • 燕八哥 - 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的体验和可重复使用的代码片段。此外,我还购买了Unity3D pro (Android pro和iOS pro)来玩3D游戏,所以再多花60美元购买2D Toolkit也可以玩2D游戏。到目前为止,我并不后悔我的决定,这似乎是最适合我的情况。唯一让我头疼的是在Prime31的插件中添加社交功能(Android &iOS社交插件),但我认为他们的bug不是Prime31的错,而是Twitter/Facebook的错,所以我可能会在其他引擎或插件上看到同样的bug。

编辑(2014年1月):我想在Unity 4.3中,我的问题的答案现在是相当明显的:Unity的新精灵系统和2DToolkit完全击败了其他任何东西,特别是对于那些(像我一样)已经使用Unity一段时间并购买了带有附加组件的Pro版本的人来说。

127869 次浏览
我曾经使用过Marmalade,我发现它令人满意。虽然它不是免费的,开发人员社区也不够大,但您仍然可以使用它的教程处理大部分任务。(一旦我有时间,我也会写我的教程) IwGame是一个很好的引擎,由一个Marmalade用户开发。它很适合一个基本的游戏,但如果你正在寻找一些严重的高级游戏的东西,你也可以使用Cocos2D-x与Marmalade。我从未使用过Cocos2D-x,但在Marmalade的Github上有一个扩展 Marmalade的另一个优点是它是EDK (Extension Development Kit),它允许你为任何你需要的功能做扩展,这些功能在本机代码中可用,但在Marmalade中没有。我用它来开发我自己的自定义Admob扩展和Facebook扩展 < p > 编辑: < br > Marmalade现在有自己的RAD(快速应用程序开发)工具,仅用于2D开发,命名为Marmalade Quick。虽然代码将使用Lua而不是c++,但由于它构建在c++ Marmalade之上,您可以轻松地包含c++库和所有其他EDK扩展。此外,Cocos-2DxBox2D扩展也预先包含在Quick。他们最近发布了它的发行版(游戏邦注:测试期为3-4个月)。我认为如果你真的只是在寻找2D开发,你应该尝试一下 < p > 更新: < br > Unity3D最近推出了对2D游戏的支持,这似乎比任何其他2D游戏引擎都要好,因为它的GUI和编辑器。物理,精灵等支持是内置的。你可以看一下。

< p > 更新2 < br > Marmalade将停止他们的SDK,转而支持他们的内部游戏制作。所以依赖它不是一个明智的决定

你提到了Haxe/NME,但你似乎本能地不喜欢它。然而,我的经验是非常积极的。当然,该API是Flash API的重新实现,但你并不局限于Flash,你也可以编译成HTML5或原生Windows、Mac、iOS和Android应用。Haxe是一种令人愉快的现代语言,类似于Java或c#。

如果你感兴趣,我已经写了一些我使用Haxe/NME: 链接的经验

以下是Richard Pickup在LinkedIn上对我类似问题的回复:

我在iOS和android上都使用过cocos 2dx marmalade和unity。为 2d游戏cocos2dx是每次都要走的路。团结太多了 对于2d游戏来说,这是一种过度杀戮 抽象层并不是真正的游戏引擎。你甚至可以运行cocos2d 在果酱上面。我的方法是在iOS上使用cocos2dx Android然后在未来运行cocosd2dx代码在marmalade作为一个 简单的方法移植到bb10和赢得手机7

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

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

我已经尝试了AppGameKit,它既是c++和基本。 用Basic编写2d游戏非常简单,包含物理、碰撞和堆等内容。 它也在积极开发中,而且非常便宜(65美元)。 主要的问题是它很难在Android上编译(你需要下载大量的文件并遵循困难的指南之类的东西) 我的观点是,对于商业用途来说它还不够好,但是对于独立程序员来说是很好的 它有一个中等规模的社区

BadLogicGames的LibGDX呢?

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

检查织机(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 Game Engine的1年授权费用为500美元,我认为这对于任何独立游戏开发者来说都是一个可以承受的价格。几周前,他们还提供了1年的免费许可证。在许可证到期后,你仍然可以使用Loom来创建和部署你自己的游戏,但你不会得到任何进一步的更新。《Loom》的创造者非常有信心,他们承诺会不断完善自己的宝贝,让它值得购买另一个授权。

话不多说,以下是织机的伟大功能:

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

  2. 受rails启发的工作流让你将时间花在游戏上(一个命令用于创建新项目,另一个命令用于运行它)

  3. 快速编译器

  4. 实时代码和资产编辑

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

  6. 使用Cocos2DX进行渲染

  7. XML, JSON支持

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

  9. UI库

  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

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

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

V-Play还为塔防、平台游戏或益智游戏等最成功的游戏类型提供了现成的游戏模板。

如果你对用V-Play制作的游戏感到好奇,这里有一些简单的选择:

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

我目前在商业应用中使用Corona,并取得了巨大的成功。就游戏而言,我的印象是它无法提供其他一些跨平台开发引擎所提供的性能。值得注意的是,Carlos (Ansca Mobile/Corona SDK的创始人)已经成立了另一家竞争引擎公司;Lanica铂引擎Appcelerator钛。虽然我个人没有使用过这种方法,但它看起来确实很有前途。但请记住,它的价格是每年999美元。

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

考虑到游戏制作的复杂性和从中实现的性能,《多媒体融合2》也是一个有价值的竞争者。想到了Vincere Totus Astrum (http://gamesare.com)。