找回密码
 立即注册
查看: 974|回复: 20

[简易教程] 既然已经有开源的游戏引擎,为什么还要自研引擎呢?

[复制链接]
发表于 2021-4-21 11:27 | 显示全部楼层 |阅读模式
在做开发的时候遇到了一个终极问题,类似于宇宙为什么存在的这种。
发表于 2021-4-21 11:35 | 显示全部楼层
个人感觉,引擎的选择可谓是技术选型阶段最重要的选择之一了,它很大程度上影响项目后续对资源和人力的调度方式、规模和策略。如果说兵者、国之大事,那么引擎选型基本上也就是整个项目的头等大事。


关于自研引擎选型

个人理解,游戏项目开发,乃至于引擎的选择,本质上是在解一个系统问题,需要考虑到系统的各个相关方的利益诉求,以及引擎、项目组织的性质,乃至行业目前所处阶段的客观现实。既然选择了自研引擎策略,也就意味着在策略的设计者看来,这是在当前博弈目标和博弈环境下的最优解。
因此选不选择自研引擎,为何选择自研引擎,个人感觉,不妨从下面几个地方去思考自己的最优博弈策略:
    项目本身的客观需求。比如技术实验性质的小游戏,需要用到的功能基本很难找到引擎的现有方案、市场和商店找到的扩展也并不尽如人意。
      这种情况下,可能本身拉个引擎过来,大部分时间也在为引擎提供各种扩展。最后算下来,如果加上对引擎学习的成本,未必强于用自己业已熟悉的工作流自搭一套了。这个点一般来说,需要同时考虑团队积累。
        比如做XNA的,自己可能已经积累了一堆工具和理论,你让他学习Unity,可能有学的功夫小游戏都做出来了。更别提UE,可能还得重头去学C++(当然还是得提醒一下,虚幻几个脚本插件用起来也挺舒服的,不喜欢C++和蓝图的不妨了解下)。
          最近在做的几个实验就有这种特征,比如在不改引擎代码的前提下,为UE4添加帧同步。帧同步本身理论上很简单,按理说熟手很快就能搞定。但是为此需要去熟悉引擎各个切入点,这个学习过程和实验过程需要花的时间可能是不可忽视的。

      当然这种情况下,个人感觉,也要注意一下不要陷入自我的某种舒适区间。毕竟从目前来看,客观上处于某种平台+中间件的周期,中间件开发至少在目前是大势所趋,不妨评估一下自己的这些东西是不是可以中间件化。
        中间件的最大优点不是说可以卖钱。而是可以跳出“闭门造车——蓦然回首——沧海桑田”的困境。
          这是当年许多老引擎最终栽跟头的地方。


    团队组织的客观需求。比如之前就是自研引擎的团队,团队已经在自研引擎的套路和思路上充分磨合,这种情况下选择自研引擎反而是最优策略。
      一个已经充分磨合的团队的价值,绝非引擎这个级别的概念可以去衡量的!如果选择新引擎,反而最终导致团队破裂,这绝对是得不偿失的。当然反过来说,技术发展的大趋势在这里,单纯只是把这个作为优势的这样团队,还能走多远,可能也是团队自己需要考虑的问题。
        毕竟客观上讲,过去跟你竞争的是跟你一样的团队,现在跟你竞争的是人数远远超越你,未来还可能越来越多的整个行业。如果自研引擎没有自己先天独有的特殊优势,很可能会在环境不断的冲刷下,随着老兵的疲惫或凋零,而逐渐边缘化。
          老兵就算不死,终也将Gone with the wind。问题只是在于,那之前,我们最终将留下来的是什么?


    对于行业理解和工具链理解的不同,需要重新搭梯子。
      即便是目前的状况,也不能说自研引擎就完全没有机会。Unity和UE再强大,Visual Novel Maker也将注定会存在。
        个人认为,因大而全所带来的必然的臃肿、和直面问题的小而精,本身就是一对矛盾。
      想一想大公司的大引擎,本身磨合就不用说了,能成功研发自己大引擎的公司,磨合本身不是问题。这些引擎一般也有各自相当鲜明的技术特征,本身也在不断开拓进取,每年的GDC和Siggraph都给我们惊喜,那么这样的引擎,也就自然会保持青春。
        积极开拓进取,只要不是不计补给的蛮动,也是相当优势的策略啊!
      因为见识到了商业引擎的强大,就断言自研引擎绝不可为,可能也并不究竟。
    目标选择过程中的个人技术主张和个人影响,可能也会是一个需要考虑的因素。引擎选型客观上也是团队大佬之间互相博弈的结果,因此就不可避免的会一定程度上混入核心技术团队的个人追求。
      比如,“UE、Unity那套不行,没我的好”。(举个例子,不代表笔者本意)这个从正面说,是情怀、是追求,从负面说,是政治运动、是个人英雄主义、是官僚主义、是不计系统论和博弈论等客观规律的盲动主义。意识形态,怎么表达都行。个人感觉也没必要批判。Unity和UE初生的时候,就没有混入个人追求么?要求人都是绝对理性、纯粹客观,那不都成神了?根本不现实。
        无论如何,最终,历史的车轮滚滚向前,顺之者昌,逆之者亡。自我意识,自然终归会在时代的大潮中印证自我。每个人,无论想或不想,终将为自己的选择负责。

    新基础理论和技术环境。比如并行化,之前接触到一些自研的引擎产品,从头以并行化的核心思路来构建整个引擎体系,这个就相当于是推倒重来了。
      这几年这方面也有不少变化,是不是有继续破局的可能呢?顺这个想下去可能会很有趣。
    商业冲动,比如,目前的引擎已经具有很鲜明的平台特征,一旦能够占到平台优势,势必在之后的博弈中处于相对有利的局面。因此比如某些资本方出现“做个引擎收平台税”这样的冲动和挑战很正常。“我们也要有”,一部分国人会有这样的性格,不跟全球宣战就不舒服……当然客观上说也是有干劲、冲劲的一种体现……意识形态方面不评价。
      不过在面对这个问题时,个人感觉可能还是得考虑一下,引擎本身的目的是什么?在做引擎的时候,千万不要忘了这个。说到底,其实国产优秀的引擎和工具集也是很多的,比如Cocos2D、KBEngine、Pomelo。好引擎,首先因为他是个好引擎,解决了项目的实际问题,而不是因为它姓什么。本末不要倒置,做个自己都不觉得好用的东西并冠以“我们的”,客观上的结果可能反而会添麻烦喔。
    其它,想到再补充
