CasualArena团队自从2008年开始就在开发Flash网页游戏。过去的一年里,他们学习不同的技术以及和3D的专业开发 ,拥有了在跨平台的移动游戏和平板游戏上的专业开发经验。这篇文章强调了这两个平台的不同环境以及它们之间各自不同的特点。大多数的移动游戏和平板游戏开发者都希望他们开发的游戏可以运行在不同的平台上,至少能够在IOS和安卓平台上运行。当然,用原生代码(IOS的Objective-C,安卓的JAVA)总是可以让两个或者更多平行开发得以实现,但是不建议这样做。最有效的做法是使用一个能一次开发就可以发布到多个平台的开发环境。那么问题来:该使用什么技术呢?
除了别的之外还有各种各样的框架和技术可以使用:Unity3D,Cocos2D,Marmalade SDK以及Adobe Flash。Adobe Flash实际上只能用在你想把开发的网页游戏迅速移植到移动设备上。如果你开发的游戏很简单(如棋盘游戏),那么就可以使用Flash开发,然而,如果你的游戏比较复杂的话(如经营游戏,有大量图形或者动画的游戏等)那么就不适合用Flash做开发。Cocos2D是一个全面的框架,开源并且完全免费。
这就是大多人使用这个技术的主要原因,胜过不完全免费的Marmalade和Unity.Unity3D仍然是开发3D游戏的主要开发平台。Unity的新版本已经包含了开发2D游戏的功能,在2D游戏开发方面也夯实了坚定的地位,Cocos和Unity是开发2D游戏的首要选择。根据我们的经验,我们推荐选择这两个中的一个来开发2D游戏。但是仍然有一个大问题:
在网上你可以找到很多这两种技术的对比。在我们开发游戏之前,我们要了解相关数据和信息并决定使用那种技术。但是人们对这两种技术的对比大多都比较主观。擅长Cocos的人会偏向于Cocos。而使用Unity的人则偏向于Unity。真的极少有专业开发人员在两个平台上做对比。我们在这两种平台上都学习开发过,也有自己的主观看法:Unity是一个更清晰更好的平台。实际上更精确的回答应该是:除非你能负担的起Unity的费用,否则就选择Cocos。Unity3D比Cocos2D的技术要更为高级,虽然Cocos开源并且免费。考虑到他们的不同。在任何时候谈论Cocos2D(或者简称Cocos),我们都指的是-x,Cocos平台的延伸(最初面向iPone的平台)。
Cocos2d免费,开源和无限的使用期限。而Unity比较贵。它有免费许可证,但是专业开发人员使用的话有功能限制。许可证价格在1500美元到4500美元之间,加上税会更多,这对新入开发人员来说是个重大负担。Cocos2D使用 c++编程语言和开明的库,比Unity程序处理上稍微简单些。你可以完全查看Cocos2d的代码,根据自己需求来编辑代码 。如果你擅长 C++而且不想承担Unity的高昂使用费,Cocos2D就是最好的选择。它有很多非常好用的功能,但是和Unity相比没有什么优势。它有很好的物理引擎,并有每个功能特征都有大量实例,有一个庞大的的开发者社区来支持和改善等。但是这些Unity也有。
当然我们谈论的是2d,其他的一切,Coco不支持3d软件
Cocos2D没有集成的环境设计。可视化接口设计要用编程实现,用C++加载和定位图片。但是你可以使用免费的外部图形编辑器CcosStudio,可以帮你在屏幕定位元素和配置某个对象。但是这个编辑器比Unity的功能少太多。Unity的编辑器完全整合在了一起。而Cocos Studio并没有,而且它的操作基于XML文件,依靠Cocos的库生成一系列图像。它存在一些bug,并不能在所有的电脑上工作。Unity图形编辑器通过拖动组件和修改参数可以很轻松的布局和设计Unity场景,加入对象,脚本,灯光特效,图形效果等。因此,它相对于Cocos2D或者Cocos Studio的布局来说大大减少了开发时间。
编程语言
Cocos2D使用C++语言编程,Unity3D可以使用C#和Javascript。C#和Javascript都是比C++更为强大的语言,让你的程序开发和算法更简单。同时,对那些不擅长C++的人来说,学起起来不会感到困难乏味。而且你还要担心C++的指针和内存泄漏问题。这些问题在Unity里都不会出现,让你只专注于你的游戏开发,又节省了巨大的时间。此外,代码编辑器,Unity使用MonoDevelop或者VisualStudio,比起Cocos更加稳定,方便和全面。总之,我们可以说C#/Javascript(Unity)比C++更简单,是可以节省你很多时间的高效语言。
多平台
两中技术都是跨平台,但是Unity更好。Cocos2D支持开发不同的移动平台包括IOS和安卓。而Unity包含了更多:游戏机平台,桌面和浏览器。如果你想要你的浏览器开发支持Facebook,那么Cocos2D就不足以胜任。但是你可以用Cocos来做浏览器的二次开发,比如用Adobe Flash,通常用来做为手机和网页游戏市场的开发。使用Unity就没有这个必要,能够很方便的导出到浏览器。Unity支持大多数游戏市场所使用的平台:手机和平板(IOS,安卓,Window Phone以及黑莓),浏览器(和 即将到来的HTML5)游戏机平台(XBox,PlayerStation和Wii)以及桌面(PC,Mac和Linux)。此外,Unity可以特殊定制给不同设备,而Cocos2D就一个最简单的方法(例如,适合开发安卓和IOS平台游戏)。