我觉得世界上所有的游戏公司都应该放弃研究游戏把精力灶具放在那个方向有意义的研究方向上。另外,除了苹果以外,其它

信息不存在或已被删除
操作提示!
此问题还在审核中,请稍后再试!
现在想要去哪里?查看: 3210|回复: 27
cocos2dx:Unity 和 Cocos2d-x 越渐流行,国内公司开发自研游戏引擎的意义何在?
主题帖子积分
目前游戏界的发展趋势逐渐把游戏引擎当做一个比较成熟的中间件了,许多toolset和基础构建在不同游戏中是相通的,曾经有人比喻游戏引擎在不久的将来会像现在的操作系统一样,呈现出一种比较稳定的状态(比如现在比较活跃的操作系统只有Widnows和Linux了)。
如果追求性能的话,实际上可以重写Unity或者其他引擎中的Renderer和Shader来进行改进,所以追求性能不能成为使用自研引擎的借口了。
而且,国内的许多公司的引擎,比如畅游. 也只是把ORGE啥的改一改, toolset和平台建设远远不如Unity,现在可能连Cocos2d-x都不如了.
那么,国内许多的 &自研引擎& 还有继续存在的价值吗?是不是应该放弃 ”自研引擎“ 呢?
--Update--
补充一下题主所说的,Unity有一点令人惊讶的就是,Unity对中国市场竟然非常看重,文档大部分翻译成了中文,并且在中国设立了许多的培训班,又在中国设立了Unity应用等级考试。
Unity构建的平台不仅是线上的,而且是线下的。与Unreal和CRYENGINE不同,Unity十分接中国的“地气”,这点才是真正令人恐惧的。
会不会下一代的游戏程序员和游戏策划的必备技能就是Unity3D呢?我们拭目以待
主题帖子积分
先简单介绍下我自己。我是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这种引擎流行,使得不厉害的程序员甚至策划、美术来抢自己的饭碗,所以他们会使劲黑unity的。
还有不少人在其他问题的回答里面质疑我的&做游戏开发不一定要用c++, 只学脚本也能开发好游戏&的观点呢,问我是否确定,说这是SB观点,怀疑我是否会开发游戏。
但是历史的潮流不是觉得自己很厉害的程序员就能阻挡的!
--------------------
大公司的程序员,当然会提倡&自研引擎&啦,引擎怎么做,做成什么样,什么进度,都是自己说了算,不必被策划牵着鼻子走,不必管美术;可以养着一帮人,做这么高端大气上档次的东西,以后出来报上名来说:&我是在XX公司开发自研引擎的!你居然还问我unity这种弱智引擎会不会用?! &
----------------------------------------------------
但是,对公司来说,对游戏开发来说,应该放弃,确实没有什么意义。
--------------------
好吧,下面给出反对的理由。
特定类型的游戏需要特定类型的工具,这一点我非常赞同
@邓鋆 所说。而且,更进一步,我认为每个游戏都需要自己的特定工具集;游戏开发本来就应该工具先行。
可是,工具和引擎并不是同一个概念。说点实际的,有了unity之后,每个游戏的工具集都是围绕unity来做的,只是写代码的时候稍微关心一下如何方便unity editor调用就够了;偶尔自己写一些editor下的绘画,成了稍微专业一点的unity插件,仅此而已,而不会进化成独立的引擎。如果cocos2d进化的更好一点,以后某类游戏的特定工具也会演变成cocos2d地图编辑器的插件,而且不是通用插件,而是针对这个特定游戏的插件,甚至都不是特定类型游戏的插件。
这种工具,可以认为自古以来就是特定游戏的不可分割的一个组成部分,而不是一个独立的可以拿出来号称“自研引擎”的东西。
对于刚才这一句话,我是存在疑问的。也可能,因为这些东西做得确实很好,确实能够通用,某些公司里面确实就可以把这样的东西拿出来称作自研引擎;那么,目前排名第一的
邓鋆 的答案就是完全正确的。
------------------
这一点我也非常理解。我自己专做围棋应用开发,每次也都是把处理棋谱和棋盘绘画、操作的部分全盘拷贝到新项目,重新组织外围代码,改变游戏逻辑,做成新的游戏。对我来说,这些就是处理围棋游戏的核心引擎,虽然很小。
这种引擎,也许和各位看官心目中的引擎差别很大。
----------------------------------------------
是否仅仅给这个特定项目用,还是会给接下来的三四个项目用?如果不具备通用性,我们应该称呼它为项目工具,还是游戏引擎?如果只是这一个项目用到,那么项目代码和引擎代码的分界在哪里?如果没有分界,那即使用在下一个项目中,我们是否可以认为,下一个项目继承了上一个项目的所有代码而不是所谓“引擎部分”的代码? 如果针对特定游戏的工具是建立在其它引擎比如unity的基础上的一个插件,那我们应该称呼它“插件”,还是“引擎”? 我的意思是,工具肯定是必须的,但是通常是不具备多少通用性的unity插件,少量是独立的解析数据格式的其它专用工具,不值得被称为“公司自研的独立引擎”;自研引擎只是一个很响亮的口号而已,背后当然有其正知涵义,也就是说需要有独立的引擎开发组至少也是引擎工程师,可以不那么关心项目的需求,有一些独立的话语权去空想一些可能会出现的为下一个游戏准备的通用需求;怎么称呼无关紧要,这种人员结构正是我所反对的。
------------------------------------------------
至于那些实实在在开发渲染引擎的公司,那就切合题主所问的了,在unity和cocos2d-x这么流行的今天,在通用引擎做得这么好还这么便宜的今天,继续做下去没有意义,应该放弃。
这些东西不是今天才做的,是历史遗留产物。当初没有这么便宜这么好用的引擎可用,只好自己写渲染,写引擎。那时候,要不就花大价钱买unreal这种,要不就自己开发引擎,做引擎这件事情太有意义了,不仅是核心竞争力,而且是不做引擎你根本就无法做游戏。
可是到了今天,这些意义就荡然无存了。
主题帖子积分
以前我也是觉得应用到了一定的深度,就需要开发自己的引擎了。不仅游戏引擎,服务器架构也是。这是从技术上的判断,执行效率高,团队支撑好。
但是,入职EA几年,看过了FIFA、极品飞车、模拟人生等等游戏的代码以后,我想跟国内的开发者说:算了吧,咱们真的玩不起。
在EA做引擎的重点是做编辑器,市面上的编辑器大概只有我们内部编辑器40%-50%的功能。主要差在细节,举个例子,按钮除了有idle/up/down三个状态以外,每个状态变化都还有动画。
编辑器的代码有时候比游戏本身还多,而且一定比引擎代码多几倍。
暴雪设计师的那个视频里,魔兽世界的编辑器可以在线编辑场景,实时反映到游戏里。
自研引擎是个长期投入的无底洞,如果没有一本万利的大IP,还是不要碰的好。
主题帖子积分
先说说题主在描述中提起的两个引擎占有率问题。
先说说题主在描述中提起的两个引擎占有率问题。
从图看出,自研引擎不论安卓还是IOS平台,占有率都是相当不小的。
1,题主也说了,游戏引擎是一个中间件。那么是否有「万能中间件」或者是「所有游戏都可以用通用工具做出来」这种事情呢?我认为没有。游戏是一个有艺术创作在里面的工作,它不可能靠一个车床加工出所有零件。游戏的种类,它们需要达到的效果都是千差万别的,这些引擎不能够面面俱到。
要分清游戏引擎和通用工具的概念。就像生产汽车一样,游戏引擎不是螺丝刀,钳子之类的通用工具,而是固定或几个有限车型的流水线。泛用性和效率两者不可兼得。
题主要弄清平台和引擎的概念。平台这个东西易用性,扩展性,用户体验线性量化比较容易,竞争一段时间后容易形成稳定局面;但游戏引擎是在应用层满足应用的东西,原则来说随着应用不断被挖掘,引擎会不断改进淘汰,它的版本更迭速度比操作系统会快很多。PC平台的各种游戏平台可以作为参考。
3,说回国内情况。国内移动平台的游戏开发即将进入刺刀见红阶段,对大公司来说每一个细节都是必争的。战略方面,大公司不可能把自己的命脉产品的引擎交给其他公司。通用流水线是不足以满足细节层面和战略层面需求的。
4,免费引擎有其他盈利模式的情况下,为了扩大影响可以做免费平台。但你什么时候看大型商业游戏在用大型引擎时候也免费了……孤岛危机,半条命,寒霜这些引擎想拿下需要多少钱我一会看电影回来再给你列数字……在中国吃免费午餐习惯了,不知道这些其实是要真金白银的啊!
主题帖子积分
我们团队08年顺应端游大潮,出来创业,本人负责改引擎。当时手握的一款05年前的商业引擎,连shader系统都没有,于是剃掉渲染层和一些老旧的部件重做。终于到了10年游戏出来了,当时的市面上国产网游整个场景用动态阴影的并不多,更流行的做法是只是人物做成动态,毕竟网游需要照顾低端配置,我们能上得益于深度定制引擎所带来的效能提升,这种提升是完全依赖于当时的游戏类型的,估计自研的优势也在于此。 举些例子,比如固定视角时,地形的像素面积过大,可以通过编写美术工具来限制层数,废弃多遍渲染。又比如,如果玩家视野有限,用多层阴影略显浪费,但单层又有些不够用,于是可以定制一个梯形变形+渐变的解决方案。深度定制还有个好处是可以满足美术的特殊需求,比如某些奇怪的光泽,某些奇怪的朦胧的雾或者水下的感觉,美术们都很感性,但需要你的理性实现他们。
接着后话,游戏代理给了某知名网游公司,一直不温不火。团队快饿死了,于是饿死之前做了款全3D的,在此之前我的理想游戏挣钱了是全新开发一款全3d的引擎,但既然是要饿死了也没这些想法了,直接把这款完全为2.5d定制的引擎硬改成3d,效率勉强撑得住,12年游戏又上了,牛逼哄哄滴注册个名著的名字,然后依然不温不火。公司被收购,我们一帮核心成员带着遗憾离开,多少理想热血已成往事。
再接着,再次组建团队,当然规模小了,但还是端游,周边项目组都是些用unity的年轻人, 我自己因为人手不足也写起了逻辑,写起了ai. 讨论起了游戏策划,更多的困扰是经济以及前途的压力,以及各种烦人的人事。 当年怀揣一本doom启示录以引擎程序员为骄傲杀入行业,如今觉得真的到了离开的时候。
也许我在软件园门口买烧饼的时候,能和顾客们讨论讨论PSSM,呵呵。
主题帖子积分
曾经看过UBI的几个游戏的底层代码,其中一个是基于完善引擎开发的,另几个只是工具集的感觉。看到他们底层有些模块的代码几乎一模一样。明白了那个强大的引擎并非一蹴而就,而是经过了好几个项目后积累而成的。
现在想自研引擎并开发游戏,其实是同时在做两件事,开发引擎和制作游戏。如果分两个团队开发,会涉及配合、依赖、周期、资源和成本等问题。如果一个团队开发,那么聚焦点到底是做一个好引擎还是快点出版本?往往到最后是吃力不讨好,玩家才不管你是不是自研引擎,只看游戏效果和其他用unreal开发的游戏比如何如何。然后游戏赚不到钱还有继续完善引擎的机会吗?
其实国内还有一个环境问题,如果你是财团,有一笔钱投资,你是去投高风险的游戏公司自研引擎开发游戏的项目,并耐心的等待成长。还是投用成熟引擎的项目?或盈利模式成熟的项目?或直接投房地产?
我觉得人员水平不是最大问题。社会浮躁,都想着赚快钱,才是最大问题。
人生要有追求
主题帖子积分
我觉得比我早回答的人都已经说了很多了,我就说一点我看到的东西吧。
去年到今年大半年都从事有关引擎和前端适配的工作,给我的感觉就是这两个引擎以目前的势头来说必定会席卷整个业界。
但是如果从我的工作上来看的话,一个开发公司往往要的不是一个单纯的引擎,而是一个解决方案,所以Cocos2d-x相比于u3d还是有很大差距的,在3D方面的工作我不了解,所以对U3D不做评价。而在2D游戏的制作方面,采用Cocos2d-x带来的问题也会不少,最为突出的还是美术和程序之间的矛盾。最为诟病的是官方出的那个编辑器,虽然引擎是开源的,但是编辑器是闭源的,而且还做的很烂(相比于传统老牌Flash来说)。在一个项目要动工的时候,必须去权衡这个编辑器不能提供的功能所带来的损失,截止我不参与这项工作的时候,官方编辑器能支持的东西还是很少,很多项目上要用的也没有,因此而转向我原来参与的编辑器适配的技术,希望能够找到一个功能完善(如Flash)的编辑器,通过一个通用的适配器来适配上各种引擎。这个愿景是美好的。
但是,最终我不得不承认,由于很多数据架构的问题,在编辑器和引擎之间想要搭建通用的适配器解决方案几乎是一件不可能完成的事情,虽然我硬着头皮解决了大多数,但是最终的效果还是
非常不理想。相反在之前自研的引擎上,由于采用的方案就是类似Flash的,很顺理成章地适配的比较好。
举这样一个栗子就是想说明,一个引擎再优秀,当项目需求发生变化时,也不可能做出万全的准备,各种各样的需求也就催生出各种各样的解决方案,这些方案里面就不乏自研引擎。感觉这个就好像是即使在windows统一天下的时候,也还存在着各种linux,正式他们不放弃,才得以发展。
存在即合理。从技术研究上讲我是很喜欢公司做这种基础建设的,虽然研究了好久的东西最终还是被砍了TAT
主题帖子积分
自研引擎可以认为是一种商业策略,不只是自己从头开发一个引擎,也可以是基于cocos2d-x或者ogre之类的开源引擎深度定制也是其中一种,可以在技术上领先同行1年以上。
说大一点的,比如你从2010年开始,基于ogre研发3d手游,这个时候 unity3d既不成熟,也无法招聘到足够的程序员。那么如果你能在2012年上半年就发布你们的3d游戏,到2014年就可以30亿把公司卖掉变现了。
说小一点的,你是个人开发者,cocos2d-x引擎在wp平台上有很长一段时间是不成熟的,你若能深度修改和优化,从12年下半年开始,对着ios平台上火的游戏挨个抄到wp平台,一年下来也能在北京买个房。
接下来的智能家电,可穿戴设备什么的,都可以用自研技术进行卡位
主题帖子积分
这时候如果还有技术负责人要自研引擎纯粹就是忽悠老板了。不差钱、不差人、不差时间,还要有一大堆项目给你当小白鼠。这样的公司国内有?
最合理的选择要么是用现成的,要么是在现成的基础上改。

我要回帖

更多关于 灶具放在那个方向 的文章

 

随机推荐