学习游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好

刚好我现在同时在开发两个2D游戏,一个是用Cocos2d-x,一个是用Unity3d。

对于“学习”而言,
Cocos2d-x是比较好理解的。它是传统的OOP结构,对于有编程经验的人来说,是最好不过了。就连Unity3d上,也有一个很火的2D框架,Futile,是模仿Cocos2d-x的架构和代码风格。从Cocos2d-x上手接触一下游戏引擎,是一个不错的选择。

而Unity3d是Component-Based结构,对于OOP背景的程序员来说,一开始会觉得别扭。而且Unity3d有很多针对3d模型、3d动画、优化等等的商用功能,对于初学者来说会有点overwhelming的感觉。而且无论如何使用Unity3d,总需要在editor里进行大量操作,对理解游戏引擎和代码架构来说,并不是一个很好的方式。

然而,从“开发”的角度来说,
Cocos2d-x正如 @周华 所说,是一个“纯正”的引擎——仅仅只是代码库。虽然可以利用CocosBuilder和其他一些工具进行图形化操作,但效率始终不够Unity3d高。而且暴露过多的底层代码,对于研究是一件大大的好事,但是对于创作而言,未必是福音。

而Unity3d则是一个高效的IDE+代码库。它很好地封装了底层代码,提供许多简便的图形操作,还有商业级的高级功能。对于开发而言,我认为是更好地选择。之前大多数开发者对Unity3d的认识还停留在3D开发,但2013年末的2D支持让更多人选择Unity3d进行2D开发。

所以我的结论是,通过Cocos2d-x或者是Unity3d上的Futile框架来入门,熟悉之后再过渡到Unity3d进行开发。:)

学习游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好~

一般来说选择一个技术学习和投入,需要考虑清楚这几个问题:
1. 技术的适用范围(别到时候有了新的需求,解决不了)
2. 学习曲线
3. 技术支持怎么样?社区是否活跃?
4. 目前发展态势怎么样?(开源项目别今后没人管,商业产品公司不能倒闭了)
5. 扩展性如何?是否利于团队合作?(有的技术入门简单但拿来做大项目就是个灾难)

在这几个方面,虽然技术层面unity和cocos2d是完全不同的东西,但是作为目前开发手游所采用最为普遍的两种技术方案,是具有可比性的。

适用范围

个很多之前的回答都已经说了,主要区别是unity是一个完全的的解决方案,cocos2d是一个类库。适用领域unity要广很多。cocos2d就是
为手机游戏而生的。而unity除了开发2D,3D游戏,能发布到WP,Mac,
Console等cocos2d不涉及的平台,unity还被广泛才用于虚拟现实项目。在我最开始接触unity还是1.x版本的时候,QQ群里面几乎全
是讨论虚拟现实项目的。甚至即便到现在我感觉身边(重庆)用unity做教育软件和3D漫游的都远多于做游戏的。也就是说如果你将来不开发手
游,cocos2d就用不上了,unity还能搞点其他的。

学习难度
上手当然unity更简单。如果更极端一点,
不会编程,借助一些可视化编程中间件,设计师都可以完成unity游戏开发。前阵子网上有cocos2d一天复制flappy
bird的教材,如果换unity+playmaker来做估计花不了我一个小时。当然如果面向本来就会c++的开发人员,cocos2d入门可能更加直
观,不会要接触新的开发工具。不过对于普通人来说还是unity的方式更加容易入门,连代码都不用写。

技术支持和社区
这方面cocos2d胜出,国内社区的情况unity方面掌握都还比较初级,有深度的技术问题基本上都要去官方论坛交流。当然如果你英文读写无障碍,这个情况就倒过来了。

发展态势
cocos2d
目前在“开源的2D手游开发框架”领域基本上是没有什么竞争,这也注定了开源社区也不会有什么动力扩展到新的领域。而unity则是一直开扩展其开发覆盖
面,unity就是“一统浆糊”的意思嘛。最开始是作为一个“让人人都能开发游戏”进入人们视野的引擎,而最近的新版本一直在强调AAA游戏开发,将出的
5.0版本基本上都是面向画质上面的提升。实际上也对UE,CE等造成了一定压力,现在UE对个人的授权费比unity还便宜了。但是unity对于一些
普遍认为烂得不行的功能却一直没有什么动力修改,比如GUI系统和内置网络部分,一般也是要借助第三方完成开发,这点初学者需谨慎,不要学习这些没用的东
西。

扩展性方面的问题
这点cocos2d胜出。由于unity采用了易于新手和无编程人员的组件模式,在开发大型
项目时候非常容易进入架构上的陷阱。开发太容易了,犯错也容易。而cocos2d不是说就不会犯这些架构问题了,而是本身基于cocoa框架,能够开发的
人本身已经具有了一定的编程规范,开发app所用到的软件架构仍然适用。而且unity就是另外一套体系了,初学者开发了一些简单项目以后一定要有有经验
的人带,了解一套MVC这样的架构体系以后再开发商业项目,否则只会在组件化模式的歧途上越走越远。
在扩展性方面,unity的其他问题也还有很
多:假设苹果出了一个新的设备iTV,
用cocos2D的话你可以在beta版本放出的时候就开始根据官方的文档开发集成,在正式设备发布的时候就第一时间支持,使用unity的话恐怕必须等
unity发补丁更新;需要两次编译,令人头大的JIT错误;很多国内广告和支付平台都不支持unity,SDK集成需要自己做插件等等。

