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


我已经使用Unity3d工作了一段时间,并发现它与OnGUI()或GUITextures的2D部分太笨拙。此外,即使在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等)
  • 最终交付的包裹不能太大
  • 引擎可以免费,但我也不介意付出合理的价格

我找到了以下引擎:

  • 果酱 (和 IwGame引擎 在它的基础上) - C ++,发现对Marmalade的整体非常积极的评论,但不确定IwGame。 编辑(2013年3月):看起来Marmalade SDK现在包括Cocos2Dx和一些内置的IDE,这使得它更好(并且对于独立开发者而言每年花费150美元,这对我来说还可以)。
  • Corona SDK  - Lua(效率值得怀疑),还需要互联网连接才能编译代码
  • 的Cocos2D-X  - C ++,得到了很多来自开发人员的评论,大多数都是积极的,许多人认为它最适合2D
  • 粒子代码  - Java + Eclipse,未找到评论或评论
  • 摩艾  - Lua,找不到任何评论/意见
  • 猴子引擎  - 似乎功能太少了
  • Haxenme  - 它是Flash,我从来没有使用它,也不想
  • 使用 Unity3d 但使用像2D Toolkit这样的2D软件包
  • 的港口 SDL 至 Android的 (也 这里)和 iOS版  - 看起来没有太多的支持或当前的发展(?)
  • GLBasic  - 基础语言,我不喜欢它
  • playN  - 似乎是在开发的早期(?)
  • Gamvas  - HTML5,对我来说看起来不像是一个成熟的引擎
  • Ignifuga  - Python,也看起来不成熟
  • ORX  - 不确定它是否仍然开发(?)
  • 构造2  - 提醒GameMaker,可能适用于快速原型,但绝对不适合行业级别的游戏
  • XNA 然后使用移植游戏 内胚 (需要 单声道触摸移植到iOS和 Mono for Android 移植到Android) - C#,对于来自xBox等微软产品(我来自Android)的人们来说可能更多。此外,对于小型开发人员来说,这些Mono工具总共需要800美元
  • 碰撞  - JavaScript,使用HTML5。我不太喜欢JavaScript(例如Unity3d上的首选C#),也不确定效率,因为它在浏览器中运行(?)
  • GameMaker  - 自己的脚本语言GML,我实际上记得这个作为非程序员的工具。它真的成长为一个真正的引擎,我的意思是认真的发展?
  • AppGameKit  - C ++,但似乎仍然很新。没有找到任何评论
  • 使用 的Cocos2D 和Objective C只为iOS开发,然后使用它制作一个Android for Android Stella SDK。有没有人这样做过?我很确定会有限制,以及Google在Android上的应用内结算,AdMob和Facebook集成情况如何?
  • Moscrif  - JavaScript,对于以前的网络开发者来说更​​像
  • 欧椋鸟  - 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工具包额外支付60美元即可获得2D游戏。到目前为止,我并不后悔自己的决定,这对我的案子来说似乎是最优的。让我头痛的唯一一件事就是在Prime31的插件(Android和iOS社交插件)中添加了社交功能,但我认为他们的错误不是Prime31的错,而是Twitter / Facebook的错误,所以我可能会看到相同的错误任何其他引擎或插件。

编辑(2014年1月):我想在Unity 4.3中,我的问题的答案现在非常明显:Unity的新精灵系统,也许还有2DToolkit完全胜过其他任何东西,特别是那些曾经(像我一样)在Unity上工作一段时间并购买Pro版本的人附加组件。


246
2017-09-03 07:22


起源


你选择哪一个?关于libgdx或andEngine,你甚至没有提到过我认为最流行的人 - kosnkov
@kosnkov - 他指定了包含一次写入部署两次的要求(iOS和Android,带有Windows Phone选项)。 andEngine仅适用于Android,libgdx不针对iOS(也不是Windows Phone),因此它们不符合条件。 - sprite
我最终用Unity3D和NGUI插件为GUI做了一个3D游戏。如果我必须做2D游戏,我想我会选择Cocos2d-x和Marmelade - iseeall
从网站上判断,我很确定 libgdx 现在支持iOS。虽然还没有Windows手机。 - Ehtesh Choudhury
为什么像这样非常有用的问题总是被称为“偏离主题”?也许SO应该为“信息”和意见创建一个单独的平台 - Bogdan Alexandru


答案:


我曾经和我一起工作过 Marmalade 我发现它令人满意。虽然它不是免费的,开发人员社区也不够大,但你仍然可以使用它的教程处理大部分任务。 (一旦我有一些时间,我会写我的教程)。
IwGame 是一个很好的引擎,由Marmalade用户之一开发。它对基本游戏很有用,但如果你正在寻找一些严肃的高级游戏,你也可以使用 Cocos2D-x 与橘子酱。我从未使用过Cocos2D-x,但是Marmalade上有一个扩展版 Github
关于橘子酱的另一个好处就是它 EDK (Extension Development Kit),它允许您为本机代码中可用的任何功能进行扩展,但不能在Marmalade中进行扩展。我用它来开发我自己的Customized Admob扩展和Facebook扩展。

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

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

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


29
2018-01-22 04:31



您也可以阅读这个SO问题 - stackoverflow.com/questions/12059539/cocos2d-or-iwgame - noob
谢谢,看起来像Marmalade与Cocos2D-x在它之上可能确实是我的情况下的最佳选择。 - iseeall
忘记[LibGDX] [1]当这类问题上升是不可原谅的! ;)[1]: libgdx.badlogicgames.com - Ewoks
查看更新:-) - noob
虚幻引擎4.3.0也可以成为竞争者。它是带编辑器的C ++和所有。 - ervinbosenbacher


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


