我在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)
  • 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++,但似乎仍然是新的.还没有找到任何 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版本的人.

推荐答案

I've worked with Marmalade and I found it satisfying. Although it's not free and the developer community is also not large enough, but still you can handle most of the task using it's tutorials. (I'll write my tutorials once I got some times too).
IwGame is a good engine, developed by one of the Marmalade user. It's good for a basic game, but if you are looking for some serious advanced gaming stuff, you can also use Cocos2D-x with Marmalade. I've never used Cocos2D-x, but there's an Extension on Marmalade's Github.
Another good thing about Marmalade is it's EDK (Extension Development Kit), which lets you make an extension for whatever functionality you need which is available in native code, but not in Marmalade. I've used it to develop my own Customized Admob extension and a Facebook extension too.

Edit:
Marmalade现在有自己的RAD(快速应用程序开发)工具,仅用于2D开发,名为Marmalade Quick.虽然代码将用Lua编写,而不是用C++编写,但是因为它构建在C++Marmalade之上,所以您可以很容易地包含一个C++库和所有其他EDK扩展.此外,Quick中还预先包含了Cocos-2DxBox2D分机.他们最近推出了发行版(测试版3-4个月).我想我们你们真的只是在寻找2D开发,你们应该试一试.

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

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

Ios相关问答推荐

UIImage大小调整工作,但转换为上传数据时恢复到原始大小

在SwiftUI中插入绘制重复形状

视图未更新以在按下按钮时显示另一个视图

使用 WebKit 加载 YouTube 视频时控制台中打印警告

SKScene 的更新功能似乎不起作用

Flutter 构建 ios 失败:运行 pod 安装时出错

发生异常:需要 issuerId

iOS SwiftUI - 使用 PhotosPicker 从图库中 Select 图像或视频

在 SwiftUI 中使用 .rotation3DEffect 在视图之间翻转

SwiftUI:如何为 ScrollView 制作可拉伸(灵活)的粘性标题?

List touch Tabbar 时 SwiftUI Tabbar 消失

分析应用程序版本时出错 - Apple 提交到store

按钮在 SwiftUI 中没有采用给定的高度和宽度

如何在 UIActivityViewController 中设置邮件主题?

Xcode 4.1 致命错误:自构建预编译头文件后修改了 stdlib

向标签栏控制器添加新标签

如何将自己项目中的类导入 Playground

UINavigationBar - 以编程方式设置标题?

如何防止 iOS 设备上的显示屏变暗和关闭?

zoom UIButton 动画 - Swift