下一个十年,游戏引擎技术会如何发展?

图片:Pixabay / CC0 下一个十年,游戏引擎技术会如何发展?

大钊,UE4源码剖析,等编译的时候回答问题

年末了,我也来梳理一下,当了虚幻引擎的社区经理有大半年了,平常跟着大佬拜访了很多大小公司的各种大佬,见识到虚幻引擎的各行各业的客户。从以前自己一个人闷头做游戏,到这回见了世面了,因此有了点对引擎发展的感想,想跟大家分享一下。

首先摆上利益相关:我是虚幻引擎的官方社区经理。回答里当然会拿 UE(不写 UE4,因为 10 年也许有 UE10 呢)来讨论,认为是尬吹的可以不看,看完觉得说的有两分道理的可以点个赞。提 Unity 的地方是我的个人见解,是我的主观喜好和判断。

在科技领域,预测总是比较困难的,何况是十年这个维度。我依稀还记得我在 2006 年的时候,买的第一台电脑内存是 256M,2008 年买的 U 盘是 128M 的,那个时候我是肯定想象不到在十年后 PC 硬件会发展成什么样子,也绝对想象不出游戏竟然可以光追渲染。所以以下的内容,我想放肆的开开脑洞,但尽量言之有物。

------------------------------------------

游戏引擎的最终目标是创造世界。

如果未来人类发展成黑客帝国或者黑镜里那样,人类生活在虚拟世界里,那你有没有想过,这个虚拟世界将用什么工具来开发?这可是创世,而不是简单的像现在这样编译出一个程序来运行。

你环顾一圈,目前可预见的发展路线,也只有游戏引擎有这个潜力发展成创世工具。未来的未来,人类可能经常会体验各种极真实的虚拟世界,就像我们现在经常玩各种网游一样。世界是极复杂的,所以游戏引擎也必将是极极复杂的。

这个目标可能 1000 年都没法达成,但我们知道终点方向在哪,会有助于你思考近 10 年的引擎发展趋势。 在迷雾中看到了山顶,思考便有了根据和方向。

一,游戏引擎不止做游戏。开篇明义的第一点,也是最重要的。现在生活压力福报大,分工越来越细,人们可能会越来越专注于自己的一块领域。做手游的,就像我以前,生活里可能完全不会去关心楼盘的工程建筑,也不会去看相关的内容。读者老爷们可能来自各行各业,都有自己擅长的点,但如果站在一个更高的角度往下看:十年前游戏引擎绝大多数只是用来做游戏,其他行业各自都编写特定领域的软件。而十年后的现在,你开始发现游戏引擎在其他非游戏领域遍地开花,然而目前还只是趋势!从现在数十年后,我敢说其他行业会大大的被游戏引擎给降维打击,原先的工作流和软件,都会陆续的转向围绕游戏引擎而架构。

这是历史发展的趋势,也是科技的需要,更是竞争的结果。这个过程它可能慢,但不会被阻挡。这不是某些人员坚守传统流程不走出舒适区可以改变的,如果自己不革自己的命,就会被别人给革掉自己的命。

极复杂的虚拟世界里肯定不止蹦蹦跳跳砍砍,也必然伴随着各行业的模拟,所以游戏引擎对其他行业的包容渗透也是必然的趋势。

那这个对游戏引擎的技术发展演变有什么影响?影响大了。你本来只是用来做游戏的工具,现在开始要兼顾其他行业的各种需求了,你的整体架构工具流就必然会被影响调整适应。社会生产力在这个过程中不断提高,游戏引擎也在这个过程中不断进化自己。

我不知道是 UE 高瞻远瞩看到了这个趋势,还是客户的需求反向促使 UE 进化,目前 UE 在非游戏领域涵盖的业务范围笼统可分为:

  • Automotive,车辆生产展示,车屏交互。围绕车的一大串行业。
  • Media&Entertainment,媒体娱乐,包括广播电视影视漫画等。出片子让你看的一堆公司,包括央视。
  • Manufacturing & Simulation,制造模拟仿真,生产厂房的模拟等。
  • Architecture/Engineering/Construction, 工程建造,盖楼的。

目前的 UE4 每个版本的迭代,都有一大块都是为了满足这些行业的需求的,比如 Datasmith,Multi-user editing, Pixel-Streaming 等。这些功能游戏行业当然也都可以用,但非游戏行业也受益良多。连目前 UE4.24 新项目模板都专门为各行业做了个分类,足见影响变化之趋势!

总结一下本点,游戏引擎未来因为不止做游戏,所以技术架构必然会演进来适应各行业。能适应的站着,不行的躺下。

