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


262

我在Unity3d上工作了一段时间,发现它与OnGUI()或GUITextures的2D部件过于笨拙。而且,即使在Unity3d上完成的最小游戏也至少下载了10MB,对于2D游戏来说太过分了。

因此,我目前正在寻找2D引擎。我尝试过Cocos2D,但它仅是iOS,并且我不想将所有内容重写为Android的另一种语言(因此,不能选择Android的Cocos2d的Java端口)。取而代之的是,我想编写一次代码,并将其部署在iOS,Android和Windows Phone 7上的麻烦最少。我同时拥有Mac和Windows。

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

  • 必须是跨平台的
  • 必须有效率
  • 应该是C ++,Java和C#或目标C,因为我与他们舒服和闪光,使用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 Toolkit)
  • SDL移植Android(也在此处)和iOS的端口-看起来并没有太多支持或当前开发(?)
  • GLBasic-基本语言,我不喜欢
  • playN-似乎还处于开发初期(?)
  • Gamvas -HTML5,对我而言似乎不是一个成熟的引擎
  • Ignifuga -Python,看起来也不成熟
  • ORX-不确定是否仍在开发(?)
  • 构造2 -GameMaker提醒,快速原型可能没问题,但绝对不适用于行业级游戏
  • XNA,然后使用ExEn移植游戏(将需要Mono Touch移植到iOS,将Mono移植到Android才能移植到Android)-C#,对于来自xBox之类的Microsoft产品(我来自Android)的人来说,可能更值得考虑。而且,那些Mono工具对小型开发人员的总成本为800美元
  • 影响 -JavaScript,使用HTML5。我不太喜欢JavaScript(例如Unity3d上的首选C#),也不确定效率,因为它在浏览器中运行(?)
  • GameMaker-自己的脚本语言GML,我实际上还记得这是一种针对非程序员的工具。我的意思是说,它实际上已经发展成为真正的引擎了吗?
  • AppGameKit -C ++,但似乎仍然很新。尚未找到任何评论
  • 使用Cocos2D和Objective C仅为iOS开发,然后使用Stella SDK用Android制作APK 。有人这样做吗?我敢肯定会有局限性,Android上Google的应用内结算,AdMob和Facebook集成又如何呢?
  • Moscrif -JavaScript,对于前Web开发人员来说似乎更像是
  • Starling -Flash 11,我对Flash的兴趣不大
  • ND2D-尚未1.0,它有很多功能吗?

因此,如果您能从您的引擎经验中提出意见,并建议列表中的哪一个(或我遗漏的其他任何东西)最适合所描述的需求,我将很高兴。我对某些引擎的第一印象也可能是错误的。

我目前认为Marmalade + IwGame是最好的选择,但由于我对Cocos2d-x和Particle代码的了解不多,因此我不确定。

谢谢!

编辑(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),完全有道理的是,只需为2D Toolkit支付额外的60美元即可获得2D游戏。我到目前为止 我为自己的决定感到遗憾,这似乎是我的最佳选择。唯一让我头疼的是在Prime31的插件(Android和iOS社交插件)中添加了社交功能,但我认为它们的错误不是Prime31的错,而是Twitter / Facebook的错,因此我可能会在上面看到相同的错误任何其他引擎或插件。

编辑(2014年1月):我猜现在有了Unity 4.3,我的问题的答案非常明显:Unity的新sprites系统以及2DToolkit完全击败了其他任何东西,特别是对于那些像我一样使用Unity一段时间的人并购买了带有附加组件的Pro版本。


您选择了哪一个?那么libgdx或andEngine呢,我什至没有提到它们,我认为这是最受欢迎的
kosnkov 2012年

1
@kosnkov-他指定了要求,包括一次写入一次部署两次(iOS和Android,以及Windows Phone +选件)的要求。andEngine仅适用于Android,而libgdx并不针对iOS(也不适用于Windows Phone),因此它们不符合条件。
雪碧2012年

1
我最终使用Unity3D和用于GUI的NGUI插件进行了3D游戏。如果我必须做2D游戏,我想我会选择Cocos2d-x和Marmelade
iseeall 2012年

1
从网站上来看,我很确定libgdx现在支持iOS。仍然没有Windows Phone。
Ehtesh Choudhury

1
为什么像这样一个极其有用的问题总是被封闭为“脱题”?也许SO应该为“信息”和意见创建一个单独的平台
Bogdan Alexandru

Answers:


33

我已经合作过Marmalade,我发现它很令人满意。尽管它不是免费的,并且开发人员社区还不够大,但是您仍然可以使用它的教程来处理大部分任务。(我也会有一段时间再写教程)。
IwGame是一款由Marmalade用户开发的优秀引擎。这对于基本游戏非常有用,但是如果您正在寻找一些严肃的高级游戏产品,也可以Cocos2D-x与果酱一起使用。我从未使用过Cocos2D-x,但是Marmalade的扩展名是Github
Marmalade的另一个好处是EDK (Extension Development Kit),它使您可以扩展所需的任何功能,这些功能在本机代码中可用,但在Marmalade中不可用。一世'

编辑
Marmalade现在拥有仅用于2D开发的自己的RAD(快速应用程序开发)工具,名为Marmalade Quick。尽管编码不是使用C ++编写的,而是使用Lua编写的,但是由于它基于C ++ Marmalade构建,因此您可以轻松地包括C ++库和所有其他EDK扩展。另外,Cocos-2DxBox2D扩展preincluded在快速。他们最近发布了它的发布版本(测试版持续了3-4个月)。我认为我们真的只是在寻找2D开发,您应该尝试一下。

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

Update 2
Marmalade即将停止开发其SDK,以支持内部游戏制作。因此,依靠它并不是一个明智的决定。



谢谢,看起来像Marmalade加上Cocos2D-x可能确实是我的最佳选择。
iseeall 2012年

2
提出此类问题时,忘记[LibGDX] [1]是不可原谅的!!!;)[1]:libgdx.badlogicgames.com
Ewoks