中间件时代

客观上说,目前我们所处的时代,组件化、中间件的开发思路是主流。而从中间件的意义上来讲,对自研引擎事实上是不友好的。代之以应该是拥抱平台,为平台提供中间件的思路。
当然这本质上是跟全球化类似的,产业客观发展、分工继续细化深化而导致的必然结果
题外话:
有些朋友可能担心接下来逆全球化的过程对行业进程的影响。
我个人倒是比较乐观,因为产业发展的客观规律在这里,中间件是适应产业目前的分工体系的。而打破目前效率更高的分工体系回到上个时代,自降效率,意味着在之后的竞争中处于极其不利的局面。即便有波动,最终也应会很快重回中间件的轨道,最坏的情况也可能是平台变了而已。
况且虚幻是腾讯控股,代码又随意可得,Unity国内买代码的也很多,Cocos本身就是国内公司做的……有什么好怕的呢?
担心这个的朋友,是不是更得担心一下编译器和操作系统呢?


但是中间件也不宜夸大。
首先是,硬件、基础理论将极大程度改变软件的组织形态和方法。
现有的平台,也终将不断面对新基础而导致的不断冲击。如动画系统的革新、光追、PCG和AI对工具链的影响等。
个人认为,中间件的本质还是在积极地拥抱变化,而不是画地为牢,把自己圈到自己的舒适区间。学习现有引擎的目的,并非是为了未来不继续学习,而是为了了解自己过去未曾了解的理念,同时思考未来自己可以革新和研究的地方
中间件确实是容易让人养成遇事找git,然后下来不问为什么的习惯。但是也要分情况看:
    首先是项目的特有目标,未必是找来的就能直接用,或者想用好早晚也要跳诸如性能坑、冲突坑、内存坑,只要是想要做比较深层次革新,就早晚需要追本溯源。
      个人感觉,主观上感觉至少应该积极拥抱这种学习和变化。觉得学了引擎的某种套路,就可以让自己前程无忧,这样的想法是早晚要面对现实的。引擎也好,项目也好,现实从来都不是单纯的。
    而对于一些一般点的部分,不去纠结也没有什么不好,比如找个XML插件过来读一两个小文件,难到说也要去把XML的前世今生都扒个透彻?人一辈子的时间是有极限的。


中间件与平台也不是单纯的共生关系。
比如Substance,Houdini,基本都是UE、Unity都支持,自研的话整合个SDK也很方便。
中间件更重要的是一种思路和理解问题的方式、解决问题的套路,而不是跟某个平台共生绑定。
说到底,引擎也是一样,它只是手中的工具,解决问题的根本,在人。


