适用于Android和iOS的2D跨平台游戏引擎?
我在Unity3d上工作了一段时间,发现它的OnGUI()或者GUITextures太笨拙了。 而且,即使是Unity3d上最小的游戏,也至less有10MB的下载量,这对于2D游戏来说太过分了。
所以,我现在正在寻找2D的引擎。 我试过Cocos2D,但它只是iOS,我不想重写所有的东西到Android的另一种语言(所以,例如Android的Cocos2d的Java端口不是一个选项)。 相反,我想编写一次代码,而且最less麻烦部署在iOS,Android和Windows Phone 7上。我同时拥有Mac和Windows。
为了更加详细,这里是我对引擎的要求:
- 必须是跨平台的
- 必须高效
- 应该是C ++,Java,C#或Objective C,因为我对他们很舒服,而不是 Flash,Javascript,HTML5,因为我不是一个Web开发人员
- 必须有一个大型的社区,教程和其他库,涵盖了你直接在iOS或Android上开发的应用程序(应用内结算,Facebook等)
- 最终交付的软件包一定不能太大
- 发动机可以免费,但我也不会介意付出一个合理的价格
我find了以下引擎:
- 果酱 (和它上面的IwGame引擎 ) – C ++,发现整体非常正面的果酱评论,但不知道IwGame。 编辑(2013年3月) :看起来像Marmalade SDK现在包括Cocos2Dx和一些内置的IDE,使得它更好(独立开发每年花费150美元,这对我来说还行)。
- 电晕SDK – Lua(效率可疑),也需要互联网连接来编译代码
- Cocos2d-x – C ++收到了很多来自开发人员的评论,主要是积极的,许多人认为这是最好的2D
- 粒子代码 – Java + Eclipse,没有发现任何评论或评论
- Moai – Lua,找不到任何评论/意见
- 猴引擎 – 似乎有太less的function
- Haxenme – 这是Flash,我从来没有用过,也不想
- 使用Unity3d,但使用2D工具包等2D软件包
- SDL到Android (也在这里 )和iOS的端口 – 看起来没有太多的支持或当前的发展(?)
- GLBasic – 基本语言,我不喜欢它
- playN – 似乎在开发早期(?)
- Gamvas – HTML5,对我来说看起来不像是一个成熟的引擎
- Ignifuga – Python也看起来不成熟
- ORX – 不知道它是否仍然开发(?)
- 构build2 – 提醒GameMaker,对于快速原型可能没有问题,但绝对不适用于行业级别的游戏
- XNA ,然后使用ExEn移植游戏(需要Mono Touch移植到iOS, Mono移植到Android移植到Android) – C#,可能更多的是来自微软产品的人,比如xBox(我来自Android)。 另外,这些Mono工具对于小型开发人员总共花费了800美元
- 影响 – JavaScript,使用HTML5。 我没有太多的JavaScript(如Unity3d上的首选C#),也不知道效率,因为它运行在浏览器(?)
- GameMaker – 自己的脚本语言GML,我真的记得这个作为非程序员的工具。 它真的发展成为一个真正的引擎,我的意思是认真的发展?
- AppGameKit – C ++,但似乎还是相当新的。 还没有发现任何评论
- 使用Cocos2D和Objective C只为iOS开发,然后使用Stella SDK制作一个适用于Android的APK。 有没有人做过这个? 我很确定会有局限性,Google的应用内结算,AdMob和Facebook在Android上的整合情况如何?
- Moscrif – JavaScript,看起来更像是前网页开发者
- Starling – Flash 11,我没有太多的Flash
- ND2D – 还不是1.0,它有很多function吗?
所以,如果你能从你的引擎经验中发表评论,并且build议列表中的哪一个(或者我错过的其他东西)对于所描述的要求是最好的,我会很高兴。 对于我对某些引擎的第一印象,我也可能是错的。
我目前正在考虑Marmalade + IwGame作为最好的select,但由于我没有关于Cocos2d-x和Particle代码的很多信息,我不太确定。
谢谢!
编辑(2013年6月) :到目前为止,我做了2个跨平台的2D游戏,并使用Unity3D与2D工具包插件。 对于具有简单GUI的游戏,我使用了一个基于Unity自己的简单的自制GUI系统。 对于更复杂的(例如,GUI元素可以重叠的地方),我使用了NGUI插件。 最近2D工具包为GUI添加了更多的类,这非常方便,因为在将NGUI与2D Toolkit结合起来时,必须使用2个不同的纹理地图系统。 我一定会在下一个2D游戏中尝试一下。 为2D游戏selectUnity3D的主要原因是我已经深入到Unity3D的经验和积累的代码片段重用。 另外,我购买了Unity3D专业版(包括Android Pro和iOS Pro)以用于3D游戏,为了获得2D游戏,只需支付额外60美元的2D工具包即可。 我到目前为止不后悔我的决定,似乎是我的情况最佳。 唯一令我头疼的是在Prime31的插件(Android和iOS社交插件)中增加了社交function,但是我认为他们的错误不是Prime31的错,而是Twitter / Facebook的错误,所以我可能会看到相同的错误任何其他引擎或插件。
编辑(2014年1月) :我猜Unity 4.3对于我的问题的答案是非常明显的:Unity的新的精灵系统,也许2DToolkit完全击败了其他任何东西,特别是对于像(像我一样)在Unity一段时间并购买附加的专业版。
我已经与Marmalade
,我发现它令人满意。 虽然它不是免费的,开发者社区也不够大,但是你仍然可以使用它的教程来处理大部分的任务。 (一旦我有一些时间,我会写我的教程)。
IwGame
是一个很好的引擎,由Marmalade的用户开发。 这对于一个基本的游戏来说很好,但是如果你正在寻找一些严肃的高级游戏,你也可以使用带有果酱的Cocos2D-x
。 我从来没有使用过Cocos2D-x,但在Marmalade的Github
上有一个扩展。
关于Marmalade的另一个好处是它是EDK (Extension Development Kit)
,它可以让你对本地代码中可用的任何function进行扩展,而不是在Marmalade中。 我用它来开发自己的Customized Admob扩展和Facebook扩展。
编辑 :
Marmalade现在拥有自己的RAD(快速应用程序开发)工具,用于2D开发,命名为Marmalade Quick
。 虽然编码不是在C ++中,但是由于它是build立在C ++ Marmalade之上的,所以你可以很容易地包含一个C ++库和所有其他的EDK扩展。 Cocos-2Dx
和Box2D
扩展也包含在Quick中。 他们最近推出了它的发行版本(它已经在testing中的3-4个月)。 我想我们你真的只是在寻找2D开发,你应该试试看。
更新:
Unity3D最近推出了对2D游戏的支持,由于它的GUI和编辑器,它比任何其他的2D游戏引擎都要好。 物理,精灵等支持内置。 你可以看看它。
更新2
果酱将立即停止他们的SDK,以支持他们的内部游戏生产。 所以依靠这个决定是不明智的。
LibGDX是我曾经使用过的最好的引擎之一,在几乎所有的平台上都可以运行,在我做的大多数testing中,执行速度是cocos2d-x的两倍。 您可以使用任何您喜欢的JVM语言。 这里是一个13部分的Java教程, 这里有一大堆使用jruby。 这里有一个很好的骨架animation工具,它也支持平铺的TMX地图。 ui框架非常棒,它有一个类似于cocos2d场景,精灵和动作的场景图和actor风格的API。 社区真棒,更新频繁,文档很好。 不要让java部分吓唬你,它很快,你可以使用jruby或scala或任何你喜欢的东西。 我强烈推荐它为2d或3d工作,它支持两者。
你提到Haxe / NME,但你似乎本能地不喜欢它。 不过,我的经验非常积极。 当然,API是Flash API的重新实现,但是您不仅限于定位Flash,还可以编译为HTML5或本机Windows,Mac,iOS和Android应用程序。 Haxe是一种类似于Java或C#的愉快的现代语言。
如果你有兴趣,我已经写了一些关于我使用Haxe / NME的经验: 链接
V-Play (v-play.net)是基于Qt / QML的跨平台游戏引擎,具有许多有用的V-Play QML游戏组件,可处理多种显示分辨率和长宽比,animation,粒子,物理,多点触摸,手势,path发现等等。 API参考引擎核心是用本地C ++编写的,与自定义渲染器相结合,游戏在所有设备上达到60fps的稳定性能。
V-Play还配备了即用型游戏模板,可用于塔防,平台游戏或益智游戏等最成功的游戏types。
如果您对使用V-Play制作的游戏感到好奇,可以快速select这些游戏:
- Squaby :塔防游戏
- 鸡爆发 :像涂鸦跳跃一样的平台
- Blockoban :益智游戏
- 疯狂的大象 :类似于愤怒的小鸟的游戏
- 雪球疯狂 :多人动作游戏
- Blitzkopf :脑游戏
(声明:我是V-Play背后的人之一)
这里仅仅是LinkedIn上Richard Pickup对我的一个类似问题的回复:
我已经在iOS和Android上使用了cocos 2dx果酱和统一。 对于2D游戏,cocos2dx是每一次的走向。 Unity对2D游戏来说太过于矫枉过正,正如已经说过的,果酱只是一个简单的抽象层,并不是真正的游戏引擎。 你甚至可以在果酱上面运行cocos2d。 我的方法是在iOS上使用cocos2dx,然后在未来运行cocosd2dx代码在橘子酱之上作为一个简单的方法来移植到bb10和赢得手机7
我前几天发现了一个漂亮而整齐的Wave游戏引擎 。 它使用C#,并有Windows Phone和Windows Store转换器,这使得它成为XNA的一个很好的替代品
我试过AppGameKit,它是C ++和基本。 在基本variables中编写2D游戏非常容易,物理,碰撞和堆积更多。 这也是积极的发展,而且很便宜(65 $)。 主要的问题是,为Android编译真的很难(你需要下载大量的文件,并遵循这些难度的指南和类似的东西)。我的观点是,它还不够商业用途,但对独立程序员它有一个中等规模的社区
那么来自BadLogicGames的LibGDX呢?
检查织机( http://theengine.co )是一个新的跨平台2D游戏引擎,具有设备上的热插拔代码和资产。 这意味着您可以在Photoshop中使用您的资源,可以更新代码,修改应用/游戏的UI,然后在应用运行时查看设备上的更改。
想到我听说过的甚至是玩过的其他跨平台游戏引擎,在我看来,织机游戏引擎是最好的,有很多很棒的function。 大多数其他类似的游戏引擎(Corona SDK,MOAI SDK,Gideros Mobile)都是基于Lua的(至less对我来说是一个奇怪的语法)。 织机游戏引擎使用LoomScripts,这是一种从ActionScript 3中获得灵感的脚本语言,它具有从C#中借用的一些function。 如果你曾经在ActionScript 3,C#或Java中开发过,那么LoomScript就会让你看起来很熟悉(而且我比Lua的语法更适合这种语法)。
1年的织机游戏引擎许可证价格为500美元,我认为这对于任何独立游戏开发商来说都是一个合理的价格。 几个星期前也提供了免费的1年的许可证。 许可证过期后,仍然可以使用Loom创build和部署自己的游戏,但是不会得到任何进一步的更新。 织机的创造者非常有信心,他们承诺要不断改进自己的宝贝,以便购买另一个许可证。
不用再说了,这里有Loom的优点:
-
跨平台(iOS,Android,OS X,Windows,Linux / Ubuntu)
-
受Rails启发的工作stream程可让您花时间处理您的游戏(一个命令创build一个新项目,另一个命令运行)
-
快速编译器
-
实时代码和资产编辑
-
整合第三方库的可能性
-
使用Cocos2DX进行渲染
-
XML,JSON支持
-
LML(标记语言)和CSS风格的UI元素
-
UI库
-
dependency injection
-
unit testing框架
-
花栗鼠物理学
-
看到你的改变使得多设备开发变得简单
-
小的下载大小
-
为团队而build
您可以在这里find更多有关织机的video: 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
最近我使用了一个AS3引擎:PushButton(现在已经死了,但仍然可以使用,你可以使用别的东西)来完成这项工作。 为了使它与Android和iOS一起工作,该项目在AIR中被编译为两个平台,并且所有工作都没有性能损害。 由于Flash Builder相当昂贵($ 249),您可以使用FlashDevelop(有一些教程可以在AIR中编译)。
闪光可能是一个select,因为很容易学习。
我目前使用Corona为商业应用程序取得了巨大的成功。 就游戏而言,我的印象是它不能提供其他一些跨平台开发引擎的性能。 值得注意的是,Carlos(Ansca Mobile / Corona SDK的创始人)已经在另一家竞争引擎上启动了另一家公司。 Lance Platino引擎为Appceleratortitanium。 虽然我没有亲自处理这件事,但看起来很有希望。 但请记住,它的价格是999美元/年。
所有这一切,我一直在研究Moai一段时间(因为我已经熟悉Lua语法),而且看起来很有希望。 它可以编译多个平台,而不限于移动环境,这一事实吸引人。
多媒体融合2也是一个有价值的竞争者,考虑到游戏制作的复杂性和从他们实现的性能。 想到Vincere Totus Astrum( http://gamesare.com )。