我在Unity3d上工作了一段时间,发现它的2D部分和OnGUI()或吉他织物太笨拙了.此外,即使是在Unity3d上完成的最小游戏,下载量也至少为10MB,这对于2D游戏来说太多了.
所以,我目前正在寻找2D引擎.我试过cocos2d,但它只支持iOS,我不想把所有东西都重写成Android的另一种语言(所以,比如,Android的Cocos2d的Java移植不是一个 Select ).取而代之的是,我想只写一次代码,并以最小的麻烦将其部署在iOS、Android,可能还有Windows phone7上.我的Mac和Windows都有.
更详细地说,以下是我对引擎的要求:
- 必须是跨平台的
- 必须有效率
- 应该是C++、Java、C#或Objective C,因为我对它们很满意,还应该是NOTFlash、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++,收到了许多开发人员的 comments ,大多是正面的,许多人认为它最适合2D
- Particle code-Java+Eclipse,未发现 comments 或 comments
- Moai-Lua,找不到任何 comments /意见
- Monkey engine-功能似乎太少
- Haxenme-这是Flash,我从来没用过,也不想用
- 使用Unity3d,但使用2D工具包(如2D Toolkit)
- 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++,但似乎仍然是新的.还没有找到任何 comments
- 使用Cocos2D和Objective C仅为iOS开发,然后使用Stella SDK为Android开发一个APK.有人这么做过吗?我很肯定会有一些限制,谷歌在Android上的应用内计费、AdMob和Facebook集成怎么样?
- Moscrif-JavaScript,看起来更适合以前的Web开发人员
- Starling-Flash 11,我不太喜欢Flash
- ND2D-还不到1.0,它有很多功能吗?
因此,如果您能根据您对发动机的体验进行 comments ,并建议列表中的哪一个(或我错过的任何其他内容)最适合所描述的要求,我将非常高兴.我对一些引擎的第一印象也可能是错误的.
我目前认为Marmalade+IwGame是最好的 Select ,但由于我没有太多关于cocos2d-x和粒子代码的信息,我不是很确定.
谢谢!
EDIT (June 2013):到目前为止,我制作了两个跨平台2D游戏,并使用Unity3D和2D工具包插件.对于使用简单GUI的游戏,我使用了一个基于Unity自己的简单brew GUI系统.对于更复杂的一个(例如GUI元素可能重叠的地方),我使用了NGUI插件.最近,2D Toolkit为GUI添加了更多的类,这非常方便,因为在将NGUI与2D Toolkit组合时,必须使用两个不同的纹理 map 集系统.我一定会在下一个2D游戏中try 这个. Select Unity3D进行2D游戏的主要原因是,我已经深入了解了Unity3D,无论是在经验方面,还是在积累代码片段以供重复使用方面.此外,我还购买了Unity3D pro(带有Android pro和iOS pro)用于3D游戏,只需额外支付60美元购买2D工具包,就可以获得2D游戏.到目前为止,我并不后悔我的决定,这似乎是最适合我的情况.唯一让我头疼的是在Prime31的插件(Android和iOS社交插件)中添加社交功能,但我认为它们的漏洞不是Prime31的错,而是Twitter/Facebook的错,所以我可能会在任何其他引擎或插件上看到同样的漏洞.
EDIT (Jan 2014):我想用Unity 4.3,我的问题的答案现在很明显了:Unity的新的精灵系统,也许还有2DToolkit完全击败了其他任何东西,特别是对于那些(像我一样)使用Unity一段时间并购买了带有附加组件的Pro版本的人.