检查更新:-)
noob

虚幻引擎4.3.0也可以成为竞争者。它是带有编辑器和所有功能的C ++。
ervinbosenbacher 2014年

43

LibGDX是我使用过的最好的引擎之一,几乎可以在所有平台上运行,并且在我完成的大多数测试中,其性能是cocos2d-x的两倍。您可以使用任何喜欢的JVM语言。下面是 Java中的13部分教程,和这里的使用JRuby一堆。有一个很好的骨骼动画工具,它的作品在这里,它已在平铺的TMX支持出炉映射为好。ui框架很棒,它具有场景图和actor风格的API,类似于cocos2d场景,子画面和动作。社区很棒,更新频繁,文档很好。不要让Java部分吓到您,它很快,您可以使用jruby或scala或任何您喜欢的东西。我强烈建议将其用于2d或3d工作,它同时支持两者。


5
现在LibGDX也可以与iOS一起使用。但Monotouch许可证的价格约为400美元:)
JavaRunner,

5
从0.9.9版开始,它使用免费的iOS RoboVM
James McCracken

1
我已经广泛使用LibGDX和cocos2dx。而且会说cocos2dx更好(更快的开发+性能+工具)。如果您仅使用Android,则可以使用LibGDX,否则就不行!LibGDX的跨平台支持非常糟糕,这取决于RoboVM或Xamarin。Xamarin和RoboVM在iOS上的编译和执行速度都很慢。最终变得很难维护。
user18853 '16

13

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

如果您有兴趣,我已经写了一些有关使用Haxe / NME的经验的文章:链接


谢谢,仅来自您的文章:“如果您有HTML5 / Javascript(或Flash / ActionScript)游戏,并且希望将其带到Windows,iOS及更高版本上”。我猜想这个引擎恰好适合想要切换到移动平台的Web开发人员。
iseeall 2012年

Haxe / NME不是游戏引擎,它是构成技术堆栈一部分的平台。它不适合想要切换到移动平台的Web开发人员。适用于希望将游戏带到尽可能多的平台而不必处理JavaScript等劣等语言的游戏开发人员。HAXE / NME非常强大,但从事态发展来看,我认为这不是您想要的。
anber 2012年

12

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

V-Play还带有可立即使用的游戏模板,可用于最成功的游戏类型,例如塔防,平台游戏或益智游戏。

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

(免责声明:我是V-Play的幕后黑手之一)


7

这只是Richard Pickup在LinkedIn上对我的类似问题的答复:

我在iOS和android上都使用了cocos 2dx果酱和统一糖。对于2D游戏,cocos2dx每次都是必经之路。对于2D游戏而言,Unity过于矫kill过正,而正如已经说过的,果酱只是一个薄薄的抽象层,并不是真正的游戏引擎。您甚至可以在果酱上运行cocos2d。我的方法是在iOS和Android上使用cocos2dx,然后在果酱上运行cocosd2dx代码,作为移植到bb10并赢得手机7的简便方法


7

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


6

那么BadLogicGames的LibGDX呢?


1
我不知道libGDX可在iOS上运行。它需要一个MonoDroid许可证,现在是999美元,而不是每年399美元(可能是我认为该应用程序的MSIL不到32kb)。
ashes999 2013年

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 Game Engine的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. LML(标记语言)和CSS,用于设置UI元素的样式

  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-engine-Part-one-getting -started.aspx


5

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


4

我目前在商业应用中使用Corona取得了巨大的成功。就游戏而言,我给人的印象是它没有提供某些其他跨平台开发引擎所提供的性能。值得注意的是,Carlos(Ansca Mobile / Corona SDK的创始人)已经在竞争引擎上成立了另一家公司。用于加速器钛合金的Lanica Platino发动机。尽管我还没有亲自处理过,但它看起来确实很有前途。但是请记住,它的价格为999美元/年。

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

考虑到所制作游戏的复杂性以及从中获得的性能,Multimedia Fusion 2也是一个值得竞争的竞争者。文思(Vincere Totus)Astrum(http://gamesare.com)浮现在脑海。


3

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

可以选择使用Flash,因为它非常易于学习。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.