我已经使用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 SDL到Android(也是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 回答
几天前我找到一个漂亮整洁的Wave game engine . 它使用C#并拥有Windows Phone和Windows Store转换器,这使它成为我的XNA的绝佳替代品
我和
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-2Dx
和Box2D
扩展名也包含在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以支持他们的内部游戏制作 . 因此,依靠这一点并不是一个明智的决定 .
LibGDX是我做过的最好的引擎之一 . 您可以使用任何您喜欢的JVM语言 . Here's使用Java编写了13部分教程,使用jruby编写了一套here's . 有一个很好的骨架动画工具可以使用它here,它也支持平铺的TMX Map . ui框架非常棒,它有一个类似于cocos2d场景,精灵和动作的场景图和actor样式API . 社区很棒,更新频繁,文档也很好 . 快速,你可以使用jruby或scala或任何你喜欢的东西 . 我强烈推荐它用于2d或3d工作,它支持两者 .
你提到Haxe / NME,但你似乎本能地不喜欢它 . 但是,我对它的体验非常积极 . 当然,API是Flash API的重新实现,但您不仅限于定位Flash,还可以编译为HTML5或本机Windows,Mac,iOS和Android应用程序 . Haxe是一种令人愉快的现代语言,类似于Java或C# .
如果您已经写了一些关于使用Haxe / NME的经验:link
V-Play(v-play.net)是一款基于Qt / QML的跨平台游戏引擎,具有许多有用的V-Play QML游戏组件,用于处理多种显示分辨率和宽高比,动画,粒子,物理,多点触控,手势,寻路等等 . API reference引擎核心是用本机C编写的,结合自定义渲染器,游戏在所有设备上都能达到60fps的稳定性能 .
V-Play还附带了即时可用的游戏模板,可用于最成功的游戏类型,如塔防,平台游戏或益智游戏 .
如果您对使用V-Play制作的游戏感到好奇,可以快速选择它们:
Squaby:塔防游戏
Chicken Outbreak:像Doodle Jump这样的平台游戏
Blockoban:益智游戏
Crazy Elephant:类似于愤怒的小鸟的游戏
Snowball Mania:多人动作游戏
Blitzkopf:脑力游戏
(免责声明:我是V-Play背后的人之一)
以下是Richard Pickup在LinkedIn上对我的类似问题的回复:
我试过AppGameKit,它既是c又是Basic . 在Basic varient中编写2D游戏非常容易,物理,碰撞和堆积更多 . 它也在积极开发,而且非常便宜(65美元) . 主要的问题是,为Android编译真的很难(你需要下载大量文件并遵循困难的指南和类似的东西)我认为它还不够用于商业用途,但对独立程序员有好处它有一个中等规模的社区
那么来自BadLogicGames的LibGDX怎么样?
查看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
最近我使用了AS3引擎:PushButton(现在已经死了,但它仍然可以运行,你可以使用别的东西)来完成这项工作 . 为了使它适用于Android和iOS,该项目是在AIR中为两个平台编译的,所有工作都没有性能损坏 . 由于Flash Builder有点贵(249美元),你可以使用FlashDevelop(有一些教程可以在AIR中用它编译) .
Flash可以是一个选项,因为它非常容易学习 .
我目前使用Corona进行商业应用取得了巨大成功 . 就游戏而言,我的印象是它不能提供其他一些跨平台开发引擎的性能 . 值得注意的是,Carlos(Ansca Mobile / Corona SDK的创始人)已经在竞争引擎上创办了另一家公司;用于Appcelerator Titanium的Lanica Platino引擎 . 虽然我没有亲自处理过,但看起来确实很有前景 . 但请记住,它带有999美元/年的价格标签 .
所有这一切,我一直在研究Moai一段时间(因为我已经熟悉了Lua语法)并且看起来很有希望 . 它可以针对多个平台进行编译,而不仅限于移动环境,这一事实很有吸引力 .
考虑到所制作游戏的复杂性和从中实现的性能,多媒体融合2也是一个值得争夺的竞争者 . 脑海中浮现出Vincere Totus Astrum(http://gamesare.com) .