39
2017-09-03 12:29



现在LibGDX也适用于iOS。但Monotouch许可证的成本约为400美元:) - JavaRunner
从版本0.9.9开始,它使用免费的RoboVM for iOS - James McCracken
robovm是免费的吗? - Marian Paździoch
我广泛使用过LibGDX和cocos2dx。并且会说cocos2dx要好得多(开发速度更快+性能+工具)。如果你只使用android-only,那么就可以使用LibGDX了! LibGDX的跨平台支持非常糟糕,这取决于RoboVM或Xamarin。 Xamarin和RoboVM使得编译和执行在iOS上都非常慢。它最终变得非常难以维护。 - user18853


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

如果您有兴趣,我会写一些关于使用Haxe / NME的经验: 链接


12
2017-08-23 14:44



谢谢你,直到你的文章:“如果你有一个HTML5 / Javascript(或Flash / ActionScript)游戏,你想把它带到Windows,iOS及更高版本”。我想这个引擎完全适合想要切换到移动平台的Web开发人员。 - iseeall
Haxe / NME不是游戏引擎,它是构成技术堆栈一部分的平台。它不适合想要切换到移动平台的Web开发人员。它适用于那些希望尽可能多地将游戏带到尽可能多的平台而不必处理像JavaScript这样的低级语言的游戏开发者。 HAXE / NME非常强大,但从事物的声音来看,我认为这不是你想要的。 - anber


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

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

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

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


12
2017-09-04 10:02





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

我在iOS和Android上都使用过cocos 2dx橘子酱和团结。对于   2d游戏cocos2dx是每次都要走的路。团结太多了   对于2d游戏来说过度杀伤,而且已经说过的橘子酱只是一个薄的   抽象层不是真正的游戏引擎。你甚至可以运行cocos2d   在橘子酱上面。我的方法是在iOS和iOS上使用cocos2dx   android然后在将来的橘子酱上运行cocosd2dx代码作为   轻松的方式移植到bb10并赢得手机7


6
2017-07-30 07:08





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


6
2017-12-19 06:11





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


4
2018-01-20 16:03