首页 > 要闻 > > 正文
2021-07-29 20:01:44

你是怎么把一款全功能的僵尸游戏放到OculusQuest上的

导读 音频解说 当我们在2018年第一次接触

音频解说

当我们在2018年第一次接触到Oculus的改变游戏的独立VR技术时,VertigoGames没有人敢想象移动版本的亚利桑那阳光,我们的热门虚拟现实游戏,将基于PC的VR的图形和游戏边界推回2016年。

我们是怎么来的?

亚利桑那阳光是一个第一人称射手专为虚拟现实,培养了多达四个玩家的幻想,试图生存僵尸启示录。 玩家可以用自然的动作来处理武器,探索一个被僵尸占领的世界,并通过始终保持警惕和检查各个方向的威胁来测试他们的生存技能-当然,你必须在玩的时候瞄准并发射你的虚拟武器。 这是生存恐惧,但你实际上在里面,而不仅仅是在屏幕上观看。

您可以查看下面的原始发射拖车。

我们于2016年12月首次在PCVR上推出游戏,并继续前往亚利桑那州阳光港,前往所有主要的VR平台.. 包括Play StationVR和免费漫游共定位VR,然后最终到达OculusQuest在2019年12月。

让游戏在便携式Oculus Quest上运行是一个巨大的挑战,但让它以一种与原始版本一样令人愉快的方式运行-而不牺牲任何使游戏如此有趣的东西-似乎是不可能的。 但是,正如你在下面的游戏版本的最后预告片中所看到的,我们能够使它工作。

这是我们今天要谈论的最后一个港口,因为它被证明是制造亚利桑那阳光的最大挑战之一,它需要大量的努力和创造性思维。

我们就是这么做的。

我们第一次看到OculusQuest硬件时发现了两件事。 Quest与其他主要的VR平台不同,它将所有东西都装在一个紧凑的耳机里,与大多数游戏PC相比,它提供了有限的处理能力。 但它不会妥协它如何处理头部跟踪和全运动控制。 这是一个系统,它的动力就像一个便携式,具有拴住耳机的功能,这是我们以前从未见过的组合。


这实际上意味着,创建一个像PCVR版本一样播放的亚利桑那州阳光的Oculus Quest版本并不是不可能的,但使它顺利运行将是一个巨大的挑战。 我们有一个明确的,简单的目标:把亚利桑那阳光带到Oculus Quest,而不改变游戏是什么或它做得这么好。

我们相信我们能把它拉下来,但这将需要很多聪明的优化“魔法”,才能使最终的体验对球员来说是舒适的。 实现亚利桑那阳光在Oculus Quest上所做的一切,同时以每秒72帧的速度运行,总是一项几乎不可能的任务,但我们认为尝试是很重要的。

这项工作始于任何僵尸游戏中最重要的部分。

僵尸是游戏中最重要的方面之一,如果不是最重要的方面。 他们居住在世界上,构成了对球员最紧迫的威胁。 如果僵尸没有吓到玩家,游戏就不会起作用。 不会是亚利桑那阳光。 但我们也必须确保我们的僵尸不会太多的Quest硬件来处理。

我们决定给我们的僵尸最容易辨认的部分最详细,以确保他们的外观和感觉尽可能接近原来。 这意味着我们花了很多钱在头部模型上。

人类在现实生活和虚拟现实中遇到任何人或任何东西时,自然会看着头和眼睛,所以我们必须正确对待这些。 这在僵尸游戏中更重要,因为头像是杀死僵尸最有效的方法。 这只是公认的智慧。 因此,玩家在排列他们的头像时,总是会看到一个坚实的头部。

注意头部。 它比身体的其他部分更详细。

可以在上图中看到结果.. 我们能够大大简化僵尸字符模型-同时保持它的可识别性-并确保头部保持尽可能多的多边形。

你的大脑是否关心手臂看起来是否完美地呈现? 当然不是。 但它会注意到一个头部没有正确的细节非常快,你将被拉出经验。 这个妥协让我们可以让我们的僵尸保持在屏幕上,而不消耗所有系统的计算能力。

但亚利桑那阳光也包括一个机械师,使射击僵尸如此有价值:穆蒂拉克。 你可以把手臂、腿打下来,或者把头吹干净。 在你瞄准的地方很重要,但让切割工作在Quest上并不像听起来那么容易。

切割由多个系统组成,所有这些系统都必须一起工作,并且需要对图形处理单元(GPU)是如何工作的有一点了解。 在我们向GPU发送指令之前,玩家的屏幕上实际上没有发生任何事情,不管游戏代码中还发生了什么。 这个指令可以是任何东西:画一棵树,画一把椅子,甚至画枪里冒出的烟。 但是我们必须让GPU通过这些指令与屏幕交谈,如果你要在玩的时候看到任何东西。

