手游引擎unity3d cocos2d 对比和Cocos各有什么优劣

Unity、Cocos2d-x 越渐流行,国内公司自研游戏引擎意义何在?
Unity 和 Cocos2d-x 越渐流行,国内公司开发「自研游戏引擎」的意义何在?
邓鋆,天地之灵,游戏程序员,引擎工程师,游戏设计师,吟游诗人,流浪歌手,亡灵魔法师
先简单介绍下我自己。我是 Seed 游戏引擎的总架构师。
写的比较长,走题比较严重。读者们可以快速切到第三部分和第四部分。只有这两个部分是对问题的直接回答。
分几个角度来说:
一、我认为,Unity3D 将无可挽回的,或者说,势在必得的,成为接下来很多年内,世界移动领域游戏引擎市场霸主。
回顾历史,正如同咱们经历过一次又一次的互联网时代变革一样,x86,windows,Google,facebook,twitter,当一个具备一定规模的产品在一定领域达成霸主地位之后,其它的同类产品从技术积累上、推广成本上、对用户的掌握程度上等等方面的差距均会无可挽回的越拉越大。即使对于引擎这种核心技术较多的产品,这种差距也不是一两个明星级别的程序员可以挽回的。不论是易用性、性能优化、提供更多功能、覆盖更多平台,这些对于引擎开发团队来说,都是赤裸裸的成本。随着时间的推移,这个门槛会越来越高,高到后来者根本没有办法企及的程度。
这就正如你打算现在开一家公司,研发一个操作系统去销售,即使你投入数以亿计的资金,可能你也刚刚攻关完微软早在十几年前就在实验室得出结论的问题。这还仅仅是技术,比起微软完备的推广、销售渠道,你在创业初期多半还需要自己上门推广;比起微软完备的亿级用户的体验收集分析系统,你可能不得不邀请数以十计的朋友或家人体验你的产品。这一切的门槛,都是无法挽回的。
二、我认为,cocos2d 将在 2D 游戏研发领域持续的占据一定的市场,但在 3D 领域会败的体无完肤。
cocos2d 与 Unity3D 的关系某种程度上类似 linux 与 windows 的关系。前者打着开源的旗号,由社区发展而来,后者从诞生开始就是商业闭源的。根据程序员的劣根性,开源会让他们产生一种虚假的掌控感,让他们以为,如果引擎是开源的,那么在引擎遇到 BUG 的时候,他们就可以去查看代码并修复。尽管这种感觉在大多数时候是错误的(这里不深入讨论了),即使在小部分时候正确,带来的好处也远不如使用商业引擎降低的成本,但这有助于保证一部分忠实用户,一旦用户花费了大量的学习成本去学习一个引擎,在没有特别的必要性的情况下,他转投其它类似产品的可能性是很小的。另一方面,Unity3D 在 2D 领域多少还有一些水土不服的现状,它并没有完好的提供大部分 2D 游戏研发者所适应的工作模式,它的体积庞大,不能满足众多小渠道瘦身包的要求。它的架构和设计严丝合缝,因此并不容易满足一部分特殊的需求。所以在需求多变的 2D 游戏领域,目前 cocos2d 才是当之无愧的霸主,Unity3D 并不容易吃下这部分市场。
但是在 3D 领域,cocos3d 落后的太多,不论是资源管理、场景管理、渲染框架,这在 OpenGL ES 2.0 普及的时代可能还不明显,但是随着 OpenGL ES 3.0 的发布到普及,技术门槛会大幅的提高,cocos3dx 将沦为一个只能画画简单场景的小众引擎,时间的差距和投入的差距会让它跟 Unity3D 无法抗衡。
另一方面,cocos2d 的结构较为松散,比起 Unity3D 富有设计感的 API,cocos2d 更像一个功能堆砌的产物。对于小规模的项目来说,问题可能并不明显,只要少量的增加程序员(或者让他们加班!?)就能解决问题,但是随着项目规模的扩大,参与人数的增加,混乱和无尽的 BUG 是我能看到的唯一结局。
三、我认为,国产自研引擎尤其是商业自研引擎在一段时间内还将继续持续存在。
且不说楼上有人提到的&自研情节&,单纯从商业角度来分析一下。
1、引擎市场是一个对技术支持等服务要求非常高的市场。对于一个非英语母语的国家来说,本地化服务是一个非常重要的服务。在 Unity3D 真正成长为一个强大的跨国企业之前,还有充足的时间留给国产引擎公司存活,并且很可能成长为类似百度在搜索领域这样独霸一方的角色。某种程度上,我认为搜狐畅游的 Genesis-3D 打的是这个算盘,结果怎样还需观察。
2、正如同有人提到的,像 Unity3D 这样通用化的引擎,还是很难为一个特定的游戏类型提供足够的支撑服务。对于一个特定的游戏类型,在 Unity3D 完美覆盖之前,还有充足的时间留给一个特定的引擎成长,建立稳定的社区,拥有稳定的用户。典型的代表有橙光文字游戏制作工具。
3、对于一个一定规模的公司来说,拥有自己的引擎,拥有一个属于自己的公司的技术支撑团队,就目前来看依然是有价值的。这不但会大大降低引擎学习研究适应的风险,也有助于这家公司在某些细分领域建立自己的技术门槛,甚至还有利于降低核心员工流失率。
4、对于一些具备核心技术人员的小型团队,只要不奢望一个大而全的引擎解决方案,拥有一个自己的引擎(不是一个庞然大物,而是一个小清新的工具&库集合和自我的积累)依然是一个既有助于调动核心技术人员积极性,又能快速响应和满足当下并不复杂的需求的方案。这个思路的典型代表是云风的 Ejoy2D。
四、引擎研发团队还有更多新的机会。
1、船小好调头,任何一个大的引擎,达到一定的规模,它登陆一个新的平台或环境都会有比较大的时间成本。相比起来,小规模引擎快速登陆一个平台,在新的平台上快速抢占市场,会是比较大的机会。这个方案的典型代表是 Unity3D 自己。在几年前,提到游戏引擎的时候人们想到的都是 Unreal、Crystal,而那时候的 Unity3D 只是一个活在浏览器插件里的、主要面向甚至不完全是游戏的,极小众的引擎。但是 Unity3D 抓住了智能手机浪潮的先机,快速抢占了市场,不但成就了新一轮的神话,甚至在 PC、主机等平台上产生了反攻之势。这件事是否会重演?谁也不知道。
2、服务,服务,还是服务。对于一部分客户来说,他们不关心这个引擎的核心多么有技术含量,所用的算法有多么高大上,他们最关心的,是他们面临的需求和问题能否得到解决。比起十几年的技术积累,丰富的文档资料,他们更想要的是一封快速回复的邮件,一个电话,甚至是一次上门的培训或技术支撑。想要做好服务,你需要是一个有一定技术积累的团队,但你甚至未必需要有一个自己的引擎。想想吧,当 windows 大潮来临的时候,真正赚钱的是投入几千万几亿研发一个新操作系统试图跟 windows 正面抗衡的公司,还是那些卖盗版碟,搞 windows office 培训班的团队?
3、适应新的互联网时代社会化大生产模式。作为一个引擎团队,你具备的可能是技术实力、研发能力,有可能你认为自己不适合去做什么经销培训的事情,那么一定还有一件事情你可以做,就是借助社区和平台,进行互联网式的分工协作。一个别人无法完成的需求,一个别人无法实现的技术难题,如果对于你来说是迎刃而解的,那么不必拥有自己的引擎,你也可以在互联网时代获得你自己的立足之地。  Unity篇:
  Cocos2d-x篇:
  移动游戏引擎里的两个领跑者正式狭路相逢了。上个月,Unity宣布推出2D引擎,触控表示将发布Cocos2d-x的3D引擎。而Unreal、Crytek等等,继续只受到一小部分开发商的关注。
  游戏葡萄君今天继续推出年终大盘点系列文章,为大家比较一下Cocos2d-x与Unity3D。
  首先是占有率,中韩美日四大市场的份额可以见上图。
  各自亮点
  Unity3D的亮点是可视化编程,资源轻松导入,一键部署各个平台,拥有众多第三方插件,轻松处理音频/视频的兼容。Cocos2d-x是拥有发达的开发者社区,能够方便的找到各种问题的解决方案。spine、TexturePacker、Cocostudio等工具让引擎方便的处理各种资源,UI问题。而且开源方式也使开发者很方便的研发出适合自己项目的编辑器。
  适合怎样的团队
  Unity适合开发周期较长,追求较好的画面表现、拥有稳定收入的团队使用。Cocos2d-x适用于快速迭代的开发方式。适用于对性能要求较高,安装包体积需要严格控制的项目使用。
  授权方式
  Unity3D采用收费闭源的做法,Cocos2d-x采用基于MIT协议的免费开源的做法。
  支持形式
  Unity3D有Asset Store的工具和资源支持;Cocos2d-x有比较活跃的社区进行支持。
  使用方式
  Unity3D任何功能都可以拆分成单个组件来实现;Cocos2d-x开源的优势在于可以根据自身的需求进行自定义修改。
  开发难度
  相对来说,Unity3D相对于程序基础不好的人来说更容易上手,界面直观,能够较大限度降低技术壁垒,拥有较高的3D水准,而遇到问题时Cocos2d-x更容易找到解决方法,Unity也可以寻求帮助,但是一方面效率会受到英文水准和时差的影响,另一方面,涉及到一些底层的东西会很纠结 Cocos2d-x对C++代码支持,也支持JS和Lua脚本。Cocos2d-x入门难度相对比Unity3D要高,但是后续开发难度曲线比较平滑。开发过程中遇到的任何问题都可以从社区或者调试源码来解决。
  编程语言
  Unity是C#, Javascript, Boo;Cocos2d-x则是C++,支持JS和Lua脚本。
  性能差异
  如果不熟悉Unity3D,很容易出现性能问题 ;Cocos2d-x目前的运行效率比Unity3D更好,游戏包的大小更加可控。
  兼容性
  一个比较,Unity3D自己团队开发的组件在团队或者项目多半还能够使用,但是11月13日unity在成都的发布会中指出,Unity3D的插件之间也存在不少的冲突,所以应该使用官方推荐的插件组合。 Cocos2d-x这方面的兼容性会差一些,如果团队更改了引擎代码,则可能导致不同的环境不兼容。而对于独立于引擎以外的功能性扩展,则基本不会遇到兼容性问题。
  可视化编辑
  Unity3D对可视化编辑的支持更好,脚本编译时间很快,可以快速出原型出De Cocos2d-x更多是代码层面的编写,为了补充可视化编辑方面的问题推出了Cocos studio 。
  未来发展方向
  Unity开始优化安卓的兼容问题,正在向2D游戏领域渗透,并且推出了广告平台Unity Cloud和游戏出版服务Unity Games,解决流量增收和向新兴平台移植游戏的问题,进一步巩固自己在移动平台的优势。
  而Cocos2d-x方面向葡萄君表示,未来Cocos2d-x会加强可视化编辑器,然后进一步优化已有的功能和特性去适应中国市场诡异而复杂的兼容性问题,同时也会进一步发展对2.5D的轻休闲3D游戏的支持。