另外,项目工作流的组织方式,本身是项目各参与者博弈的结果。
同样的引擎,不同的团队去调度,结果可能完全不同,这样的例子太多太多。连UE这种已经有自身一套完整工作流的引擎,在不同团队里都可能有一些不同的套路。更何况Unity这类组织完全靠项目方自己的呢?
个人认为,引擎也好,工作流也好,本质上是要经由人手去实现项目目标。这就必然牵出了游戏开发这个系统中最大的项目和项目组织的问题。
归结到最终的问题,还是Peopleware,如何调动起成员的积极性,如何为项目成员构建最大的工作效率,这个问题远比引擎选型重要得多。
那么,这个问题如果从反向的角度来理解,如果我们自研的引擎,在特定项目的组织和调度上能够比大而全平台式的引擎少很多麻烦,是不是就反而是一个思路呢?可以参考Visual Novel Maker这样的引擎,针对某个特定领域提供某个特定领域的更简化的解决方案,也能够站住一片天地。
    当然,否定之否定,也得说,这样的地位并不是天然稳固的,理论上平台式引擎也可以通过某种程度的套路化,比如“打包工具包”“模板工具包”这样的思路,做出一定程度的替代。
分工发展到这种程度,中间件客观上是有比起旧方法更具优势的地方的。全面替代这种平台中间件思路的,绝不会是旧方法,而只可能是比它更具先进性的某种新结构新思路。
追本溯源

游戏项目的核心竞争力,是更好地表达项目主张、以及为目标用户群带去更好的体验。
游戏引擎的核心竞争力,是加速游戏开发过程,在中间件时代,多一个更易培养游戏开发的后备力量,为整个行业的发展提供助力。
游戏引擎操作员的核心竞争力,是更快更好地利用引擎和自身对项目的理解,完成项目目标。


即便是中间件思路,在项目组织调度层次,仍然具有巨大的挑战。
即便是中间件思路,在平台层次,小核心和强工具链孰是孰非,也各有拥趸。
即便是中间件思路,也不乏需要新中间件、新引擎扩展,不乏需要对引擎动手术的需求。
即便是中间件思路,在平台和制作方法本身是否需要理论革新的问题上,也不断有所尝试。
硬件的发展、市场的发展、基础理论的发展,一定程度上催生软件技术的革新。
不自研引擎,单纯在现有引擎体系上的扩展和修改,未必就不究竟。比方在虚幻里面做一套星球系统,基本也要把整个引擎几大系统都翻个底朝天,事实上这种情况下有时候都会觉得,自研反而没什么难度……


无论如何,个人感觉,不能为了做引擎而去做引擎。
毕竟引擎的本职,小目的,是为项目的开发提供方便,大目的,是为产业的发展提供方便。
个人感觉,我们可能需要想想,我们要做的东西,应该是比现有的东西“更……”的东西。
不忘初心,方得始终。


祝好运!
发表于 2021-4-21 11:44 | 显示全部楼层
    商业引擎已经很好了,真的吗?
这是一个很经典的外行人的假设,游戏行业存在一条铁律那就是没有任何引擎是好用的,不管是商业引擎还是自研引擎。我已经听过无数来自同行朋友对UE4和Unity等商业引擎的吐槽了,之前在微软工作的时候Unity我自己也使用过2年。商业引擎看起来功能很齐全,但是实际使用起来你就知道有多少坑。


    研究她们然后在之上改进就好了,为什么还要费时费力去自研引擎呢?
这是第二个很经典的外行人的假设,绝大部分人严重低估了”研究“和“使用”大型商业引擎的难度。类似UE4和Unity这种商业引擎,代码量非常巨大,修改起来可能很困难,更别说还要在基础上研发新系统和新工具了。
工作流程虽然完善但是一个新的开发团队起码要完整经历至少两个项目才能称得上是稍微熟悉了这个引擎的特性,要知道很多团队根本撑不到做完两个项目。在你真正适应了一个商业引擎之后,你也离不开她了,当然这正是开发商们希望看到的。
Unity相比于UE4体量较轻,但至今没人成功证明她有驾驭大型项目的能力,CryEngine更别提了,懂行的都知道难用得让你哭出来。


    开源不是免费。
UE4,Unity,CryEngine这些可能拿到的商业引擎都不免费。
比如说UE4你要么在总收入达到3000美金后每个产品,每个季度给Epic 5%,要么跟Epic谈自定义的使用协议 ,一次性给清一个项目的费用。假如你的游戏爆火了卖了300万套,一套30美金,你自己算算你要给Epic多少钱。
AAA超大作动辄卖1000万+,这笔开销会很大。


    为什么用自研引擎?
