• 作为一名cocos2d-x开发者,开发2D游戏已经有两年多了,这两年来目睹了手游市场的浮躁, cocos引擎的出现降低了手游开发的门槛,提高了手游生产效率,这两年着实是火的不行。然而,手游发展速度神速,眨眼间3D手游几乎...
    ---
    layout: post
    title: "【cocos2d-x 3D游戏开发】0: 3D时代到来,学cocos3D还是Unity3D?"
    highlighter_style: solarizeddark
    category: [cocos2d-x]
    tags: [cocos2d-x, game]
    description: ""
    published: true
    ---
    
    前言
    ---
    作为一名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玩两把。把技术当做一项爱好,而不只是谋生手段,会快乐许多。
    
    [原始链接](http://www.zhihu.com/question/31503961/answer/52493190)
    
    一专多能,这个总结我觉得太棒了,学技术就该这样,得有一个方向是你特别擅长的,研究的比较深入的,让这个方向成为你的核心竞争力。如果做一棵墙头草,随市场的风向标频繁的改变自己的学习方向,可能哪个方向上你都浮在表面,这个方向上的后来者可以很轻松的把你超过,更惨一点的是如果这个后来者在自己的方向上搞的特别深,我觉得他换到这个方向上,进步的速度也是你比不上的,因为技术大多是相同的嘛,尤其是同一个领域内的知识。你真正精通了cocos3D, 害怕学不会unity吗,还会怕找不到好的职位吗?
    
    我对unity了解的还不是很多,公司有几个MMO的项目已经在用它开发,我所知道的就是它很强大、很美!听同事说,它上手很容易比cocos2d开发还要简单。我在unity的官网上也看到了它有比较完善的技术文档、教程以及社区支持,加上现在国内外火爆的使用占有率,看起来是不用怕在网上搜索不到问题的解决方案了。然而我更加关心的是它开不开源,去unity官网几次,可以看到它有免费版和pro收费版两个版本,在两者功能对比列表里可以看到`访问源代码`这个功能,两个版本都不支持,就是说你买了pro版本的也不会看到源码,如果要看源码,上面有提示“请联系销售人员”.
    
    ![unity_compare](http://7xi3zl.com1.z0.glb.clouddn.com/unity_compare.png)
    
    看来想从源码角度来学习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-cocos; unity可以暂时放在“多能”里面来培养,偶尔用它搞一些游戏玩玩,先做到会用. 
    
    现在项目不想以前那么忙了,终于有时间总结一下学习的东西。因为基础的重要性,所以在学习cocos3D知识之前,我得先总结一下两年来对cocos2d-x的2D开发的理解,结合一些小代码例子巩固一下cocos2d-x的基础知识。cocos3D的学习会在2D基础过后的文章中记录下来。
    
    
    **作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!**
    
    **欢迎访问[github博客](http://elloop.github.io/),与本站同步更新**
    
    展开全文
  • 继续加油~,用这一款工具帮助更多的Cocos3D团队! 花了一周多时间,完成了一款Cocos Mesh Viewer ,截止现在,终于算有一个凑合的功能版本可以用。 已经支持的功能: (1)打开任意FBX 转换为C3B文件。 (2)...
  • Cocos2dx和Unity3D对比 2019-09-12 15:39:58
    Cocos2dx和Unity3D对比 引擎 Cocos2dx Unity3D 包体大小 小 大 应用启动速度 快 慢 是否收费 免费 收费 友好度 版本不太友好,2.x和3.x差异比较大 比较稳定 社区支持 ...
  • UNITY3DCOCOS2D-X都是跨平台的游戏开发引擎,COCOS2D是专门做IPHONE游戏的2D游戏引擎。 这些引擎到底是什么时候出现的,还真是不怎么了解,但是不管他们是什么时候出现的,由哪些人弄出来的,这两个引擎都挺...
  • 使用Cocos2d-x 开发3D游戏 2020-03-15 19:43:18
    由CSDN知名博客讲师火云红孩儿创建的火云开发课堂正式开始讲授新的Cocos2d-x v3.7版本中的3D引擎功能模块!
  • Cocos Creator与Unity3D对比 2018-10-23 18:25:02
    1.生命周期: ...http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html   2.component: 与unity不同的是,没有与gameObject对应的概念,transform对应节点node,显示或者隐藏...
  • 抢鲜品尝Cocos Creator憋了半年之久的3D功能部分,导入一个简单的FBX模型实现真3d效果。
  • 效果预览 游戏介绍 ●点击屏幕,根据按住屏幕的时间,进行蓄力,时间越短,发出去的力...●游戏就1个场景game,所有游戏的元素都放在这个场景上,场景内3D元素主要3个,3个元素都会挂在弹力和摩擦力设置的PhyMa...
  • Unity3D是收费的3D游戏引擎(当然也可开发2D游戏),cocos2d-x是开源的2D游戏引擎 两者皆支持跨平台开发,支持的平台各有不同 Unity3D支持iOS、Android、Flash、Windows、Mac、Wii等平台的游戏开发,cocos2d-x支持...
  • 1.先说说为什么cocos2d-x之前那么火: a.开源:每个CTO都认为开源可以更好的掌控引擎,万一引擎坑了可以马上改,包的大小比较容易控制,跟平台语言相互调用也方便。2.x时期,坑是一点点填得差不多了,许多技术实力...
  • 本文适合于初步了解cocos2d的童鞋,如果不知道cocos2d是什么,那么请先百度,google,或者翻书去~~~  cocos2d 是一个2d 的游戏引擎,通过它可以很快的构建出一个2d的游戏来。尽管cocos2d深入人心,并且广泛使用在...
  • 浅谈: 目前游戏界的发展趋势逐渐把游戏引擎当做一个比较成熟的中间件了,许多toolset和基础构建在不同游戏中是相通的,曾经有人比喻游戏引擎在不久的将来会像现在的操作系统一样,呈现出一种比较稳定的状态(比如...
  • 可以参考3D特效或https://blog.csdn.net/zmzsoftware/article/details/9750373//创建网格节点 auto gridNodeTarget= NodeGrid::create(); this->addChild(gridNodeTarget);//随便找个底图 auto sprite= ...
  • 游戏开发的最好技术是什么:Unity还是Cocos?在网上你可以找到很多这两种技术的对比。在我们开发游戏之前,我们要了解相关数据和信息并决定使用那种技术。但是人们对这两种技术的对比大多都比较主观。擅长Cocos的人会...
  • Cocos3D Mesh Viewer 2020-06-17 16:56:44
    由知名Cocos技术专家火云红孩儿开发的Cocos3D模型工具,帮助Cocos3D程序进行模型处理与观看。
  • Cocos3d初探 2014-07-16 17:36:08
    估计要相当长的一段时间内研究游戏引擎,在这里做一下过程中的...根据cocos3d-x git上的说明,下载了engine-3dcocos2d-x并放到指定文件夹下,cocos2d-x/plugin-x放置到指定文件夹下并按照DOC中的说明成功在VS2012上
  • Cocos2d-X和Cocos Creator的区别 1、性能不同 Cocos2d-X更加的可控,并且使用C++开发,性能更好; Cocos Creator的界面更加的整洁,学习更简单,应用了Unity的操作方法更加的符合潮流,但是使用了JS作为开发语言,...
1 2 3 4 5 ... 20
收藏数 13,976
精华内容 5,590