具体到未来 10 年,我认为可能会出现以下这些标志事件:

  • 第一部完全由 UE 实时渲染输出的电影在院线播放。可能是先输出影片然后播放,也可能是直接在院线里实时运行还可交互。
  • 一栋楼的施工建造过程完全由 UE4 做的软件来模拟评估监管。
  • 一个城市的实时大数据,细节监测每个人和车辆等信息,可能都会由 UE4 来做可视化跟踪。
  • 一辆车辆的生产设计模拟,都在 UE4 里完成。车辆行驶在路上,屏幕上也是 UE4 做的效果屏幕,后台用 UE4 来做可视化管理。
  • 广播电视里出现第一个商用实用的数字人主持。
  • ……

二,可编程化。你这不是废话吗?游戏引擎本来就是给程序员用的,当然要编程了。但请注意,我这里说的是,游戏引擎的每个环节都将引入更多的可编程化。

举个例子你就明白了,10 年前或者现在,你把模型或者图片导入到游戏引擎里,不管你是用什么方式,这个导入过程你是已经写好的,顶多暴露一些参数来让用户选择。其他引擎里也大都是这个过程,弹个框来让你选择一下之类的,大同小异。这是固定管线时代。图片的是 UE4 里 Datasmith 的导入框,其他 fbx 导入大同小异。

固定管线在需求简单的时候可以满足,一张贴图你也导不出多少花样来。但随着游戏引擎应用范围急剧扩张,要导入的数据集合的规模和复杂度也成倍增长。固定管线就落后于时代的需求了,接着就必须走入了可编程管线时代

下图演示的是 UE4 里还处于 Experimental 的 DataPrep 功能,它可以允许你定义各种节点来定制化你的导入流程,中间可以做一些 Mesh 合并,剔除,法线校正等更高级功能。目前当然还处于比较初级阶段,但你已经能够感觉到这种思想趋势了。

有同学可能会说,那 UE4 里现在也可以用 Python 来做导入流程啊。是这样没错,但有多少非程序员会写 Python 的?一个工具不够易用就没法推广开,就形成不了主流,就改变不了行业主流工作流。所以从这点来说,DataPrep 绝对潜力巨大,未来不知道在里面能玩出多少幺蛾子。

我特意拿资源导入来举例,因为它在游戏开发过程中份量足够小,足够令人忽视,常常也就拖拉一个文件的事。但你发现没有,恰恰是这种人微言轻的小环节,已经开始在进化来拥抱可编程化了。所以可编程化必将蔓延推进到游戏引擎的各个环节。

还不服?再举两个更明显的例子:

1,粒子系统,以前是做好一个界面,你组装各个模块调调参数,以前大部分游戏引擎也都是这样吧。UE4 里的 Cascade:

现在呢,开始陆续进化到 Niagara,允许你为每个粒子编写逻辑了!

2,物理引擎。我知道大家都在用 PhysX,或者 Bullet,甚至 Box2D,但大家发现没有,你作为一个开发者,你一般做物理效果的时候,也顶多是配一配属性,而这些属性都是由物理引擎事先定义好了的。你会深度介入到去处理物体碰撞破碎的逻辑吗?一般不会。为啥?太难。有这需求吗?有。

到现在,你依然会发现,市场上依然没有一款物理智能的游戏。NPC 只会躲在你事先设计好的掩体后面,而不会智能的去躲在生成的碎块后面。游戏里物理的碰撞,基本很少根据游戏的玩法过程而变化。

为什么是这个现状?是因为我们对物理引擎介入的太少!物理引擎对于一般人来说,依旧只是个黑盒子,配配参数,也依然是固定管线时代。不要跟我抬杠说有大神也可以自己定制物理引擎而实现这些效果,还是那句话,没有易用的配套工具流就注定没法被大多数人接受,就不是行业主流趋势。

所以你猜为什么 UE4 会那么辛苦自己重写物理引擎,费劲搞出来一个 Chaos!提供了更多的易用工具来让开发者编程定制化物理过程。Chaos 正在艰难走进可编程管线时代

重写物理引擎造轮子技术难度那么大,又那么费劲,你看 Chaos 从发布到现在依然还没有正式版,UE4 引擎团队不缺牛人,你就知道这工作量有多艰难了,我直接用 Havok 它不香吗?

但变革总得由人来触发,改变总是伴随着风险,你不做我不做,事情总得由人来做。我吹 Epic UE4 就这一点,你别管 Chaos 它现在如何,但他敢做,敢探路,敢给游戏引擎行业物理引擎另一种可能,他就值得被称赞!

呃,话说回来,Chaos 未来的潜力,正在释放越来越多的物理引擎可编程性出来。

3,不举了。再不理解,就且用且看吧。归根一点,以前你觉得已经 OK,想象不到的一些引擎流程,未来都可能引入编程定制化,比如光追。