历史原因:绝大部分中流砥柱AAA工作室都有自己的引擎技术积累,因为早年商业引擎并不是一个可获取选项。既然整个工作室和项目团队已经熟悉和适应了自己的一套技术,没有极度强烈的理由是不可能也完全没有必要去换引擎的,特别是成熟团队,换引擎的风险可能是致命的。一个很好的例子是2014年的龙腾世纪:审判,半路换寒霜引擎,开发团队差点没稳住。
自定义程度超高:因为绝大部分代码是自有的,所以想怎么改就怎么改 ,完全根据需求来做调整,开发效率非常高。如果依赖于商业引擎,特别是没有源代码的商业引擎,你的需求只能提交给引擎开发商,他们修改之后你再做整合,这个效率是很低的。
运行效率高:商业引擎因为要适应更广泛的用户需求,因此在设计和架构层面讲究通用和易扩展,通用的代价往往是丧失效率。自研引擎就没有这个问题了,完全可以为了效率放弃架构和设计的优雅。
技术壁垒:多年的技术还有开发流程的积累会形成无法比拟的独特优势,之所以国外的AAA工作室具有价值(值钱)和抗风险性,很大一部分原因是因为他们已经形成并且可以持续进化自己的开发积累,引擎和工具是这个积累的主要部分。
自研引擎的定义:现在没有任何一个有理性的团队会上来就说,我们要开发一个引擎,即使打算走自研路线,也往往会从一个可以拿到的引擎入手,随着项目开发慢慢改良。一个比较好的例子是Respawn当年成立开发泰坦陨落,就选择从Valve的Source引擎开始。


    为什么用商业引擎?
团队往往不具备引擎研发能力和资源:要知道游戏项目创业最重要的是游戏产品,而不是引擎产品,最有效率地把第一作开发出来对很多团队来说是极其重要的。游戏业界发展到现在,大概最愚蠢的事情就是从零开始写引擎了,没有一个非常成熟的团队至少几年的时间,这件事是天方夜谭,可惜很多经验尚浅的理想主义者意识不到这点。
商业引擎的易用性:商业引擎的用户体验和流程很多时候比自研引擎优良,bug也少,主要原因就是对于她们来说,引擎即产品,而非游戏。商业引擎的文档,教程,社区往往更透明,对初学者来说上手更容易。
引擎团队难维持:大型引擎的开发需要非常多经验丰富的业界老兵,这是时间沉淀出来的,特别在中国因为行业年轻这种人才很少,流动性也大,就算有自研引擎,如果不能持续维护,那很快就会丧失竞争力。


引擎的评估是非常有技术含量的事情,对游戏行业不太了解的朋友往往不知道引擎是怎么回事,再加上在中国也只有(手游端游)大厂才有开发和维护引擎的资源,在这方面的积累相对比较落后,只有靠产业的慢慢成熟一点点追赶。
发表于 2021-4-21 11:50 | 显示全部楼层
首先,引擎开源 != 改进省成本。
说的俗一点,商业引擎大多数是要恰饭的,要恰饭就要首先把平台兼容性放在第一位,追求高端放在第二位。可能这对于那些某“高端”开源引擎的“婆罗门用户”来说并不太能接受,但是这是无可争辩的事实,这就意味着,当你打开一个功能,里边每一个选项都有各种不同解决方法,为了适配不同的平台,举个例子,比如Virtual Texture,在最高端的DX12/Vlk平台,可以自定义Descriptor Heap来实现Bindless Texture(DX12)和Dynamic Indexing Texture(Vlk),甚至可以用虚拟显存,使用起来几乎毫无限制,然后次一点的平台就需要切换到Texture Array,就有了最大贴图数量的限制,再次一点的平台就要切换到2D Atlas,这回不仅最大贴图数量限制,甚至连贴图的分布也有了严格的限制,而假设我们讨论的是一个面向PC/Console的高端自研引擎,可能只需要考虑DX11和DX12,如果是主机可能连DX11都不需要考虑了,所以要改好这么一个功能,在知道原理的前提下,可能要修改屎山一样的商业引擎代码,比自己写功能要费事的多,实际上只要以功能跨平台作为重要目标,无论这个引擎的开发团队实力多么强劲,引擎代码最后总会不可避免的成为屎山,因为平台和平台之间总有一些情况是不能抽象的。
其次,有其他答主也提到,开源并不是免费,甚至还要支付高昂的分成。不过这也不是技术问题,就不展开讨论了。
最后,承接第一个论点,许多大厂自研的引擎,在技术进步方面也是一直在推进整个行业的,每年的GDC和Siggraph上在引擎工程方面总是会有许多干货值得我们学习,所以可见自研引擎的研发确实有很大的作用,对于有能力的游戏公司来说,自研引擎一直都是一个可选项,当然也不乏有一些没有足够的研发实力的公司和团队强行自研,最后沦为笑柄,所以这也是一个风险比较大的选项。
发表于 2021-4-21 11:58 | 显示全部楼层
一句话回答的话,看看最近的中兴事件。
稍微长一点的话:
    掌握核心技术,或者,形成核心竞争力。一线大厂的内制引擎在某些方面的技术往往是领先通用引擎的。而且就算通用引擎很先进,但是大家都能用,那么就很快会面临你有我也有的问题;当定制需求很多并且技术人员具备丰富引擎开发经验的时候,改别人的代码不见得比自己写一个来得快——这就像将一辆拖拉机改装成一辆F1赛车一样,虽然它们的架构也许是相似的;开源或者在协议下提供源代码的商业引擎,其收益模型往往就是有偿技术服务,以及对游戏销售利润的分成。引擎本身免费使用并不是不要钱。免费放出其实就是鼓励大家学习,是最好的广告。但是如果真开发出了好游戏,就会要交钱了。所以对大公司来说成本上也不见得比自研引擎便宜
