一位Cocos2d-x和Unity3D双修者谈谈它们的区别

笨木头  2017-06-21 18:55   其它   阅读(1,486)   8条评论
木头玩了几年的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。

8 评论

  1. 当年也是看着木头大的书入门的,现在用Unity也快一年了,C#确实用起来各种舒服,不像Java那么冗长,也不像C++学习难度高(C#效率低一些吧),还记得当年cocos用hashset打包到android上直接报错了,也是晕倒。
    现在做AR/VR的很火吧?都用的Unity,我怎么好像看不到几家做cocos的?做cocos几家多数感觉是棋牌游戏额。

    1. 可能我的两个群都是Cocos群,所以经常看到招聘Cocos的信息,Unity比较少见,我还以为Unity的公司不多。
      不过,招聘信息里确实大部分都是做棋牌的,我姐夫所在公司也是做棋牌,老想让我去,其实我很讨厌这种棋牌游戏(金钱味太重)。
      Cocos打包Android确实折腾人啊,哈哈,Unity就舒服多了,不,是超舒畅!

      1. 是哈,简直感同身受有没有。几家来要招聘都是棋牌游戏,实在不太想做。一开始用Unity的时候打包出Android,看到正确运行了,我总感觉到不对劲,玩cocos后的后遗症,哈哈。

  2. 看的第一本Cocos2d-x入门书籍就是木头的那本经典的《Cocos2d-x游戏开发之旅》(大二时),而现如今我已经成为了一名Unity开发者。但是作为接触到的第一款游戏引擎,我对Cocos总有一种类似于初恋的感觉,念念不忘。

    1. 突然觉得,时光飞逝啊,我出这本书的时候还是一个热血少年(咳咳,好,好吧,青年),现在都奔三了。你们这些帅气的读者也都毕业了、工作了。
      我现在也是一名业余的Unity开发者,多多指教,嘿嘿。

      1. 师傅领进门,修行在个人,非常感谢木头大大带着进了游戏开发的门槛,蛤蛤~(虽然现在做Unity了,但是还是会时常地翻下Cocos2d-x游戏开发之旅那本书,有些思想很值得反复地琢琢磨一下~)

发表评论

电子邮件地址不会被公开。 必填项已用*标注