(责任编辑:张娟)
&&&&&&</div
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:1859人阅读
手机游戏开发
现在手游火的一塌糊涂,引擎也是层出不穷除了引领3D市场的Unity3D,独霸2D市场的Cocos2D-X之外,还有虚幻、Sphinx等,甚至搜狐也开发了国产的Genesis-3D引擎。
其它的不多说,这里主要就对比Unity3D和Cocos2D-X,帮助大家选择。
如果你想开发一个2D游戏,有着C&#43;&#43;/C/LUA之一的基础,那么Cocos2D-X也许比较适合你。他本身就为2D游戏设计,有着丰富的源码、实例和教程文档。你可以得到社区的大力支持。
如果你想开发一个3D或2D游戏,有着面向对象编程语言基础(比如Java、C#、AS等)。那么Unity3D会很适合你。虽然他主攻3D,但是assetstore有着丰富的插件,使得你想快速构建一个2D游戏也不是一件难事。
其实把这两个东西放在一起比,即使不严&#26684;说也是没有办法说的。Cocos2d-x是个渲染引擎,专注2D游戏(即使内部利用3D的很多技术)。而Unity是个解决方案,不单是渲染引擎,早先专注于3D应用的开发;最近因为它一个2D插件(用来帮助开发者制作2D游戏)在用户需求中还是比较强烈的,战略性的官方开始把这个插件的功能官方化(官方开始制作2D功能的模块),因此可以说由把Cocos2d-x的功能也在融合进来。这个是概念上的澄清。
基于概念回到问题,学习这两个东西,并不是两个技术的方向,而是两个游戏开发类型的方向。因为Unity如果弄得很通,Cocos2d-x就是个子集(仅负责渲染管理)。我只能说,对于刚入门的,如果你不是只想专注于2D游戏,那么,完全可以从Unity入手,理由:
1、完整的解决方案,学好一个,其他的东西上手非常快;
2、海量的学习资料;
3、没有C&#43;&#43;的繁琐,完全可以专注于技术点的学习;
学习难度的话,我想C&#43;&#43;如果好的话,Cocos2d-x相对小一点,涉及功能少很多,所以,相对简单;但是C&#43;&#43;如果不会或者不好,则另当别论,而且相对入门的来说 js和c#更亲民。
那么我个人是怎么选择Unity3D和Cocos2D-X的?
我自然是选择Unity3D:
1、虽然你现在可能是做2D游戏,但如果你以后想做3D呢?用Unity3D的话从2D到3D的转换成本很低。
2、丰富的插件支持。
3、成熟的工具以及强大的编辑器拓展,让你可以很方便的定制适合自己项目需要的编辑器。
4、内置强大的性能分析工具。
5、几乎支持所有主流平台:WEB、Win、Mac、IOS、Android、XBox、PS3、Wii
6、Unity5还有更完善的光照系统、UI架构以及支持发布成Html5。可见该引擎的发展处于高速阶段。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:42057次
排名:千里之外
原创:23篇
评论:37条
开发者的第一桶金之有米 https://www.youmi.net/account/register?r=NDE0NzI=
(1)(6)(4)(7)(2)(3)(1)前几天做了个CoCos2d的游戏,“疯狂的小狗”,其实主要是给你们说下另一款做游戏的引擎,他就叫做Cocos2d,他主要做的是2D游戏,而且游戏总体感官属于动漫类型,使用的编程语言是JavaScript,JavaScript可以说是最简单的编程语言了。先看下效果:了解下就行了。有这么一款制作游戏的软件,当然你有兴趣可以可以学下。。。。今天四、六级考试,很遗憾我英语没能过四级(我裸考,不要跟我学哈。),其实说这个主要是因为对于一个程序员来说,英语确实是个比较重要的东西,但也不是非要掌握那么深,但是基础还是要有的,至少你可以知道你打的代码的意思,基本上打的代码都是英文,怎么可能不需要掌握点英文呢?当然这也不代表着你一定要学英文,过四级之类的,但至少你打的代码的英文你要记住,并且去查百度是什么意思,这样才合理,比如像Public、private等这些基本都需要了解的。。一些比较高技术的Unity3d学习资料英文的暂居了很多,这也是 之一啊。记笔记还有在说下记笔记的事情,在这里推荐两种方法做笔记,但先说下为什么要做笔记?我个人认为做笔记很重要,把你学到的东西全部记下来,这样你遇到什么问题而之前你有又学过并且做过笔记的,这样你就可以翻开看看,而且这样对自己做过的项目会有个更清楚的认识,了解的更仔细,才可以从中学到更多的知识。当然遇到问题可以查百度,但并不是什么问题百度都能查到完美的解决方法的,如果自己知道,那么就没必要去查了,省下这个工程。。有两种方式1、用笔记本,书写的那中,优点就是记得牢一点,缺点就是携带不方便2、用一些软件做笔记,比如为知、有道等软件,他可以同步到网上,然后你可以在手机查看,优点携带方便,想看就看,缺点要用网络。。。。我只是建议而已,采不采纳完全看你们自己,嗯,就这样了,还有今天父情节,至少打个电话给老爸,祝每位老爸都开心幸福。。。Unity3d手游开发者(unity3dno1) 
 文章为作者独立观点,不代表大不六文章网立场
unity3dno1本订阅号主要是用于个人的Unity3d手游学习历程,将会与您分享我的学习经历以及经验等等热门文章最新文章unity3dno1本订阅号主要是用于个人的Unity3d手游学习历程,将会与您分享我的学习经历以及经验等等&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78

我要回帖

更多关于 cocos2d unity3d 的文章

 

随机推荐