在国内目前比速度比资本的蛮荒市场条件下,会有这样的疑惑是可以理解的。但是玩家是会不断成长的。当市场进入比品质的时候,大家自然就会理解自研引擎的重要性。
发表于 2021-4-21 12:04 | 显示全部楼层
主要优点是深度定制能力强,能自主掌握核心技术,不受制于人。


不太赞成其他答案提到的自研成本低的优势。在引擎开发的早期,项目少的情况下自研引擎的成本是更高的,而且在引擎标准化和文档化之前,成本一直都是居高不下。
经验丰富的工程师团队和引擎相关的美术团队都是需要大量时间和金钱培养和维护的,团队中新加入的新人要支付比商业引擎更高的培训和学习成本。
更重要的是,通常自研引擎的功能完整度、性能、稳定性、易用性以及文档化程度都难以在短时间达到商业引擎的水平,因此在同等品质的情况下,自研引擎的游戏制作周期往往都会更长。更长的周期带来的不仅仅是费用的增加,更有可能错过非常宝贵的市场机遇,这种损失是难以估量的。
自研引擎的研发需要长远的目标和持续高质量的投入,一般来说只有具有一定规模的公司有能力去做。从技术的角度上讲,自研引擎的上限会更高,更容易在市场上建立技术壁垒。但是对于无数的游戏作坊来说,活下来是第一要务,要在短期内将想法变现,往往就会选择现有的商业引擎,这是不同的产品需求决定的。
发表于 2021-4-21 12:08 | 显示全部楼层
经济角度上(开源 != 免费)看已经回答很多了,我就说说开发需求层面上的


商业引擎(或者任何不针对某一特定项目的引擎)是设计来满足市面上“常见”的游戏项目的,这表示商业引擎在其提供的功能集内总会有那么一部分长尾需求是没法满足的;更何况实际情况是商业引擎开发商雇佣的员工也是人,命中注定没法提供“完美”的成品(换句话说就是交付的功能系统里有很多坑)
而大厂的旗舰项目几乎是百分百不属于“常见”项目的,所以它们几乎百分百会遇到“想要的功能现有商业引擎不仅没有而且根本就没考虑过要做”甚至是“想要的功能和现有引擎在根本上互相冲突”的情况。在这种情况下,自己开发一套新引擎很可能是不得已而为之的事情;因为除此之外实在是没得东西用了。
然后,游戏行业里有个开发流水线的概念;一个项目一旦做完,开发人员之间可能就形成了一套固化的开发流程,然后自然而然地会产生出为了这套流水线开发的工具,以及在这套流水线下累积出来的素材。然后因为积累下来的人员培训成本和素材价值,这套流水线会产生惯性。如果公司活得足够长久,项目开发人员又足够稳定,这就会成为一个自我增强的正反馈循环,于是越来越多专门的工具被开发出来,最终成为一个庞大的新引擎。
另外,游戏业内的技术军备竞争其实是很惨烈的,有可能因为你做了一个别人没有的新技术,就借此让产品脱颖而出。所以到后面,自研引擎还很容易被上升到公司战略层面的高度,成为公司核心竞争力的一环。所以你看大厂都喜欢时不时放几个自家引擎的宣传片,秀一下肌肉。
这些宣传片呢,不止是秀给玩家看的,其实也是秀给同行看的;算是企业人力资源管理的一部分。归根到底,技术军备竞赛需要的是顶级的开发人员,而顶级的开发人员多多少少都有自己造轮子的喜好(或者说正是因为他们有这种喜好才成长为了顶级开发人员)。而造引擎嘛能算得上最吸引人的造轮子活儿之一了,所以通过对自家引擎的宣传,大厂就更容易招揽高级开发人才。
另外,一个公司/工作室里这样的开发人员多了,工程师文化就会变得浓厚,就容易出现一群人嫌弃现有的轮子不够给力要从头开始造新轮子的现象。有时候这种现象出现的很突然,比如一群人突然决定撸袖子大干一场直接造个新引擎;有时候则是润物细无声地出现的,比如本来某个项目是基于已有的引擎做的,然后开发人员决定魔改一下……再魔改一下……再……久而久之你突然就发现这个项目使用的引擎已经面目全非了,而这些功能已经很难再跟着原引擎一起升级了(一升级成百上千个报错,线上运营的项目你敢不敢这么玩?~),只能硬分叉出去变成一个新引擎。有时候这算是拥有高级人才的红利,有时候这属于不得不支付的成本。


所以归根结底就是:游戏作为一项软件工程,其需求太过于多元及复杂,以至于(几乎)不可能存在一个万能引擎来满足所有潜在的需求。
所以也就很好理解为什么总有人要自研引擎了。


