2019年5月24日
了解Drifter Entertainment如何运用巧妙的优化使《Robo Recall》登陆Oculus Quest
尽管系统规格大大降低,《Robo Recall:Unplugged》的游玩体验却与Rift版不相上下。也就是说,这一版本的游戏仍然拥有和原版一样多的敌人、物理效果和立体声效果。更加惊人的是,Drifter Entertainment只用了7个人,就在短短6个月时间里做到了这一切。为了了解这家工作室如何取得如此成就,我们采访了技术总监Matt Tonks。在我们的讨论中,这位Drifter Entertainment的开发者概述了团队必须克服的挑战,详细说明了哪些优化可以得到最大的性能增益,并分享了一些Quest开发诀窍。

你可以介绍一下Drifter Entertainment是如何承担起开发《Robo Recall》Oculus Quest版的责任的吗?
技术总监Matt Tonks:既然Quest的重点是实现Rift式的游戏体验,那么让《Robo Recall》登上Quest显然就是Oculus非常乐意看到的事……《Robo Recall》是Epic做的游戏。你也许能够想象,我觉得不管让谁来做移植工作,他们都会觉得有点不好意思。好在Drifter和Epic关系很好,而且有十多年共同使用(和开发)虚幻引擎的经验,这使我们成为完美的合作伙伴,有助于铺平道路,展示虚幻引擎在Quest上能够实现的效果。
从游戏性的角度来看,《Robo Recall》的Quest版本和Epic制作的Rift版本有多接近?
Tonks:我们可以自豪的说,两者的游戏性几乎不相上下。我认为当人们第一次听说这个游戏要登陆Quest时,他们都会猜测游戏里的敌人会变少,物理效果会变少,破坏会变少,一切都会缩水。我要郑重的告诉你,事实绝不是这样。我们已经竭尽全力确保我们所做的任何事情不改变原版游戏的感觉(或得分能力)。敌人的数量没有变,武器的威力没有变,原版中各种基于物理的炫酷动画特色都保留了下来。本来我们曾经担心,也许需要砍掉一些东西才能让游戏以稳定的帧率运行。幸运的是,我们对于保持游戏性的执着获得了回报,我们不需要进行任何缩水。

考虑到《Robo Recall》最初是在Oculus Rift上发行的,它需要一台比较强悍的游戏PC,工作室是怎么做到让这个游戏在Quest性能低得多的移动处理器上运行的?
Tonks:简单说来就是:花了很多功夫。预先了解游戏的目标设备的确切能力是很有好处的。这主要是因为我们立刻就能知道哪些内容能够在Quest上运行,哪些需要修整、重新设计或重新制作。在为PC制作游戏时,你不一定要担心关卡里的建筑物是怎么做出来的,或者你的各个角色身上有多少零碎组件。所以,最初我们做的许多工作基本上就是“这东西有40个组件,但我们可以用3个组件得到同样的结果”。我认为很好用的资源优化老办法和给各种玩法系统减肥起的作用是相等的。最后一个环节就是对引擎进行微调,尽我们所能榨干CPU和GPU的最后一点能力。
《Robo Recall》里有许多慢动作子弹和可投掷武器之类的玩具,因此涉及大量物理效果。实现这个游戏的物理效果很有挑战性吗?
Tonks:在我们给物理引擎专门安排出一部分CPU算力,并且解决了一些因为移植到Android而产生的小bug之后,事情基本上“就成了”。不过还需要费一些功夫来简化游戏中一些物体的物理复杂度,减少一些物理引擎的负担。

Drifter Entertainment是否复用了现有的资源?还是说工作室不得不重新创建许多资源?
Tonks:我们尽可能复用资源,这样既可以减少开发成本,也可以保留原版游戏的风味。大多数资源在导出之后都是根据Quest的规格作了大量优化的,不过我们保留了很大一部分静态资源。
Drifter Entertainment曾经提到,多视图使工作室能够尽量发挥出Quest的GPU的性能。你能不能详细说明一下它的工作原理?工作室又是如何利用它的?
Tonks:多视图是一种为了转移渲染游戏立体图像的成本而设计的技术。为了让人眼感受到景深,需要对游戏进行两次绘图,每次分别针对一个眼睛。通常这会使每一帧的渲染时间增加一倍。多视图是一种聪明的方法,将渲染单眼视图时涉及的部分工作复用于另一只眼睛的视图。通过利用多视图功能,我们实现了更接近于原版的整体外观。
考虑到硬件预算,在制作图形效果的同时整合立体声音频是否也很有挑战性?
Tonks:最初我们对这个问题也有些担心,但幸亏有Epic Games首席音频程序员Aaron McLeran和他的Epic团队为优化Android版《堡垒之夜(Fortnite)》所做的出色工作,这个问题最后轻松解决了。UE4上的音频系统确实有了很大进步。

