从零开发CocosCreator+Nodejs麻将视频教程
30689 人在学
想知道你适合Cocos2D还是Unity3D?纠结不知道学哪种好?本篇教程将从5个方面告诉你应该选择UNITY3D还是COCOS2D。不管是对于技术人员还是初创公司,技术选型就是技术投资,一般来说选择一个技术学习和投入,应该考虑清楚下面几个问题。
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一天复制flappybird的教材,如果换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种情况的,建议都上手试验再做判断