以上属于“合理”的情况,下面开始是非正常情况:


难以估量现有自研引擎的价值。游戏引擎这种东西,除非是一方完全压倒性地更好,否则很难比对出一个绝对的好坏(看看Unity和Unreal用户之间的口水战)。尤其是自家的东西,细算就要牵扯上前面提到过的累积素材、人员培训成本和企业战略价值,更是一笔糊涂账。所以自研引擎这东西很容易就是“一旦开了个头就不得不一直自研下去”了。而如前面说的,就算你一开始用的是商业引擎,也可能慢慢做着做着就分叉出来一个新引擎,这个新引擎同样会出现这个“不得不继续自研下去”的情况。
开发人员犯轴。是的,总有那么些人,他们的乐趣就只是造轮子。一旦他们拥有项目决策的主导权,就有可能出现一个项目大半成本都花在造轮子(自研引擎)上的情况,因为坚持要自研引擎结果直接导致项目失败的也有(比如我就经历过)。
思维惯性。有些时候,公司之前使用的自研引擎在经历漫长的更改维护后构架腐化,导致其无法再继续更新维护下去了;但是决策/开发人员基于思维惯性,第一时间想到的可能不是去考察看看是不是使用某个已有的引擎,而是直接另起炉灶直接再做一个新的。某种意义上也算是犯轴,不过这个稍微……有情可缘那么一点点吧……
办公室政治。如果某位高管是靠某个自研引擎升的职,那么不管这个自研引擎是不是能在开发维护上跟上市场前进的脚步,以及这个引擎是不是其实已经变成了项目组/企业的负资产可能就不再重要了,它可能会因为办公室政治被不断强行续命。


题主问出这样的问题,我猜可能是因为其所感知到的属于上面的“非正常”情况……
如果不幸被我言中,做为各种非正常情况的经历者/受害者,在此表示一下深切的同情与哀悼……
发表于 2021-4-21 12:16 | 显示全部楼层
UE4、Unity3D等成熟的通用引擎,依旧可以满足大部分游戏开发公司和游戏开发者们的需要。各大平台上的标杆级作品有相当一部分的作品,都是由这些通用引擎所创造。这些通用的引擎具备了非常大的优势,更为透明的学习文档、遍布在各个社区的学习教程、更为通用的学习曲线,同时对于小开发团队来说,自研引擎更是难如登天。
制作出无数优秀游戏的虚幻引擎系列
但即便如此,为什么有不少的公司还要“头铁”,去开发自研的引擎呢?
自研引擎公司核心竞争力的体现

无论在美国还是日本,大规模的游戏开发公司往往都会研制自己的引擎,来证明自己的技术实力:
光育碧就有多个游戏引擎,比较有代表性的有雪花莲(代表作《全境封锁》系列)、铁砧系列引擎(代表作品《刺客信条》系列、《彩虹六号:围攻》)、Dunia引擎(代表作《孤岛惊魂》系列)。这些引擎分别实现了地图的无缝加载、光线的真实反射等特性,也让育碧的开放世界游戏开发得效率更高、发售节奏也更为平稳。
EA则是有大名鼎鼎的寒霜引擎。经过几次迭代,目前寒霜引擎除了DICE工作室看家法宝《战地》系列之外,也应用到足球游戏《FIFA》系列之中,而其出色的光影效果以及逼真的物理破坏效果,一直都被玩家所称道。
寒霜引擎logo的演化之路
贝塞斯达也有Creation引擎,创造了《上古卷轴5》、《辐射4》等名作,未来的《星空》《上古卷轴6》也会通过Creation引擎的升级版来进行游戏开发。
日本厂商也是如此。虽然科乐美的主营业务已经与游戏行业渐行渐远,但当年小岛秀夫所率领的小岛工作室,开发的FOX引擎也成为了科乐美游戏开发的主力。《合金装备5:幻痛》自然不必多说,而后续的《实况足球》系列一直以来都得到了FOX引擎的支持,并在《实况足球2020》有了长足的突破。
史克威尔艾尼克斯也有夜光引擎,虽然这个引擎经历了不少的波折,但就技术表现而言并不差,目前SE主力开发引擎UE4想必也是一时的选择,后续会把公司的开发资源,陆续地倾泻在夜光引擎上。
卡普空近年来一扫当年的阴霾,新作品接踵而至,这也得益于RE引擎和世界引擎的成功开发,大大提升了新作开发速度。
索尼旗下的工作室,也均有各自的开发引擎,来进行AAA级别的游戏的制作。
因此,我们完全可以把游戏引擎的开发作为一个游戏公司核心技术的体现,就像计算原件中的芯片一样,有着举足轻重的作用。
唯效率论