最大的性能优化挑战是什么?
Tonks:让我们一直忙到最后的两个问题也许就是绘图调用和着色器复杂性。你可以想象一下,Bob Ross在画着游戏的每一帧画面,而你必须明确地告诉他要画出每一棵欢乐的小树,那么你就会发现自己要长时间地坐在他旁边,告诉他,“好的,现在在那里画一棵树,然后是那里,然后是那里。”每棵树就好比是为了在屏幕上绘出一个特定物体而发给GPU的命令。原版的《Robo Recall》通常在特定的一帧画面中需要进行1000次左右的绘图调用。Quest要保持同样的帧率,只能处理这个数量的四分之一左右。所以我们不得不花费大量时间在游戏的各个关卡中进行处理,合并一些网格体,或者移除不可见的网格体,或者找到其他聪明的办法来减少我们必须要求“可怜的Bob”绘图的次数。
我前面也提到过,另一个难题就是着色器的复杂性。原版的《Robo Recall》是针对强悍的GPU优化的,整个游戏中有大量成本非常高昂的着色器。我花了许多时间追踪所有这些着色器,替换为成本较低的材质,它们没有那么复杂,但是能得到大致相同的视觉效果。
哪些优化为工作室带来了最关键的成本增益?
Tonks:如果一定要我指出影响最大的一样,那么我也许会选择Drifter Entertainment的美术总监兼创始人Kenneth Scott完成的出色工作,他把所有角色和武器的网格体都移植到了这个平台上。对于在一定预算内制作出惊人视觉效果的工作,Kenneth可是老手,他的这种专长在这里起了很大作用。
FFR(固定注视点渲染)帮助我们解决了一些成本比较高的场景。我们最后采用了动态的做法,根据当前场景中的GPU负载来选择要在多大程度上采用FFR。
其他值得一提的工作是利用和调整HLOD(层级细节级别)系统来减轻远方物体给GPU造成的负载,设置预计算的可视性(因为Quest并不支持硬件遮挡),以及在游戏中大量使用网格体合并/实例化。

听说Quest版移植只花了4个月,这是真的吗?一个比较小的团队怎么能这么快地完成挑战性这么大的工作?
Tonks:有时候团队大了工作速度不一定快。当然我们负责移植的人基本上都是经验非常丰富的业界老手,不过移植工作总的来说并不需要那么多迭代和创意。
而且实际上花的时间总共是6个月。我们用大约4个月时间让游戏达到了我们认为完全可玩的状态。剩下的时间就是消除性能突然下降的时刻,使游戏以每秒72帧的速度流畅运行,与Quest上的显示刷新率保持一致。
作为第一批Oculus Quest开发者之一,到目前为止,你对这款头显有多少了解?
Tonks:虽然直到发售时人们还对他有很多怀疑,但是现在已经很明显,Quest是一款天才的游戏设备。它以400美元的全套价格结合了出色的追踪功能和能够运行精彩VR体验的硬件,不需要任何连接线、安装或附加硬件,实在是一件了不起的产品。
从纸面上看,许多移动GPU和移动VR平台都能运行优秀的VR体验,但实际上它们都达不到要求。通常是因为这些设备并不是为了无限地全速运行而设计的。例如,手机运行时间一长就会过热,会自动降频,而你的VR乐趣也就到此为止了。我曾经让Quest以100%的速度连续运行几个小时,而它始终没有过热,体验也没有降级。

你有没有什么诀窍可以介绍给想要为Oculus Quest移植或制作游戏的开发者?
Tonks:
- Quest没有连接线,没有方向限制,具有绝佳的追踪能力。要好好利用这一点!
- 为了你自己着想,要早一点开始从250次绘图调用的角度考虑问题。要想想怎样在这些限制之下实现你想要的画面。
- 虽然我们移植《Robo Recall》时Vulkan的支持还没有完全做好,但现在你们应该关注它。它即将推出,而且绝对值得采用,因为它能让你们在场景里放入更多东西。
- 不要重新发明轮子。UE4会提供你们需要的所有工具。花些时间来弄明白如何使用它们是完全值得的。
感谢你抽出时间接受采访。大家可以在哪里了解更多关于Drifter Entertainment和这个游戏的信息?
Tonks:好的!要了解我们在干什么,最好访问www.driftervr.com。
要了解关于《Robo Recall:Unplugged》的更多信息,请查看www.driftervr.com/roborecall。还请了解一下我们先前的VR游戏《Gunheart》!