三,分布式化。有些小伙伴提到了云游戏,但是其实在游戏引擎技术方面,云游戏是现在就已经实现的技术,受限的是网络环境的带宽和延迟。假如明天 5G 就全面普及,利用 UE4 现有的 Pixel Streaming 技术,我相信很快市场上就会出现一批云游戏。

这里的分布式化,我指的是将整个游戏引擎搬到云上,开发者直接连接到云上面开发,一个编辑器同时支持多个用户协作。而不是现在这样每个人的机器上都得安装几个 G 的的引擎本体。这样有多个好处,比如资产托管云上可以更安全,协作更方便,性能可以更高效。

目前来说,UE4 的 Multi-User Editing 有这个苗头,但还远远不够,我们静待带宽提高之后的技术发展吧。

笼统上来说分布式化带来游戏引擎技术的改变主要是这些方面:

  • 引擎模块分布式部署。比如编辑器功能、光照烘焙、打包等可能是云上不同机器的不同进程。
  • 渲染资源的分布式。游戏引擎可以对接多台机器上的多个显卡来进行渲染。
  • 出现一批游戏引擎中间件,如 Improable 的服务器,或者 Epic Online Service 背后的服务等。

四,格局清晰化。游戏引擎行业的竞争格局划分会越来越清晰,会找到各自的擅长领域,然后放弃另外部分。据我个人道听途说的了解,不保证完全正确,也不负任何责任:

1,Cocos2dx。现在的 Cocos2dx 主要是用来做一些 H5、棋牌类或轻量 2D 游戏,以轻量包定制化赢得一片市场。虽然 Cocos 挺早以前也想做 3D 游戏市场,甚至也做了 3D 编辑器功能,但无奈的是开发 3D 引擎所需要的家底实在是太大,技术门槛太高,所以再进行投入追赶也很难赢得市场的信任。所以未来我猜依然是在原有领域坚持。

2,UE4。目前发力的点在高端市场,你会发现在市场上,提到想要效果好,就是 UE4;而同时想要成本低向下兼容,就看各家的技术本领了。所以在国内影视动漫行业才越来越多的 UE4,国内的广播电视台也都是 UE4,还有上文提到的企业领域,这些其实都是想要高大上效果的业务领域。本家游戏方面,主机游戏,高端 PC 游戏,高端手游这 3 个业务也基本上都转换到 UE4 了,受了效果好和开源的诱惑而已。

那 UE4 不太行的领域在哪?Web 和 2D。早期 UE4 其实也是兼容 H5 平台的,现在的 Paper2D 也是能用来做 2D 游戏的,但实话说不能尬吹,在低成本和向下兼容方面确实目前还比不过隔壁的 Unity。所以留给 UE4 就有一个问题,是否要继续花大人力在这些模块上维护升级?我猜可能不太会。UE4 不可能在每个领域与别人竞争,引擎团队也维护不来,索性放弃了反而还可能让引擎更加的干净。UE4 只要守着自己高端的品质招牌就不愁没饭吃。

3,Unity。在宣传上,手游商店里大量的手游都是以 Unity 做的。在手游这个市场,又加上国内这个环境,我是完全同意这个说法的。但你如果细看,就发现手游市场目前其实是大量的偏 2D 游戏和弱 3D 游戏,准 3A 的游戏寥寥。用 UE4 做的手游当然也有,但更多是偏向高端大世界的游戏,这种游戏大投入长周期注重高品质,因此数量和开发人员你见得就不多,大多都是在大厂里。

模拟经营,SLG,卡牌、氪金,是国内手游市场的主流。大量的这种游戏在国内更能生存,就有大量的这种游戏开发公司和开发者,所以 Unity 在开发者人数上是不缺的。还有一类是 PC 上的独立游戏,可能是独立游戏的风格和成本本来就趋向于低端,又或者是开发者原本就是用 Unity 做手游的技术栈,独立游戏倒也挺多是用 Unity 做的。所以未来的 Unity 引擎肯定会更抓稳 2D 和中低端 3D 的相关技术升级。

那 Unity 不太行的领域在哪?高端 3D 和开源。我以前说过一句话,UE 在努力的向下兼容,而 Unity 在努力的向上攀登,但终将他们都会发现还是做自己比较好。Unity 其实也非常想要高端游戏和企业的市场,它也在努力的开发各种高端渲染功能,也在做类似 Sequencer 的影片输出异教徒,也开发光追渲染汽车。努力了就一定会有一点回报,但有时候基因决定了你的上限。

