扫码打开虎嗅APP
本文来自微信公众号:游戏篝火营地(ID:gamebonfire),作者:Nicole Carpenter,编译:Tony,本文基于篝火营地与 Polygon 中华地区独家授权协议编辑发布,原文标题:《为什么<塞尔达传说 王国之泪>中的一座桥让开发者们直呼“黑魔法”?》,头图来自:视觉中国
在《塞尔达传说 王国之泪》的马拉克古奇神庙中,有一座索桥可以用来跨过岩浆坑,问题是 —— 桥断了。大部分桥板堆积在岩浆坑的一边,另一边仅剩下短短一截。要想跨过岩浆坑,这座桥是最明显的选择,但怎么才能修好?
在《王国之泪》发售不久后,一个演示修桥方法的视频在推特上火了:玩家用林克的究极手把索桥粘在了一个带轮的铁板上,在轮子被激活后,它们拖着一串桥板在滚滚岩浆中前进,最终将索桥拉紧,悬在了半空中,让玩家可以安全走过。但引发热议的并非是解谜方法本身,而是《王国之泪》的物理引擎 —— 有一大堆开发者们看完视频之后目瞪口呆,对任天堂驾驭物理引擎的能力佩服得五体投地。
对玩家来说,这就是一座简简单单的桥,但对游戏开发者来说,这就是一个奇迹。
▲“有史以来最强的游戏编程炫技”——推特用户@WillWArmstrong:
“在游戏开发中,最复杂的部分就是不同系统和功能开始产生交互的时候,”曾参与过《战神》和《战神:诸神黄昏》开发工作的技术制作人 Shayna Moon 告诉我们,“太让人佩服了。这个谜题有大量的动态物体,这就是为什么它可以有那么多种解法。相应的,也有特别多种潜在的出错方式。”
Moon 表示,索桥的每一段都是一个独立运转的物体。此外还要考虑岩浆和简易车,而且林克还能用究极手把这些物体组合在一起,甚至能把桥重新连起来。
据报道任天堂花了一整年打磨《王国之泪》,我们也确实能看出来这一年花到了实处。“有如此之多的不同选项,证明了开发团队每一个层级上的每一个人都进行了大量工作,尤其是测试者,”Moon 说,“像这种拥有大量可即时交互物体的开放世界游戏,QA 测试是出了名的难。”
《最后生还者》
在 2020 年,也有一个大作凭借物理效果让开发者们在社交媒体上聊得热火朝天 ——《最后生还者》里那根用来解谜的绳子让开发者们既震惊又佩服。和《王国之泪》的索桥一样,这根绳子用起来极其自然,非常符合直觉,但是开发者们可以看出做一根这样的绳子要费多大周折。
索桥上面有无数个在物理系统内互相牵扯的节点,软件工程师 Luna Nielson 介绍说:“它涉及很多数学计算。如果某个东西拉扯得太厉害,它有可能会变得非常奇怪,然后这个桥突然就自己穿模自己了,所以它就必须把穿进去的部分推出去。这样又可能会让某个东西移得太远。然后情况就变得非常糟糕,因为(索桥的各个部分)基本上各干各的,彼此的运动全都不一样。”
▲《塞尔达传说:侠盗中队》 via Reddit u/realduckbutter
软件工程师 Cole Wardell 用另一种方式进行了解读:“想象一下上面的桥,在你抓住末尾的时候,你会把一块板子拉到一边。这就拖动了它连接的另一块板子,这块板子的移动又会带动下一块,以此类推。如果里面有任何一个地方撞到了其他东西,它就必须被推回或者滑动到不再产生碰撞的地方,这就会移动它旁边的板子,然后这块板子再移动旁边的另一个,牵一发动全身。”
“上一次我见到这么厉害的物理/玩法,还是《最后生还者 2》的绳子。而绳子只出现在了几个非常可控的场景中,”Rocksteady 高级程序员 Aadit Doshi 在推特上说。“能够信心十足地向玩家提供一摞通过链条连接并且以准确方式移动的板子,没有穿模,而且物体不会一边找自己该去哪儿一边疯狂抖动,这真是让人叹为观止。”
《王国之泪》
《王国之泪》也用类似于绳子的东西展示了他们的物理引擎有多么厉害:另一个很火的视频显示了怎么用四个轮胎和一根铁链开门。Wardell 告诉我们,这是一个没法取巧的复杂交互。
“一般情况下,物理引擎经常会走很多捷径、做很多假设,这既是出于优化方面的考虑,也是为了避免让开发者们抓狂,”Wardell 说,“几乎所有这种捷径,无论是没有碰撞体积的绳子,还是旋转的物体只能以特定方式施力,都会让这样的机制完全无法生效,或者会让铁链不停抖动,直到突然在某一帧彻底从画面中消失,又或者可能会出现其他常见的物理 bug。”
▲这个物理引擎就是黑魔法!
他表示,由于这些问题,“绳子抖到失控”这种 bug 非常常见。“如果你没有把所有东西都做得恰到好处,一个动作会牵动绳子其他部分跟着移动,这些部分的运动会造成更多的碰撞——如果绳子碰到自己,那可就麻烦了。这些碰撞又会对绳子产生更多的推动、更多的运动,最终让绳子抖到地图之外。”
Doshi 解释说,复杂的物理效果在游戏中很常见,但是《王国之泪》挑战了引擎极限,利用物理做出了优异的玩法和谜题。他表示,“真实的物理模拟需要很多个小时的计算以确保高度的精准性,游戏物理需要每 16 到 32 毫秒就生成一次结果(对应 30~60 FPS)。”
Doshi 说,有些游戏会通过绕开部分元素来避免这样的复杂性。这就意味着玩家的行动会受到限制,而《王国之泪》是这种做法的反义词。虽然有一些限制,但在游戏中却依然让人觉得什么都能做到。
▲《辐射 76》 via YouTube @RehvsBasement
“在游戏开发中,问题不在于物理‘会不会出问题’,而是‘什么时候出问题’,”Gravity Well 工作室高级工程师、前“使命召唤”开发者 Josh Caratelli 告诉我们。这就是为什么 Reddit 上有一整个关于物理引擎 bug 的板块 r/GamePhysics,在那里可以看到玩家角色的布娃娃系统出现各种诡异现象,或者敌人被墙弹飞之类的画面。这并不是说有物理 bug 的游戏就是做得不好,只不过物理引擎实在太容易出 bug 了。
不过 Caratelli 强调说,《王国之泪》的物理引擎并非魔法 —— 任天堂对游戏中的物理交互明显有非常深的理解。“在技术层面上让人极度佩服的是,它有着非常好的稳定性,并且以一种没有预先编写好解法的方式组合在一起,让玩家能够以完全自由的方式解谜,”Caratelli 补充说。
Moon 指出,其他工作室不是没有能力实现这种水准的技术创新,但他们不会将所需资源优先安排到这个方面。这往往取决于实际制作游戏的人能否得到充足的支持。《王国之泪》是在《旷野之息》的基础上打造的,而根据报道,《王国之泪》的开发人员包含了前作团队的大部分人。
“现在的游戏行业存在一个问题 —— 我们不重视企业内的知识积累,”Moon 说,“公司更喜欢从外部引进人才,而不是留住初级和中级的开发人员,把他们培养起来。不重视企业内的知识积累无异于自掘坟墓。而《王国之泪》充分展现了这么做的好处。这个游戏是对《旷野之息》优异之处的进一步发展。”
据 Moon 说,越来越多的游戏开发者发现,在原本的项目带头人离职或者被解雇之后,他们只能像是用胶带进行维修一样,勉强把某些功能做出来:大量时间浪费在了重新调整配置和研究某些东西的原理上面。任天堂并不是没有自己的问题,比如北美任天堂的 QA 测试人员去年曝光过在美任华盛顿总部遭遇“兄弟会”一般的经历。但是看上去,这家公司非常重视开发人员的专业知识。
“除了团队的辛勤工作之外,企业内的知识积累显然也是最终完成度这么高的原因之一,”Moon 说,“人们越稳定、越快乐,就越能制作出这种高质量的游戏。如果想要好游戏,就必须关心制作游戏的人。”
本文来自微信公众号:游戏篝火营地(ID:gamebonfire),作者:Nicole Carpenter,编译:Tony