通过比较PC和Quest上亚利桑那阳光的指令计数,我们可以给出更多的意义。 PC支持大约1000个GPU指令,而OculusQuest则支持大约100个GPU指令。 这是一个巨大的差异,但这是一个我们认为我们可以用一点聪明才智来工作。

为什么指令计数在Quest上如此有限? 我们想为玩家提供一个顺利的体验,我们必须在72fps上为您提供一个舒适的比赛。 更少的框架,人们可能会感到恶心。 因此,我们知道,我们可以让Quest的GPU渲染大约100个对象在屏幕上,同时保持帧速率,但它将开始下降,如果我们再添加。 在我们的球员中引起晕车也不是我们想考虑的事情。

和GPU指令快速相加.. 假设你从僵尸身上开枪。 首先,我们必须创建一个GPU指令,“切断”手臂,并将其放置在不同的对象中。 然后,我们必须用伤口物体填充我们创建的洞,一个用于僵尸肩膀,一个用于新的切断手臂物体。 最后,我们告诉残缺的片段,一旦它与字符模型断开连接,就会脱落。 总之,我们有三个新的GPU指令,至少,对于这种交互,在纸上似乎很简单。 想象一下30个僵尸!

我们是怎么解决的? 嗯,我们决定合并僵尸对象和伤口对象,在运行时,一旦发生切割。 我们不得不调整僵尸GPU指令并为此添加支持,使GPU指令更加复杂,但这种增加的复杂性最终导致GPU比新对象生成的额外指令更快。 尤其是当一个僵尸被多次肢解时。 对于一篇针对一般受众的文章来说,这个答案可能有点复杂,但它表明,只要你愿意实验,获得创造性,并花费时间和精力,这些问题的解决方案确实存在。

我们做的另一个优化是预先计算所有可能被射杀僵尸的四肢,所以当游戏运行时,我们不必这样做。 然后,我们实施了一个限制,这样就不会有太多的切割来处理。

然而,亚利桑那州阳光并不仅仅是一场关于僵尸的游戏。 这也是关于你在哪里对抗那些僵尸。

我们最终调整,有时重建,每一个层次和每一次相遇,基于多少僵尸产卵,以及发生了哪些事件。 我们基本上是杂耍GPU的指示,以保持FPS坚实,舒适。 。

在水平的一个安静的部分,我们可以画更多的环境,如岩石,草地补丁和罐子或其他垃圾在地面上,使世界感觉更真实。 僵尸越少,我们就越有空间让世界本身看起来越好。

但是我们必须为所有的僵尸腾出空间,从而减少环境道具的多样性,如果在那个地区有一场大的战斗。 我们必须与艺术团队一起创造大量的引擎工具,帮助我们优化我们的水平,这样这就可以工作了。

当人们想到“优化”时,如果他们知道这个词在这个上下文中意味着什么,他们可能只会想到开发人员必须编写更优雅的代码。 但它的深度远远超过了这一点;我们必须创造所有新的工具和方法来解决我们的游戏如何在硬件上实现我们的目标。 优化是非常耗时和昂贵的,而且通常需要对发动机本身进行大量的工作。 它也往往是在许多主要版本上完成的最后一件事之一。

您可以在下面的gifs中看到最终产品。 有了大量的工作,我们才能挽救自己许多指令。

但这是要记住的重要事情:这样做需要工作,很多有才华的人工作很长时间。 将游戏从拴着的VR耳机移动到OculusQuest是一个昂贵的、耗时的过程,所以请记住,无论何时你问开发人员什么时候,甚至他们的VR游戏将来到便携式平台。

桥级的GPU指令如何,显示优化前后的外观。 以下是143个GPU指令的区域:

这里是相同的区域,只有24个GPU指令,在它们被合并后。

简单的方法是移除游戏中的一半对象,减少多边形计数,禁用切割,减少僵尸计数并调用一天。 但这意味着移除亚利桑那州阳光的心脏。

在跟踪方面,OculusQuest与PCVR有很大的相似之处,并且在顶部包装了未绑定的、360度定向自由的附加吸引力。 这就是为什么我们真的推动自己把原来的游戏投入到这个重拍中。

僵尸切割,地面上的小垃圾,互动.这一切加起来都是亚利桑那阳光港,看起来和感觉就像真实的东西,而不是一个被倒的副本。 花了大量的工作,但这是值得的。 最后,我们为我们能够保存多少原始世界感到自豪。

在开始移植或优化过程之前,了解自己的游戏可能是最重要的:你的游戏设计中最重要的方面是什么? 哪些事情是绝对必须停留在最后的版本,才能成为你想要你的球员享受的游戏?

一旦你知道什么是你不能没有的,你就可以开始思考如何保持它,你必须愿意投入工作来实现这一点。