我个人觉得,Unity 最初的手游市场成就了 Unity,但也限制了 Unity。就像 UE4 没法在引擎源码里为了向下兼容 2D 和 web 而大改造或者放弃高端管线一样,Unity 也没法为了想要高端市场就放弃引擎里的低端优化。低端和高端,在技术上是有本质的不可调和的矛盾的,所以一家引擎商基本不可能同时占据这两者,即使它看起来像。有些人肯定要跟我争论说,你看 Unity 也出了好的技术,也出了好的演示,你咋就说不行呢?技术做是肯定可以做,但不能长期做,因为成本会比竞争对手高。

另外也是 Unity 的商业许可方式不太可能自己颠覆掉,软件闭源订阅的方式其实价格很低,但面对央视军工等不差钱的主,就没有任何优势了。他们关注的更多是开源可定制。Unity 不开源其实就意味着所有行业就只能等 Unity 做好功能来用,极少有人会项目还没开始做就买一套 Unity 源码来定制。但你要让 Unity 自己革掉自己的命,就更不现实了。所以这种需要开源定制的市场 Unity 是注定吃不到的。另一方面,Unity 现在的收入大头靠的是广告,依赖广告就必须要有大量的广告商和展示游戏,因此会更注重游戏的量而不是质,公司的大头靠什么赚钱就会更注重什么,所以在未来的 Unity 引擎发展过程中,一面是立马的现金流大头中低端游戏,一面是追赶对标 UE 的高端功能收益还比较少,出现抉择的时候,也肯定会倾向于前者。

综上所述,我认为 Unity 未来会继续巩固 2D 和中低端 3D 的市场,会继续推出各种向下兼容的优化技术,也会继续推出一段时间的高端功能做做样子来竞争对标 UE,但终将分心乏术而一年一年越来越少新加 3A 功能,但嘴上肯定还是会很硬……。

4,In-House 引擎。有一批会继续自己玩自己的,通用游戏引擎当然不可能覆盖所有的需求,因此就有了他们的空间。但也有一批会投向第三方通用游戏引擎的怀抱,因为你会发现游戏引擎变得越来越庞大,已经不是寥寥几十个人能玩的游戏了。现在的十年前,我一个人也可以开发一个玩具引擎。现在的十年后,100 个我加上个你,也没法自己搞引擎了。因此,在技术方面,它们这些引擎开发实力强的会继续把玩自己的工具,而弱一些的就会考虑在其他引擎上面开发插件来适配自己的工具流。

总结一下,本节我的观点是由于游戏引擎市场竞争的格局清晰化,大家会逐渐找对自己的位置,从而在游戏引擎功能集合上深耕自己的擅长处,适当放弃自己的薄弱处。

五,AI 智能化。我大胆预测,AI 学习会强势介入游戏引擎。利用机器学习来改进图形渲染目前就已经有在研究的,也有利用 AI 来驱动动画的。未来十年,机器学习这股风会吹到游戏引擎里更多的模块里去,也会远比现在更普及。现在开发游戏的 AI,用的是你自己编写好的行为树,十年后你可能会用 AI 去训练出来一个 AI 来当你游戏的 NPC。游戏运行的整个过程中,有 AI 在不停采集你的游玩数据来调配图形渲染参数。游戏里的骨骼动画,是靠自适应的 AI 来驱动的。甚至连游戏的文本对话,也可能是 AI 生成的。当然这些不同的 AI,也很可能是运行在云上的不同的 AI 提供商来支撑。

六,光追成为主流。对于这点,有人比较悲观,有人比较脑洞大,比如我。我觉得十年后,光追的游戏就跟现在的 PBR 光栅一样是标配了。理由一方面是再过几年,玩家新买的显卡肯定都是支持光追的了,普及度到了一定级别,开发者开发游戏,从一开头就可以为光追打造场景素材和设计了。游戏引擎厂商在光追的技术改进上也有了 10 年的积累,足以做大量的事情。当然就跟现在手机上 PBR 依然是扭扭捏捏一样,10 年后手机上光追,也可能会出现,但我觉得因为手机的体积限制,手机可能就走向连接云的道路上去了,手机上光追可能还不如上云游戏。

因此基于这点,游戏引擎在十年后的主渲染管线可能由现在的以延迟渲染为中心转向以光追为中心了。

--------------------------------------------------------------

最后总结,十年说长不长,说短不短,我不懂技术,只能跟大家分享一些大而空的个人见解,必然有争议的地方,不用置气,未来十年后咋样现在谁也不能打包票,我也肯定会错大部分。十年期间,也非常可能出现一些魔幻事件,某些人作死,某人说一句话等原因左右整个局面,所以上文所说不必当真。

重要的是分享一些我的思考,供大家借鉴。

有关于 UE4 的任何问题或需要帮助支持的欢迎来找我,因为我就是本身乐于做这件事才来当社区经理的,所以不用客气。

迫不及待给大家拜个年,祝你学习 UE4 的过程一帆风顺!能赶得上 UE4 的更新速度!