犹豫是学习unity3d还是cocos2dx

5374人阅读
cocos2d-x(18)
作为一名cocos2d-x开发者,开发2D游戏已经有两年多了,这两年来目睹了手游市场的浮躁, cocos引擎的出现降低了手游开发的门槛,提高了手游生产效率,这两年着实是火的不行。然而,手游发展速度神速,眨眼间3D手游几乎以铺天盖地之势袭来。cocos的一个“劲敌”unity卷土而来,几乎霸占了整个3D市场,很多开发者都欣然奔向了unity的怀抱。cocos2d-x也从3.3版本之后开始猛加3D功能,如今3D功能也是比较完善了,市场上也出现了cocos3D开发的产品。身为一个cocos2d开发者的我该如何选择?
从市场需求来看
前两天还跟一个前同事聊天,他之前是做cocos的,前两个月出去找工作,他说cocos的职位已经不太好找了,大部分公司都在招unity,开始搞3D了。
如果真要看市场情况,更直接的办法就是到招聘网站上对比一下cocos和unity两种职位的搜索结果。从我的比较看来,结果可以说是挺明显的,在市场需求上面来看,unity已经超出cocos很多了, 以后这种优势可能还会越来越明显。这意味着如果你要想更容易找到“好职位”,学习unity是个不错的选择。unity有更加成熟和完善的3D功能,也比较容易使用。
从开发语言上考虑(肤浅 -_-!! )
我喜欢用c++写代码,虽然水平没多高,但是因为在它身上花费了很多心血,也用的最多,所以我想在我的技术生涯有更多的时间继续使用它。虽然通常来说纠结于语言是菜鸟程序员才会有的2B行为,但是为了c++,我愿意做这种2B。
如果你像我一样偏执,纠结于语言,并且也喜欢c++,那么从cocos和unity上选择结果就很明显了, 肯定是cocos啦,它的源码都是c++,开发也可以用c++,尽管现在脚本绑定已经很成熟开发效率也更高, 你喜欢,你任性, 你时间多,那你也可以和我一样,就用c++开发。unity开发游戏,据同事所说,他们在用c#,也能用js,也能用lua,也能用c++开发自定义插件,但是c++只是辅助,虽然unity的源码应该是c++,但我又拿不到,所以从语言层面,我要投cocos一票。
从学习角度来看
如果你像我一样,也是搞了很长时间的cocos开发,那么开始转向3D开发,我觉得学习3D图形学的知识,并结合cocos3D来实践和研习是很不错的。因为你已经很熟悉cocos引擎,并且能看到它的全部源代码,使用它来学习3D引擎和3D开发,你能了解到“轮子是怎样造成的”,深入进去你甚至也可以学会造出“3D引擎”这样的轮子。当你精通了cocos这个轮子(从2D到3D, 掌握OpenGL ES, shader), 我觉得学习或者使用别的3D引擎也不是什么大问题, 你在这条路上也会也走越好,就像王哲大大在知乎上的回答:
我是做cocos2dx游戏开发的,想转ios开发,想听听大家的看法?
我做cocos2dxi开发有一年多,但是本身觉得游戏开发的成长空间不大,技术更新快,感觉自身可能应付i不大来,想成为高级程序员还是比较困难,而对于ios,觉得对比游戏c++和lua,ios还是比较纯粹吧,在加上之前开发游戏都是用的mac和xcode,xcode算是比较熟练吧,对于ios,oc也有些了解,有开发过一些小应用,算是入门了。
不过转到ios的话,就意味着我要放弃游戏一年的经验,可能工资会较低吧,而且不知道能不能找到接纳我的工作~,不知和道大家怎么看,是继续游戏开发呢?还是趁现在在找工作之际转到ios 呢?
王哲大大的回答:
我建议是一专多能。技术上的一专,是把某个技术吃透称为真正的专家,比如cocos, unity, unreal精通任一引擎,或者游戏服务端。多能,就是各方便都掌握一些,自己业余时间学过、练过手,具备一定的技术视野。比如我除了手机游戏之外,自己写过一个开源的媒体播放器(C++),一个开源的任务管理系统(PHP),智能设备的硬件驱动(C++)也写过一些,用webkit写个桌面应用也没问题(JavaScript),Qt和QML玩过,python写脚本来处理重复工作也OK,没事情就看看其他有意思的开源库,写个小demo看看人家的开源库怎么玩的。新出的Swift, GamePlayKit, Apple Watch也写些简单的app玩两把。把技术当做一项爱好,而不只是谋生手段,会快乐许多。
一专多能,这个总结我觉得太棒了,学技术就该这样,得有一个方向是你特别擅长的,研究的比较深入的,让这个方向成为你的核心竞争力。如果做一棵墙头草,随市场的风向标频繁的改变自己的学习方向,可能哪个方向上你都浮在表面,这个方向上的后来者可以很轻松的把你超过,更惨一点的是如果这个后来者在自己的方向上搞的特别深,我觉得他换到这个方向上,进步的速度也是你比不上的,因为技术大多是相同的嘛,尤其是同一个领域内的知识。你真正精通了cocos3D, 害怕学不会unity吗,还会怕找不到好的职位吗?
我对unity了解的还不是很多,公司有几个MMO的项目已经在用它开发,我所知道的就是它很强大、很美!听同事说,它上手很容易比cocos2d开发还要简单。我在unity的官网上也看到了它有比较完善的技术文档、教程以及社区支持,加上现在国内外火爆的使用占有率,看起来是不用怕在网上搜索不到问题的解决方案了。然而我更加关心的是它开不开源,去unity官网几次,可以看到它有免费版和pro收费版两个版本,在两者功能对比列表里可以看到访问源代码这个功能,两个版本都不支持,就是说你买了pro版本的也不会看到源码,如果要看源码,上面有提示“请联系销售人员”.
看来想从源码角度来学习unity恐怕是需要费一番心思和银子的,一般人是搞不定,首先是从自己技术水平上上考虑,其次是经济因素上。
综合来看,我觉得对于一个初级的游戏开发者,像我这样,才搞了两年cocos,那么选择开源的cocos引擎来继续学习2D/3D开发和引擎的知识是更合适的。cocos源码的水平肯定是在我之上的,也够我折腾很长一段时间了。
而对于unity,它是好多国外大牛的作品, 代码质量不用说,肯定棒到不行,从它的价格上就可见一斑。我这个水平看它的源码肯定会很吃力,现在好好学习cocos,把它搞精,我觉得才是明智之举。路漫漫,以后自己水平上去了,再去研究更复杂的东西,unity或是已经开源了的unreal或是其他。
我的感觉,学cocos就好像“授之以渔”, 学unity就好像“授之以鱼”,对于我现在的技术水平,学unity也只能停留在用它的层面上。现在对cocos2d-x、OpenGL和shader等图形学的东西有了一定的了解,正是时候巩固基础,加深理解的时候,如果匆匆的转到u3d上,做一些看起来炫酷的游戏,而又不知所以然,我想我是不会开心的。虽然我不一定能造的出轮子,但我想了解轮子的构造,我想学会造轮子的能力。
因此总结就是:学cocos是为了学cocos,学unity是为了用unity! 我会继续学习cocos. cocos作为“一专”,要从熟练应用到可以清晰的描述出它的结构和原理,再到可以读懂它所有的关键代码可以做些贡献,最后到可以自己做个mini- unity可以暂时放在“多能”里面来培养,偶尔用它搞一些游戏玩玩,先做到会用.
现在项目不想以前那么忙了,终于有时间总结一下学习的东西。因为基础的重要性,所以在学习cocos3D知识之前,我得先总结一下两年来对cocos2d-x的2D开发的理解,结合一些小代码例子巩固一下cocos2d-x的基础知识。cocos3D的学习会在2D基础过后的文章中记录下来。
作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!
欢迎访问,与本站同步更新
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:279936次
积分:3753
积分:3753
排名:第8230名
原创:105篇
评论:34条
文章:17篇
阅读:61683
文章:19篇
阅读:89516cocos2d培训:cocos2dx会被淘汰么?_快来跟我学_新浪博客
cocos2d培训:cocos2dx会被淘汰么?
这两个都用过很长时间,大多数人没说到点上。。。
游戏引擎的核心竞争力在哪里?在于工具链的完备性。现在的游戏行业上,开发效率才是王道,用好用的引擎,比竞品更早发布,更快迭代,才是生存之道。
Unity3D具有目前几乎最方便使用的编辑器,能够极大的提升整个开发过程中的协作效率,策划可以实时改变数值观察效果,美术资源可以被更快的无缝整合。而这些东西在cocos里面是需要程序员手工实现的,而且实现出的还多是个不好用的东西。cocos现在官方出的工具也就仅仅是勉强能用,很多莫名其妙的坑在里面。
Unity3D跨平台发布游戏十分容易,所有的美术资源都会被进行合理的自动压缩处理。换成cocos?纹理太大手机黑屏了你都不知道为啥。
再其次,说到Unity3D,大家都觉得这个开发3D游戏比较好,觉得cocos更加适合2D。这其实是个广泛的误解,目前版本的Unity3D已经具有了完备的2D游戏开发能力,而且开发的可以比cocos更快更好。
在Unity3D和cocos的对比上,我真的觉得不能仅仅把他们当作工具来看。选择哪个游戏引擎入门就像选择哪一种编程语言入门的情况一样,产生的习惯和观念会有很长时间的影响,这就好比用lisp入门编程和用php入门编程能产生的区别一样大。因为说实在的,cocos基本不能算是个完整的引擎,用它入门游戏开发对于养成游戏引擎的观念是有害的。我见过cocos用习惯的人在用别的引擎时的各种问题,缺乏引擎观念时人往往会分不清什么事是引擎该做的,什么事是自己该做的,最终会用代码去代替引擎的固有功能,使得项目缺乏应有的可维护性。
综上,你老师说的对,我真的不知道现在为什么这么多人还推崇cocos。对于你来说,作为学的第一款引擎来说,Unity3D可以让你对游戏引擎有个更好的概念,等你掌握清楚了想再去看cocos也不迟。
当然,以上一切的一切建立在你的编程水平已经达标的基础上。
策划朱康:
我一直认为,处在游戏行业要具有一颗玩心,你现在正在过cocos2d关卡,听到老师说,Unity3D的关卡奖励高,想放弃现在的cocos2d进度,转战Unity3D副本,千万别这样!刚看了你的专业数字媒体技术,也是一个万金油专业,如果你主打方向是游戏程序员,最好还是把cocos2d熟悉后,能独立做些小游戏后,发布到ios后,再转战Unity3D副本吧。在游戏行业不管是程序、美术、还是策划,人家看的都是你的作品。再华丽的简历词藻也比不上一个普通的产品重要。
所以希望你透过现象看本质,引擎这块真的不重要,一大批爱好游戏的创业者,并没有去做游戏研发,而是去做了引擎开发,为游戏开发者提供服务来盈利。这批人大概都是受到了”旧金山挖金子“的启发,就是我不挖金子,我为挖金子的人服务,来赚取他们的金子。以此可见,以后的游戏引擎会越来越多,我很同意排名第一的回答,你先学好程序内功,将来上手什么引擎都是非常快的。不要纠结在cocos2d和Unity3d引擎的选择上,我之所以建议你把cocos2d学到能出普通游戏产品后再转Unity3D,是不想让你培养自己的浮躁心态,干游戏这行,如果浮躁了,那么是干不好游戏的。好了,说教完毕,下面看例子。
cocos2d会被淘汰?这个真不会!不同的人学cocos2d是用在不同的方面,例如一个UI设计师学cocos2d是为了拿一份高工资,当初去年年初,成都为cocos2D项目支持的UI职位15K难求,许多人转,结果今年8K左右就能招一个用cocos2D不错的UI了。就像选热门专业一样,现在的热门未必就是热门,这是不是坚定了你转Unity3d的心思,那么好吧,我泼盆凉水,Unity3d从2012年兴起,到2013年大火,由于上手简单,脚本丰富,太多的人已经使用Unity3D做出了非常多的游戏,现在上海,Unity3D程序薪水,4k、8k、10k、12k的居多,这里我单指借助Unity3D引擎入行的程序,已经在职场打滚多年的程序除外。所以我想表明的观点是,只有技术才能决定你的薪水,引擎决定不了你的薪水。
但是凡事都有例外,由于Unity3d必须使用自己的特效系统来制作游戏特效,所以现在的Unity3d对人才加成的红利在于特效师。如果你现在专攻Unity3D特效,熟悉粒子编辑器,能做出普通水准的特效,那么年后出来实习,要价10K,也是有公司要的,但是仅限明年上半年。(如果看到此文的有Unity3D特效师,如果15K以上的起薪您能满意,请私信我,唉,我也知道肯定有Unity3d特效师会嘲笑我,”我们光在家做外包一个月也有几十K的收入,稀罕你15K的起薪么,对了上次做了20个刀光特效,承惠5K,谢谢)
引擎这些工具,我们是永远跟不上别人的脚步的。
你现在需要学习的是什么?
1、精通一门语言(从语法,到多线程,到数据操作,到网络等等方面)。
2、掌握数据结构与算法。
3、熟悉设计模式。
4、多看他人的游戏源码,学习下来。
学习一些以一变应万变的,会让你在以后面对所以问题不会感到无力。
以后你也不会问选择哪个引擎的问题。
COCO,unity等等是标,不是本,是加分项而不是基础分。
我见过不少没有语言基础的直接上手学习UNITY的,恩,是学过一段时间,但是,当我看见问他们“事件”,“委托”,“四元素”,"线程池"“计数器”等等名词时的表情,我知道没有基础给他们带来的苦果。这样的程序员,也只是从一个地方换到另一个地方的码农。
当你自信满满的以为学好了UNITY就能找到工作时候,人家笔试提上一堆的数据结构与算法,指针,设计模式,网络,数据库,少年,你怎么办?
切记,把UNITY,COCO当做工具,把任何语言当做工具。
unity,COCO只是加分项,如果你基础分没修满,这个时候是考虑多修基础分的时候,而不是考虑多修加分项的时候。(来源:)
快来跟我学
博客等级:
博客积分:0
博客访问:5,743
关注人气:0
荣誉徽章:Posts - 72,
Articles - 0,
Comments - 17
22:10 by CoolJie, ... 阅读,
一直使用cocos2dx编写自己的2D小游戏,不得不说,编写个人的超级小规模的游戏,使用cocos2dx有一定的优势,首先门槛很低,编写2D游戏用起来也算顺手,可惜一直没有一个优秀的UI编辑器,好不容易等到cocostudio发布,结果没想到,这厮比cocosbuilder要坑爹一百倍啊一百倍!!!从1.0版本开始使用这厮,结果每次版本更新,这厮就在修改使用方式,最可怕的事总算发生了,我手贱把cocos2dx升级到3.2,cocostudio升级到最新的2.0 beta,使用起来,让我震惊了!真是愚蠢的让人震惊,cocos2dx团队可以完全让用户放弃以前的知识积累,把从API命名,到Framework的设计,全部推翻重来,真牛啊,真是大爷啊,cocos2dx用户的学习时间完全是0成本啊!作为一个正常的中间件提供商,哪个敢这么玩儿?
网上搜索了一大堆文章,都是基础入门文章,都在讲3.x的EventListener发生了巨大变化,cocos2dx 3.x的API命名发生了巨大变化,你们以前都一直没用cocostudio吗?这厮的变化更惊人啊!用都用不来了啊!并且导出的csb文件是什么东西?怎么个加载法?官方文档中只字不提啊!果然是开源项目是吗?想要使用它,必须先深入阅读源代码是吗?按目前的这个趋势走,不出意外,cocos2dx会越来越小众化,边缘化。
cocos2dx的所谓跨平台也是一个奇葩的存在,忍受它也已经让我精神崩溃了!每一次的版本更新,这厮一定会发生变化,我完全揣摩不到cocos2dx开发团队的圣意啊,别人都是尽可能的简化难度,cocos2dx开发团队的目标是不断的修改自己的用法,玩儿死程序员为己任,让程序员们不停的浪费时间在这些傻到极点的eclipse 配置,xcode配置之上,WP8版本还没去折腾过,搜索了一些资料,看样子也不是省油的灯!
总之,如果您老的时间非常宝贵,那么我认为就不要去接触cocos2dx了,直接一步到位用Unity3D,从我接触Unity3D来看,Unity3D的坑要少的多,各种资料也非常齐全,官方文档也是悉心维护更新。坑不能说没有,不完善的地方也多,但是可以放心的是,从3.x到4.x,Unity3D的知识淘汰就没这么玩儿过。我还是决定投入Unity3D的怀抱,再见,cocos2dx!从cocos和unity中可以学到什么关于游戏开发的知识?_词汇网
从cocos和unity中可以学到什么关于游戏开发的知识?
责任编辑:词汇网 发表时间: 4:14:10
本人计算机专业毕业,从事通用软件开发工作,业余有学习和研究关于游戏编程的知识。我现在想参加cocos或unity的培训班,我想知道这对以后选择游戏引擎开发方向会有什么帮助?这两个引擎之间存在什么差异性?还有可以学到什么不同的东西?【以下解答】如果你要学游戏开发,请先学写代码。然后学cocos。unity是非常优秀的工具,但他不适合用来学习。除非你不求甚解,以后也只做unity,然而这是不太可能的。因为封装的太好了,你无法通过学习使用unity了解很多本质的东西。就好像mfc,如果新手直接上手mfc,没有名师指路,不晕头转向我跟你姓。【以下解答】推荐 Unity3D,但是在 Unity3D 培训班里能学到什么就不好说了。推荐学习 Unity3D 的原因主要有下面几点:Unity3D 完整的包括了现代化游戏引擎所必须的一些东西,比如资源管理系统、图像引擎、物理引擎、脚本系统、声音系统、场景编辑器、性能调试工具等。所以通过学习 Unity3D 可以对游戏引擎有一个全局上的认识。Unity3D 编辑器的扩展性很好。可以方便的为特定游戏的开发专属工具以提高效率,这种游戏开发的思想是很重要的。Unity3D 是相比于 cocos2dx 是一个更加完善的 3D 引擎,如果了解 3D 游戏开发拿 Unity3D 来入门真的很不错的选择。Unity3D 脚本是按照以组件模式进行编写的(UE4 引擎也是这种方式),有利于扩展,熟悉了这种模式可以提高编写游戏程序的质量。至于缺点,就是底层的实现细节没有暴露给开发者,而一点需要通过看游戏引擎的源码来解决。没错,可以去看 cocos2dx 的源码和其他开源游戏引擎的代码。但是,如果只是学习使用 cocos2dx 可能并不能帮你更多了的解游戏引擎,反而会在视野上有所局限。【以下解答】cocos2d倾向于使用纯撸码来实现游戏开发,比起unity3d的好处在于开源(虽然对于我国的绝大部分开发者都没什么用),免费,虽然有一套工具,但是却远远没有unity3d那一套好用,一体化程度也没有unity3d做得好,还有新手往往搭个环境都要死要活的。unity3d是图形化界面+脚本,开发效率我觉得要比cocos2d高很多,而且unity3d自带的功能要多的多,比如调色板啥的,还有很多就不说了(自带功能比cocos2d强的不是一两点)。最后总结一下,我个人觉得unity3d各方面都不输cocos,但是如果你先去学cocos2dx,这也不矛盾,因为这两者都是相通的,相似点很多,有用cocos2d开发游戏经验的人上手unity3d也是很快。(我是先入了一年的cocos2dx然后再转unity3d)
上一集:没有了 下一集:
相关文章:&&&&&&&&&&
最新添加资讯
24小时热门资讯
附近好友搜索}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信