首页 文章

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

提问于
浏览
249

我已经使用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因为我不是Web开发人员

  • 必须有一个大型社区,教程,其他库,涵盖了您在iOS或Android上直接开发时所拥有的大部分内容(应用程序内结算,Facebook等)

  • 最终交付的包裹必须不会太大

  • 引擎可以免费,但我也不介意付出合理的价格

我找到了以下引擎:

  • Marmalade(和IwGame engine在它之上) - C,发现对Marmalade的整体非常积极的评论,但不确定IwGame . EDIT (March 2013) :看起来Marmalade SDK现在包含了Cocos2Dx和一些内置的IDE,这使得它更好(并且对于独立开发者来说每年花费150美元,这对我来说还可以) .

  • Corona SDK - Lua(效率值得怀疑),还需要互联网连接才能编译代码

  • Cocos2d-x - C,得到了很多来自开发人员的评论,其中大多数是积极的,很多人认为它最适合2D

  • Particle code - Java Eclipse,未找到评论或评论

  • Moai - Lua,找不到任何评论/意见

  • Monkey engine - 似乎功能太少了

  • Haxenme - 它's Flash, I'从未使用它而且不想

  • 使用Unity3d但使用像2D Toolkit这样的2D包
    999 SDLAndroid(也是here)和iOS的端口 - 看起来没有太多支持或当前开发(?)

  • GLBasic - 基本语言,我不喜欢它

  • playN - 似乎在开发初期(?)

  • Gamvas - HTML5,对我来说看起来不像是一个成熟的引擎

  • Ignifuga - Python,也看起来不成熟

  • ORX - 不确定它是否仍在开发中(?)

  • Construct 2 - 提醒GameMaker,可能适用于快速原型,但绝对不适合行业级游戏

  • XNA然后使用ExEn移植游戏(需要Mono Touch移植到iOS和Mono for Android移植到Android) - C#,对于来自xBox等微软产品(我来自Android)的人来说可能更多 . 此外,对于小型开发人员来说,这些Mono工具总共需要800美元

  • Impact - JavaScript,使用HTML5 . 我不太喜欢JavaScript(例如Unity3d上的首选C#),也不确定效率,因为它在浏览器中运行(?)

  • GameMaker - 自己的脚本语言GML,我实际上记得这个作为非程序员的工具 . 它真的成长为一个真正的引擎,我的意思是认真的发展?

  • AppGameKit - C,但似乎还很新 . 没有找到任何评论

  • 使用Cocos2D和Objective C仅为iOS开发,然后使用Stella SDK为其制作APK for Android . 有没有人这样做过?我在Android上进行了应用内结算,AdMob和Facebook集成?

  • Moscrif - JavaScript,看起来更适合以前的网络开发人员

  • Starling - Flash 11,我对Flash不太了解

  • ND2D - 还没有1.0,它有很多功能吗?

所以,如果你可以根据你对引擎的经验发表评论并建议列表中的哪一个(或者我错过的任何其他内容)最符合描述的要求,我会很高兴 . 我对一些引擎的第一印象也可能是错的 .

我目前正在考虑将Marmalade IwGame作为最佳选择,但由于我没有太多关于Cocos2d-x和Particle代码的信息,我对此并不十分肯定 .

谢谢!

EDIT (June 2013) :到目前为止,我制作了2个跨平台2D游戏,并使用Unity3D和2D Toolkit插件 . 对于使用简单GUI的游戏,我使用了一个简单的基于Unity的自制GUI系统's own. For more complex one (e.g. where GUI elements can overlap) I used the NGUI plugin. Recently 2D Toolkit added some more classes for GUI which is very handy since one had to use 2 different systems for texture atlases when combining NGUI with 2D Toolkit. I' ll肯定会在下一个2D游戏中尝试使用它 . 为2D游戏选择Unity3D的主要原因是我已经深入Unity3D的经验和累积的代码片段重复使用 . 此外,我购买了用于3D游戏的Unity3D pro(使用Android Pro和iOS Pro),只需支付额外60美元的2D工具包即可获得2D游戏 . 我到目前为止还没有插件(Android和iOS社交插件),但我认为他们的错误不是Prime31的错,而是Twitter / Facebook的错误,所以我可能会在任何其他引擎上看到相同的错误或插入 .

EDIT (Jan 2014) :我想在Unity 4.3中,我的问题的答案现在非常明显:Unity的新精灵系统,也许还有2DToolkit完全击败了其他任何东西,特别是那些曾经(像我一样)在Unity上工作一段时间并购买了Pro的人带加载项的版本 .

11 回答

  • 4

    几天前我找到一个漂亮整洁的Wave game engine . 它使用C#并拥有Windows Phone和Windows Store转换器,这使它成为我的XNA的绝佳替代品

  • 29

    我和 Marmalade 一起工作,我发现它很令人满意 . 虽然它是's not free and the developer community is also not large enough, but still you can handle most of the task using it'的教程 . (一旦我有一些时间,我会写我的教程) .
    IwGame 是一个很好的引擎,由一个Marmalade用户开发 . 它对基本游戏有好处,但如果你正在寻找一些严肃的高级游戏,你也可以使用 Cocos2D-x 与橘子酱 . 我've never used Cocos2D-x, but there'是Marmalade的 Github 的延伸 .
    关于Marmalade的另一个好处是它是 EDK (Extension Development Kit) ,它允许你为本机代码中提供的所需功能进行扩展,但不能在Marmalade中进行扩展 . 我用它来开发我自己的Customized Admob扩展和Facebook扩展 .

    Edit
    Marmalade现在拥有自己的RAD(快速应用程序开发)工具,仅用于2D开发,名为Marmalade Quick . 虽然编码将在Lua中而不是在C中,但由于它是在C Marmalade之上构建的,因此您可以轻松地包含C库和所有其他EDK扩展 . 此外, Cocos-2DxBox2D 扩展名也包含在Quick中 . 他们最近推出了's Release version (It was in beta for 3-4 months). I think we you'真的只是在寻找2D开发,你应该试一试 .

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

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

  • 4

    LibGDX是我做过的最好的引擎之一 . 您可以使用任何您喜欢的JVM语言 . Here's使用Java编写了13部分教程,使用jruby编写了一套here's . 有一个很好的骨架动画工具可以使用它here,它也支持平铺的TMX Map . ui框架非常棒,它有一个类似于cocos2d场景,精灵和动作的场景图和actor样式API . 社区很棒,更新频繁,文档也很好 . 快速,你可以使用jruby或scala或任何你喜欢的东西 . 我强烈推荐它用于2d或3d工作,它支持两者 .

  • 4

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

    如果您已经写了一些关于使用Haxe / NME的经验:link

  • 12

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

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

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

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

  • 2

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

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

  • 2

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

  • 6

    那么来自BadLogicGames的LibGDX怎么样?

  • 39

    查看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美元,我认为这对任何独立游戏开发者来说都是实惠的价格 . 几个星期前,它提供了一年免费许可证 . 许可证到期后,您仍然可以使用Loom创建和部署自己的游戏,但不会获得任何进一步的更新 . 织机的创造者非常自信,并承诺不断改善他们的宝宝,使其值得购买另一个许可证 .

    不用多说,这里有Loom的强大功能:

    • 跨平台(iOS,Android,OS X,Windows,Linux / Ubuntu)

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

    • 快速编译器

    • 实时代码和资产编辑

    • 集成第三方库的可能性

    • 使用Cocos2DX进行渲染

    • XML,JSON支持

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

    • UI库

    • 依赖注入

    • 单元测试框架

    • 花栗鼠物理

    • 实时查看您的更改使多设备开发变得简单

    • 小下载大小

    • 专为团队而建

    你可以在这里找到更多关于织机的视频: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

  • 12

    最近我使用了AS3引擎:PushButton(现在已经死了,但它仍然可以运行,你可以使用别的东西)来完成这项工作 . 为了使它适用于Android和iOS,该项目是在AIR中为两个平台编译的,所有工作都没有性能损坏 . 由于Flash Builder有点贵(249美元),你可以使用FlashDevelop(有一些教程可以在AIR中用它编译) .

    Flash可以是一个选项,因为它非常容易学习 .

  • 6

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

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

    考虑到所制作游戏的复杂性和从中实现的性能,多媒体融合2也是一个值得争夺的竞争者 . 脑海中浮现出Vincere Totus Astrum(http://gamesare.com) .

相关问题