木头玩了几年的Cocos2d-x,从2.0beta版本直到3.2,后来便转去玩Unity3D了,断断续续玩了2年多。
有不少朋友问过我,Cocos2d-x和Unity3D怎么选?有什么区别?
今天我就来吹吹这方面的水吧。
1. 哪个容易入门?
要说入门,大部分人会觉得Unity3D简单很多,其实不是的,Cocos2d-x入门比Unity3D简单。
木头可不是在这吹水,Unity3D要拖拉出一个简单“玩具”倒是很容易。但是当你以为自己入门了的时候,你会发现,每当你想实现某个功能的时候,阻力都很大,你会非常迷茫。
对,官网有文档,但如果你看过了那个文档,就应该知道,多的不知道从何看起。
这就是Unity3D奇怪的地方,它让你误以为开发游戏很简单,实际上不是的。
Unity3D是一整套的工具,你需要学习的东西非常非常多。
反之,Cocos2d-x入门的难度不在于它本身,而是在于C++,C++不好入门,资质不好的开发者学起来那是一个折磨。所以,排除C++之后,Cocos2d-x的入门其实很简单,你想要什么功能,看官方Demo,把代码拷过来即可。
Cocos2d-x只是一个引擎,你要学的东西并不多。
Cocos2d-x的入门曲线是平滑的,稍微往上走一点。
而Unity3D的入门曲线是陡峭的,一直往上走。
所以,论入门难度,Cocos2d-x本身比Unity3D简单,注意【本身】两个字。
2. 哪个引擎强大
Unity3D!Unity3D!Unity3D!
绝对的!
不说别的,光是移植这一块,Unity3D一键完成,什么都不用管。
而Cocos2d-x呢?基本每一次升级版本后,移植Android平台我都得折腾一遍。
不知道现在的Cocos2d-x在移植上面有没有改进?如果有,那,我还是挺Unity3D。
Cocos2d-x给人的感觉就是——折腾,搞技术。
Unity3D给人的感觉就是——爽,搞创作。
我看最近Cocos2d-x的IDE也越来越往创作方面靠拢了,就是不知道到了什么程度。
但Unity3D的IDE真不是一般的强大,这就是一个搞游戏创作的东西,就这么简单。
Unity3D的Asset Store也很强大,资源丰富,并且它已经支持用支付宝付款了,免费的资源也不少,但偶尔买个几十、一百的资源,还是非常值得的。
Cocos2d-x的资源商店好像很久之前有一个,不知道现在怎么样了?当年那个真的是不堪入目。
所以,Unity3D更强大,毋庸置疑。
3. 友好度
Cocos2d-x曾经对开发者是十分不友好的,比如当年的2.x版本跨越到3.0的时候,API大改,导致网上流传的教程都显得十分过时。后来往3D方向发展也是一样,毫不考虑开发者的真实需求。当年基本上每次升级版本都非常折腾,搞得我必须不同的游戏都要维护不同的版本,十分麻烦。
官网更是不可理喻,一个国人(改)写的引擎,官网竟然默认是英文的。代码注释是英文的就算了,毕竟这样比较容易传播。但官网,官网啊,我也不知道为什么,国内开发者就那么的让Cocos2-x团队不待见。
也许是我们国内开发者不争气吧。
Unity3D相对来说就好多了,也许它已经度过了那个发展期吧,反正从我接触开始,就没发现API大改、升级版本报各种问题的麻烦。
所以,论友好度,Unity3D占优。
(另外补充一下,近年来,Cocos2d-x已经“改邪归正”,开始做正事了。)
4. 明显的优缺点对比
这两个引擎最明显的对比就是安装包大小,Cocos2d-x的安装包小的话只有几M,而Unity3D基本上一个空包都要10M左右。
对于一些有“特殊”需求的人群来说,不得不选Cocos2d-x。
另外,Unity3D写出来的游戏普遍来说比Cocos2d-x的游戏要差一点(不优化的前提下)。
这是我感觉到的最明显的优缺点。
5. 新手推荐学哪个引擎?
每次有人问我,作为初学者应该学哪个引擎的时候,我大部分时间是推荐Cocos2d-x(哪怕我本人非常热爱Unity3D)。
原因很简单,用Cocos2d-x写游戏会让你时刻记住自己是开发者,而用Unity3D开发游戏会让你觉得自己是超人,是游戏创作者(代码是什么?能吃吗?)。
可能每一个学习Unity3D的新手最后都会发现,自己写的代码烂得出奇,不像是自己应有的水平。这是当然的,你的注意力都在Unity3D强大的IDE上了。
另外,Cocos2d-x的教程比较优秀(比如木头曾经的教程在曾经的那个年代,啦啦啦),大部分是文字教程。而Unity3D的教程比较差,毕竟它经常要涉及到界面上的功能解释,需要不断截图,写起教程来很麻烦,所以大部分都是视频教程。
现在似乎很流行视频教程、直播教程,我没怎么看过,所以没法评价。
我个人是倾向于文字教程,因为看文字比较节省时间,看视频很费时又容易走神。
所以,作为一个新手,游戏开发新手,学Cocos2d-x不会有错的,它能让你的技术更扎实。
6. 纯属推荐的话,哪个好?
如果排除新手这个概念的话,我还是推荐Unity3D,它真是创作游戏的神器。
其实最近Cocos2d-x的发展倒是有点像Unity3D,连IDE都有点像。
所以,如果你愿意陪着Cocos2d-x一起成长的话,选择它也是很不错的,因为现在的Cocos2d-x再也不是当年那个高傲的家伙了,它应该会发展得不错。
另外,招Cocos2d-x的公司似乎比较多,Unity3D的我比较少听说。
反正,作为一个游戏创作者,我强力推荐Unity3D。