现在手游火的一塌糊涂,引擎也是层出不穷除了引领3D市场的Unity3D,独霸2D市场的Cocos2D-X之外,还有虚幻、Sphinx等,甚至搜狐也开发了国产的Genesis-3D引擎。
其它的不多说,这里主要就对比Unity3D和Cocos2D-X,帮助大家选择。
如果你想开发一个2D游戏,有着C++/C/LUA之一的基础,那么Cocos2D-X也许比较适合你。他本身就为2D游戏设计,有着丰富的源码、实例和教程文档。你可以得到社区的大力支持。
如果你想开发一个3D或2D游戏,有着面向对象编程语言基础(比如Java、C#、AS等)。那么Unity3D会很适合你。虽然他主攻3D,但是assetstore有着丰富的插件,使得你想快速构建一个2D游戏也不是一件难事。
其实把这两个东西放在一起比,即使不严格说也是没有办法说的。Cocos2d-x是个渲染引擎,专注2D游戏(即使内部利用3D的很多技术)。而Unity是个解决方案,不单是渲染引擎,早先专注于3D应用的开发;最近因为它一个2D插件(用来帮助开发者制作2D游戏)在用户需求中还是比较强烈的,战略性的官方开始把这个插件的功能官方化(官方开始制作2D功能的模块),因此可以说由把Cocos2d-x的功能也在融合进来。这个是概念上的澄清。
基于概念回到问题,学习这两个东西,并不是两个技术的方向,而是两个游戏开发类型的方向。因为Unity如果弄得很通,Cocos2d-x就是个子集(仅负责渲染管理)。我只能说,对于刚入门的,如果你不是只想专注于2D游戏,那么,完全可以从Unity入手,理由:
1、完整的解决方案,学好一个,其他的东西上手非常快;
2、海量的学习资料;
3、没有C++的繁琐,完全可以专注于技术点的学习;
学习难度的话,我想C++如果好的话,Cocos2d-x相对小一点,涉及功能少很多,所以,相对简单;但是C++如果不会或者不好,则另当别论,而且相对入门的来说 js和c#更亲民。
那么我个人是怎么选择Unity3D和Cocos2D-X的?
我自然是选择Unity3D:
1、虽然你现在可能是做2D游戏,但如果你以后想做3D呢?用Unity3D的话从2D到3D的转换成本很低。
2、丰富的插件支持。
3、成熟的工具以及强大的编辑器拓展,让你可以很方便的定制适合自己项目需要的编辑器。
4、内置强大的性能分析工具。
5、几乎支持所有主流平台:WEB、Win、Mac、IOS、Android、XBox、PS3、Wii
6、Unity5还有更完善的光照系统、UI架构以及支持发布成Html5。可见该引擎的发展处于高速阶段。