【发布时间】:2012-08-27 09:35:39
【问题描述】:
我用 Unity3d 工作了一段时间,发现它的 2D 部分与 OnGUI() 或 GUITextures 太笨拙了。此外,即使是在 Unity3d 上完成的最小游戏也至少需要 10MB 的下载量,这对于 2D 游戏来说实在是太大了。
所以,我目前正在寻找 2D 引擎。我已经尝试过 Cocos2D,但它只是 iOS,我不想将所有内容都重写为 Android 的另一种语言(因此,例如 Cocos2d for Android 的 Java 端口不是一个选项)。相反,我想编写一次代码,并在 iOS、Android 和可能的 Windows Phone 7 上轻松部署它。我有 Mac 和 Windows。
为了更详细,以下是我对引擎的要求:
- 必须是跨平台的
- 必须高效
- 应该是 C++、Java、C# 或 Objective C,因为我对它们很熟悉,不是Flash、Javascript、HTML5,因为我不是网络开发人员
- 必须有一个大型社区、教程和其他库,涵盖了您在 iOS 或 Android 上直接开发时所拥有的大部分内容(应用内计费、Facebook 等)
- 最终交付的包裹不能太大
- 引擎可以免费,但我也不介意支付合理的价格
我找到了以下引擎:
- Marmalade(以及最重要的IwGame engine)- C++,对 Marmalade 的总体评价非常积极,但对 IwGame 不确定。 编辑(2013 年 3 月):看起来 Marmalade SDK 现在包含 Cocos2Dx 和一些内置 IDE,这使它变得更好(独立开发者每年花费 150 美元,这对我来说没问题)。
- Corona SDK - Lua(效率存疑),编译代码也需要网络连接
- Cocos2d-x - C++,收到了很多来自开发者的评价,大部分都是正面的,很多人认为它最适合 2D
- Particle code - Java+Eclipse,未找到评论或 cmets
- Moai - Lua,找不到任何评论/意见
- Monkey engine - 功能似乎太少了
- Haxenme - 是 Flash,我没用过也不想用了
- 使用 Unity3d,但使用 2D 工具包等 2D 软件包
- 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)的人(我来了)来自安卓)。此外,对于小型开发人员来说,这些 Mono 工具的总成本为 800 美元
- Impact - JavaScript,使用 HTML5。我不太喜欢 JavaScript(例如 Unity3d 上的首选 C#),也不确定效率,因为它在浏览器中运行(?)
- GameMaker - 自己的脚本语言 GML,我记得这个是为非程序员提供的工具。它是否真的成长为真正的引擎,我的意思是进行认真的开发?
- AppGameKit - C++,但似乎还是很新。没有找到任何关于它的评论
- 使用Cocos2D 和Objective C 只为iOS 开发,然后使用Stella SDK 为Android 制作APK。有人做过吗?我很确定会有限制,那么 Google 在 Android 上的应用内结算、AdMob 和 Facebook 集成怎么样?
- Moscrif - JavaScript,看起来更适合以前的网络开发人员
- Starling - Flash 11,我不太喜欢 Flash
- ND2D - 还没有 1.0,它有很多功能吗?
所以,如果您能根据您使用引擎的经验发表评论,并建议列表中的哪一个(或我遗漏的任何其他内容)最适合所描述的要求,我会很高兴。我对某些引擎的第一印象也可能有误。
我目前认为 Marmalade+IwGame 是最好的选择,但由于我没有太多关于 Cocos2d-x 和粒子代码的信息,所以我不太确定。
谢谢!
编辑(2013 年 6 月):到目前为止,我制作了 2 个跨平台的 2D 游戏,并为这两个游戏使用了 Unity3D 和 2D Toolkit 插件。对于GUI简单的游戏,我使用了一个基于Unity自己的简单的自制GUI系统。对于更复杂的(例如 GUI 元素可以重叠的地方),我使用了 NGUI 插件。最近 2D Toolkit 为 GUI 添加了更多类,这非常方便,因为在将 NGUI 与 2D Toolkit 结合时,必须使用 2 个不同的系统来制作纹理图集。我肯定会在下一个 2D 游戏中尝试那个。选择 Unity3D 做 2D 游戏的主要原因是我在经验和积累的代码 sn-ps 以供重用方面已经深入 Unity3D。此外,我为 3D 游戏购买了 Unity3D pro(带有 Android Pro 和 iOS Pro),只需额外支付 60 美元购买 2D 工具包即可获得 2D 游戏。到目前为止,我并不后悔我的决定,这似乎对我来说是最佳选择。唯一让我头疼的是使用 Prime31 的插件(Android 和 iOS 社交插件)添加社交功能,但我认为它们的错误不是 Prime31 的错,而是 Twitter/Facebook 的错,所以我可能会看到相同的错误任何其他引擎或插件。
编辑(2014 年 1 月):我想 Unity 4.3 对我的问题的答案现在非常明显:Unity 的新精灵系统和 2DToolkit 可能完全击败了其他任何东西,尤其是对于那些拥有(和我一样)使用 Unity 有一段时间了,并购买了带有附加组件的 Pro 版本。
【问题讨论】:
-
你选择了哪一个? libgdx 或 andEngine 呢,你甚至没有提到它们,我认为它们是最受欢迎的
-
@kosnkov - 他指定的要求包括一次编写一次部署两次(iOS 和 Android 以及 Windows Phone 选项)。 andEngine 仅适用于 Android,而 libgdx 不针对 iOS(也不针对 Windows Phone),因此它们不符合条件。
-
我最终用 Unity3D 和用于 GUI 的 NGUI 插件做了一个 3d 游戏。如果我必须做 2D 游戏,我想我会选择 Cocos2d-x 和 Marmelade
-
从网站上看,我很确定libgdx 现在支持 iOS。不过还是没有windows phone。
-
为什么像这样一个非常有用的问题总是被关闭为“离题”?也许 SO 应该为“信息”和意见创建一个单独的平台
标签: android ios 2d game-engine marmalade