总结一下:
1. 如果你编程基础一般,想快速做出一款游戏而不纠结于技术,选unity
2. 开发app或者其他软件已经有一定经验,希望转到手游领域做一款商业化产品,同时个人或者团队的资金实力一般,选cocos2d
3. 想学习业界主流的游戏开发流程,不想局限于某个游戏平台或者2D还是3D,选unity
4. 不属于上面3种情况的,建议都上手试验再做判断

如果你要快速制作游戏用 Unity。如果你想自己搭建游戏基础框架(包括场景管理器等)用 Cocos2d-x

#15083406893# 刚毕业,从长期发展来说,是学习安卓开发好还是学习cocos2d - x好 - ******
#怀庭# android应用首先要java功底,游戏开发现在主流是c++吧,而且可以跨平台,看你现在两种语言的掌握情况和个人兴趣爱好,而且也可以先学一个在学另一个,至于那个赚钱,那就看你自己学的怎么样了,学的好都赚钱,个人认为android应用开发还是简单一些,后期补一些java web的知识应该不输于游戏开发

#15083406893# 关于学C语言后的发展方向 ******
#怀庭# 1、可以不用先学汇编,汇编对于你学习游戏开发或手机软件开发没有太大帮助(注意,是学习,而不是真实开发).但学习汇编,有助于了解更深层的程序体系结构,在优化代码方面有很大帮助.如果是向游戏开发发展的话,学C++比较合适...

#15083406893# 我想学游戏设计 ******
#怀庭# LZ,游戏设计有分两大方向,游戏美工和游戏程序类的,不知道你想学习哪个方向. 游戏美工--游戏美工顾名思义就是负责游戏美工方面的工作,包括了游戏建模、游戏原画、游戏动画、游戏特效等.游戏程序--游戏程序员一般负责编写游戏程序,并且对于程序中存在的bug,能够尽量发现并给予适当的解决;设计新奇的游戏,能很好的把握玩家的心理;准确地向开发人员表明设计意图,在开发过程中及时进行沟通并解决问题.纯手打好累,楼主是想学习的话去游戏设计学院(http://www.szg.feicuiedu.com/)了解下.

#15083406893# 游戏设计要学什么专业? - ******
#怀庭# 学游戏专业分为三大块:游戏编程、游戏策划、游戏美术.【在线领设计教程,萌新小白必备>>】游戏编程需要学习计算机软件专业,如C编程语言、Python、C++、java等,编写计算机、手机或游戏机上的游戏. 游戏策划(是电子游戏开发团...

#15083406893# 我想学习游戏开发该怎么做? - ******
#怀庭# 首先游戏开发是需要有一个开发团队来完成的,这个团队中包含了:游戏策划,游戏美术,游戏程序这三个职能.基本上只有很少数很少数的人能掌握这三个职能的开发技术.以下我介绍一下这三个职能的具体情况: 游戏策划工作相对于其他两...

#15083406893# 我现在是学软件开发的,学校主攻Java和.net这两个方向,可是我个人对游戏开发感兴趣我应该还有学 - ******
#怀庭# www 游戏不是应该走 C++流么 , 2d的就cocos , 3d就 unity , 不管怎样 , 面向对象的基础都是要有的 . . . 而且游戏也是要有后台的 , 所以学好java 或.net 还是可以去做游戏 , , , 9.>9

#15083406893# 学了cocos2d学u3d容易吗? - ******
#怀庭# u3d是面向行业的,是兼开发加管理的,cocos2d是面向个人的纯开发,侧重2d方面,3d功能太弱,但是学u3d要有一定的2d基础,还是要从cocos开始的,具体还要看你要开发什么项目了,基本手游的话cocos就可以实现,想发展更好的话还是要想3d方面发展的

#15083406893# 为什么说cocos2d - x是手机游戏开发的必备课程呢? ******
#怀庭# 首先, 根据开源社区的保守统计,基于Cocos2D-X开发的游戏全球范围内已经突破一亿安装量.大部分国内外领先的游戏开发公司,都在使用Cocos2D-X开发手机游戏. 鉴于Cocos2D已经被淘汰,所以大家都把目光投向了可以跨平台的Cocos2D-X,这也是为什么手游开发需要Cocos2D-X, 蓝鸥以“靠谱”为己任,用技术做支撑,国内首开Cocos2D-X课程,为的就是让广大游戏开发爱好者能有一个好的平台进行创作.

#15083406893# 学IT,哪个最有前途?具体点 ******
#怀庭# 计算机IT行业分为三大类: 1、软件编程:前途大好,好多软件开发单位都需要这样的人才,经验和能力很重要,作息时间比较混乱,加班常有,但薪水也高,不用担心失业和饭碗问题. 2、硬件、网络工程:适合网管和技术支持,同样经验和...

#15083406893# objective - c - ******
#怀庭# 针对你对1楼的追问.1.iOS应用和程序基本是完全不同的两个方向,C的基础肯定要有,任何语言都需要,看似用处不大,但编程思想很重要.2、Xcode是软件开发工具,苹果官方提供的.cocos2d是一款开源的游戏开发框架,可以帮助开发者...

为传递更多家电数码信息,若有事情请联系
数码大全网