实际上,无论是UE4还是Unity3D,这些所谓的开源引擎,一定程度上影响到了开发效率。除了经济(引擎开发商抽成)原因之外,更主要的原因还是在于“效率”上。
一方面是有些通用引擎,游戏开发者并没有引擎的源代码,对于定制化的需求无法满足,只能找到引擎的开发商;另一方面,这些通用引擎很多内容是“大而全”的,一个团队或许用不到很多功能,因此会造成功能上的浪费和效率上的减损。
归根结底还是在于效率——经济的效率,引擎的研发费用可能被持续不断的作品推出而抹平;开发的效率,自研引擎显然更为适应公司内部开发组,也更适应游戏最开始的企划书,这对效率的提升极为明显。
最为典型的例子就是卡普空。卡普空经历了多年的沉寂,终于通过《生化危机7》和《怪物猎人世界》而奋起。后者更是有卡普空自研的“世界引擎”单独服务。我们可以看到《怪物猎人世界》持续的更新内容,并在今年9月发布了系列的资料片《冰原》。而卡普空也通过自研的RE引擎,成功地在一年内推出了《生化危机2重制版》和《鬼泣5》这两部作品,可以说游戏的发售节奏与当年简直不可同日而语。《生化危机》系列的最新作品,《抵抗企划》其中的英文单词——Resistance,RE两个字母还特意标红,也象征着本作也是由RE引擎进行开发的。短短的时间内推出好几部作品,由此可见一个出色的自研引擎可以大大提升开发的效率。
《抵抗计划》所标红的“RE”,就代表这RE引擎
前文已经提到了EA的寒霜引擎,不光用来制作《战地》、《圣歌》这种射击游戏,还用来制作足球游戏《FIFA》系列,随之为球场带来更为逼真和动态的天气效果,大大提升了游戏的体验。除了这几款游戏,EA也用寒霜引擎开发了《星战前线》系列、《植物大战僵尸:花园战争》系列,乃至《龙腾世纪:审判》,甚至还有手机游戏《植物大战僵尸2》,可以说应用范围极其广泛。
而育碧通过改进弯刀引擎,所打造的铁砧引擎,随着逐渐地迭代升级,囊括了整个《刺客信条》的全系作品。《刺客信条》已经不再一年一部,但是更多是在于商业上的考量,而不是开发进度上的,因此我们可以看到,因为铁砧系列引擎,育碧对于《刺客信条》的开发已经游刃有余,保证游戏的出品效率。而《彩虹六号:围攻》《荣耀战魂》等作品,也同样出自铁砧引擎。
史克威尔艾尼克斯的一系列开发事故,也可以当做夜光引擎的不成熟所导致的。《最终幻想15》的开发困境,《王国之心3》的更换引擎,这些事件的矛头除了一些内部关系原因之外,更主要的是引擎方面的不顺手。因此,目前SE旗下的游戏开发节奏并不理想。但随着夜光引擎逐步得到完善,相信SE在后续的游戏开发中会逐渐找到开发节奏,创造更多游戏。
对于一款游戏开发来说,可能效率比游戏自身的创意,显得更重要一些。因此,自研引擎显然很重要。
国情:打破国外云游戏的技术围剿

