我在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(我来自Android)等Microsoft产品的人来说,可能更值得考虑。而且,那些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),完全有道理的是,只需额外支付60美元的2D Toolkit即可获得2D游戏。我到目前为止 我为自己的决定感到遗憾,这似乎是我的最佳选择。唯一让我头疼的是在Prime31的插件(Android和iOS社交插件)中添加了社交功能,但我认为它们的错误不是Prime31的错,而是Twitter / Facebook的错,因此我可能会在上面看到相同的错误任何其他引擎或插件。
编辑(2014年1月):我想在Unity 4.3中,我的问题的答案现在非常明显:Unity的新sprites系统以及2DToolkit完全击败了其他任何东西,特别是对于那些(像我一样)使用Unity一段时间的人并购买了带有附加组件的Pro版本。
我曾经Marmalade
和我合作过,我发现它令人满意。尽管它不是免费的,并且开发人员社区也不够大,但是您仍然可以使用其教程来处理大部分任务。(我也有一段时间会写教程)。
IwGame
是一款由Marmalade用户开发的优秀引擎。这对于基本游戏非常有用,但是如果您正在寻找一些严肃的高级游戏产品,也可以Cocos2D-x
与果酱一起使用。我从未使用过Cocos2D-x,但是Marmalade的扩展名是Github
。
Marmalade的另一个好处是EDK (Extension Development Kit)
,它使您可以扩展所需的任何功能,这些功能在本机代码中可用,而在Marmalade中不可用。一世'
编辑:
Marmalade现在拥有仅用于2D开发的RAD(快速应用程序开发)工具,名为Marmalade Quick
。尽管编码将不在Lua中使用C ++,但是由于它基于C ++ Marmalade构建,因此您可以轻松地包括C ++库和所有其他EDK扩展。另外,Cocos-2Dx
和Box2D
扩展preincluded在快速。他们最近发布了它的发布版本(测试版持续了3-4个月)。我认为我们真的只是在寻找2D开发,您应该尝试一下。
更新:
Unity3D最近推出了对2D游戏的支持,由于它的GUI和编辑器,它似乎比任何其他2D游戏引擎都要好。内置了物理,精灵等支持。您可以看一下。
Update 2
Marmalade即将停止开发其SDK,以支持内部游戏制作。因此,依靠它并不是一个明智的决定。
LibGDX是我使用过的最好的引擎之一,几乎可以在所有平台上运行,并且在我完成的大多数测试中,其性能是cocos2d-x的两倍。您可以使用任何喜欢的JVM语言。下面是Java中的13部分教程,和这里的使用JRuby一堆。有一个很好的骨骼动画工具,它的作品在这里,它已在平铺的TMX支持出炉映射为好。ui框架很棒,它具有场景图和actor风格的API,类似于cocos2d场景,子画面和动作。社区很棒,更新频繁,文档很好。不要让Java部分吓到您,它很快,您可以使用jruby或scala或任何您喜欢的东西。我强烈建议将其用于2d或3d工作,它同时支持这两种方法。
您提到了Haxe / NME,但您似乎本能地不喜欢它。但是,我的经验非常积极。当然,该API是Flash API的重新实现,但您不仅限于Flash,还可以编译为HTML5或本机Windows,Mac,iOS和Android应用程序。Haxe是一种令人愉悦的现代语言,类似于Java或C#。
如果您有兴趣,我已经写了一些有关使用Haxe / NME的经验的文章:链接
V-Play(v-play.net)是基于Qt / QML的跨平台游戏引擎,具有许多有用的V-Play QML游戏组件,可处理多种显示分辨率和宽高比,动画,粒子,物理,多点触控,手势,寻路等。API参考
引擎核心是用本机C ++编写的,结合了自定义渲染器,游戏在所有设备上均达到60fps的稳定性能。
V-Play还带有可立即使用的游戏模板,用于最成功的游戏类型,例如塔防,平台游戏或益智游戏。
如果您对使用V-Play制作的游戏感到好奇,可以快速选择它们:
(免责声明:我是V-Play的幕后黑手之一)
这只是Richard Pickup在LinkedIn上对我的类似问题的答复:
我在iOS和android上都使用过cocos 2dx果酱和统一糖。对于2D游戏,cocos2dx每次都是必经之路。对于2D游戏而言,Unity过于矫kill过正,而正如已经提到的,果酱只是一个薄薄的抽象层,并不是真正的游戏引擎。您甚至可以在果酱上运行cocos2d。我的方法是在iOS和Android上使用cocos2dx,然后在果酱上运行cocosd2dx代码,作为移植到bb10并赢得手机7的简便方法
几天前,我发现一个不错且整洁的Wave游戏引擎。它使用C#并具有Windows Phone和Windows Store转换器,这使其成为XNA的绝佳替代品
那么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 Game Engine的1年许可费用为500美元,对于任何独立游戏开发商而言,我认为这都是可以承受的价格。几周前,该公司还免费提供了1年许可。许可证到期后,您仍然可以使用Loom来创建和部署自己的游戏,但不会获得任何进一步的更新。Loom的创建者非常有信心,他们承诺会不断改进自己的婴儿,使其值得再购买一次。
事不宜迟,以下是Loom的主要功能:
-
跨平台(iOS,Android,OS X,Windows,Linux / Ubuntu)
-
受Rails启发的工作流,您可以花时间在游戏上(一个命令可以创建一个新项目,另一个命令可以运行它)
-
快速编译器
-
实时代码和资产编辑
-
集成第三方库的可能性
-
使用Cocos2DX进行渲染
-
XML,JSON支持
-
LML(标记语言)和CSS,用于设置UI元素的样式
-
UI库
-
依赖注入
-
单元测试框架
-
花栗鼠物理学
-
实时查看您的更改使多设备开发变得容易
-
下载量小
-
专为团队打造
您可以在此处找到有关Loom的更多视频: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
我已经尝试过AppGameKit,它既是c ++又是Basic。在Basic变体中编写2D游戏非常容易,包括物理,碰撞和堆积更多内容。它也在积极开发中,而且非常便宜(65美元)。主要问题是,要在Android上编译真的很困难(您需要下载大量文件并遵循困难的指南之类的东西),我的观点是,它还不足以用于商业用途,但对独立程序员来说却是一件好事。它有一个中等规模的社区
我目前在商业应用中使用Corona取得了巨大的成功。就游戏而言,我给人的印象是它无法提供某些其他跨平台开发引擎所提供的性能。值得注意的是,Carlos(Ansca Mobile / Corona SDK的创始人)已经在竞争引擎上成立了另一家公司。Lanica Platino燃烧器钛合金发动机。虽然我还没有亲自处理过,但它看起来确实很有前途。但是请记住,它的价格为999美元/年。
综上所述,我已经研究了Moai了一段时间(因为我已经很熟悉Lua语法了),而且看起来确实很有希望。它可以针对多个平台进行编译,而不仅限于移动环境,这一事实很吸引人。
考虑到所制作游戏的复杂性以及从中获得的性能,多媒体融合2也是一个值得竞争的竞争者。Vincere Totus Astrum(http://gamesare.com)浮现在脑海。
最近,我使用了一个AS3引擎:PushButton(现在已经死了,但是它仍然可以工作,您可以使用其他东西)来完成这项工作。为了使其能够与Android和iOS一起使用,该项目在AIR中针对两个平台进行了编译,并且所有工作均不会影响性能。由于Flash Builder相当昂贵(249美元),因此您可以使用FlashDevelop(有一些教程可以在AIR中进行编译)。
可以选择使用Flash,因为它非常易于学习。
文章标签:2d , android , game-engine , ios , marmalade
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!