我在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版本。