对国内的游戏开发者来说,我们可以在本世代深切地感受到单机游戏在设计趋势上并没有过于革命性的进步——AAA级作品已经在电影化叙事、RPG化和开放世界化三条道路上狂奔。但对于国内厂商来说,技术层面的差距依旧非常明显。国内相对于这些大厂的优势就在于,在移动端交互层面的研究可能更为透彻,也依托于大量的移动市场,获取到不少的经济效益。
但值得注意的是,目前索尼、微软,乃至谷歌都在着力发展“云游戏”。当我们在探讨云游戏的本质的时候,就需要认知,云游戏的初衷是打破硬件运算性能的禁锢的。其中一个使用场景就是把手机作为载体,去玩主机游戏。这方面,微软已经开始逐步实现了。但目前由于手机与主机交互存在很大的区别,用手机玩主机游戏很大程度还需要外接设备,来实现多键位的操作。
外接手柄显然不是常态化的交互,但手机屏幕仅作为载体值得警惕和深思
如果我们再往深了探讨,云游戏致力于打破硬件的禁锢,而把手机作为一个展示载体,而并不是运算的核心;那么通过云平台和高速的移动网络传输,以智能手机为交互核心、但拥有主机画面的游戏开始逐步出现,抢占那些以智能手机为运算载体的游戏的市场,这样就会对目前既有的市场态势造成不小的破坏。
因此,这些国外的厂商依托于自研引擎和强大的技术积累,一旦通过云游戏的手段,制作出来大量的拥有主机级别画面、但有手机交互界面的游戏,那么国内手机游戏目前的市场红利,很有可能会得到非常巨大的冲击。
在目前网络传输暂时无法大规模应用云游戏、同时国外大厂并没有开始对互动游戏、手机游戏的既有环境进行冲击的时候,国内是非常有必要去进行自研引擎的研发,去找到更适合国内开发者的游戏引擎,提升游戏的开发能力、开发速度,逐渐缩短与国外大厂的技术短板。等到云游戏全面落地之时,真正与那些大厂扳扳手腕。
而我很庆幸看到了这样的趋势,近期的TGDC上就有《无尽法则》的主程唐骏分享了自研引擎开发和使用的过程,也让我感受到了国内的游戏公司在引擎开发的长足进步。
《无尽法则》一在海外发售就得到了不少玩家的青睐,知名游戏媒体IGN更是给了8.5的高分。而这款游戏的自研引擎对这款游戏的高素质提供了强有力的保证。游戏一方面实现了海量破坏物,这个颇有点EA寒霜引擎的特点,游戏引擎还实现了把破坏场景第一时间同步给服务器中的所有玩家;而了另一方面游戏也加入了训练模式,对可破坏物件进行标注,优化了物理引擎,并提升了服务器的使用效率。也就是《无尽法则》的自研引擎,在物理碰撞方面,既增加了可破坏物件的量,又提升了整个引擎的运转效率,没有实现计算空间的浪费。
《无尽法则》引擎效率取得了长足的进步
除了场景物件之外,引擎还在移动模拟方面做出了很大的努力。做移动模拟很大的程度是为了有效地杜绝外挂的产生,而游戏中还有大量的跳伞、钩锁的动作,尤其钩锁的快速拖拽,很容易让外挂趁虚而入。为了保持长距离拖拽这个运动的处理一个合理的运动取向,游戏引擎通过用客户端同步数据外加服务器运算这两种方式,并采取离散的方式附加一些附带参数,来解决位置移动的问题。还有就是利用延迟补偿,也就是服务器的滑动窗口来减少第一方的拖拽,并用累积校验来精确使玩家的速度控制在一定的合理范围之内,用过引擎来达到反外挂的效果。
而TGDC上也有天美工作室的郭智总监分享了《使命召唤手游》的引擎中台开发。通过这次技术分享,我们可以看到国内优质的游戏制作组,已经把不少的端游、主机平台游戏的引擎技术,合理地适配到移动端,并开发自研的引擎和中台,为手游实现更好的展示效果。更难能可贵的是,国内开发者在开发引擎的过程中,已经充分意识到引擎的开发是跟着项目组的节奏来,与项目开发进度齐头并进,既不超前造成资源的浪费、也不落后满足不了当下的需求。这样的引擎开发节奏才是最令人欣喜的。
平心而论,目前国内的引擎开发,与国外的游戏公司仍然有很大的差距。但是诚如唐骏老师所言:“只能先做了再说”。如果不做,技术之间的差距愈发加大不说,如果通用引擎对泛用性收紧,或是增加分层比例,到时候国内厂商届时肯定会“哑巴吃黄连”。毕竟“割韭菜”这事儿并是不国内的专有产物,而是互联网经济下,通用的经济规则罢了。
最后我很庆幸,国内依旧有出色的工作室在开发自研引擎,去增强自身的技术实力,甚至有预见性地要对抗未来国外厂商在云游戏的浪潮下对既有手游格局的冲进。尽管我们的技术仍有限,但是这种奋进和警惕,才是我们游戏开发者们真正需要的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-4-21 12:18 | 显示全部楼层
发表于 2021-4-21 12:20 | 显示全部楼层
说说我们做引擎的原因吧。做游戏其实是一件非常难以成功的事情,大部分游戏创业的公司都是默默无闻的死掉了,游戏的价值也无法得到体现。而游戏引擎就不一样了,引擎的价值可以得到快速的认定,虽然不能产生直接的利益但是对团队建设、融资都有很好的铺垫作用。所以我们在开始做游戏的时候就决定要自研引擎。整个引擎的开发周期压缩来看也就是1~年的时间,这部分时间还是值得,最终我们把引擎最好了。如果我们最后死掉了,那么游戏肯定是无人问津了,但是引擎还可以继续流传下去,如果有人继续为之注入力量或许还能够发扬光大。
如果感兴趣,可以试试我们的引擎(2D): korok.io  下面是我们正在做的游戏,小蝌蚪系列。


https://www.zhihu.com/video/997925150414823424
上次更新的时候还是7月份,现在我们的两款游戏已经上线了。
Shoot Stack - 射击栈:AppStore  GooglePlay
Unstable Tower - 不稳定之塔:GooglePlay iOS版本近期上线
认真的说这两款游戏的质量都不是太高,算是试水的作品。在没有上线的游戏之前对自己对引擎对这份事业都是模糊的,上线之后心里踏实多了,就像玩游戏的时候练一个新英雄总要上前线放几个技能、杀几个兵或者捡个人头才能真正的学会这个英雄,创业亦如此。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-6-1 06:33 , Processed in 0.099243 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表