香蕉城堡、青蛙岛与皮肤球:盘点开发者在测试游戏时那些稀奇古怪的操作

游戏开发中那些令人哭笑不得的 QA 测试趣闻

去年,我有幸参加了在波兹南举行的游戏产业大会(GIC),并听取了多场关于游戏开发与工艺的演讲。其中,Warhorse Studios 的 DevOps 程序员 Petr Nohejl 分享的一个迷人轶事引发了我的思考:电子游戏有时是多么荒诞,而测试人员为了确保游戏顺畅运行,又付出了怎样常人难以想象的努力。

Nohejl 的演讲主题是《天国:拯救 2》以及程序员在调试游戏、解决崩溃和处理卡顿时面临的挑战。内容比我在这里展示的要深奥得多,坦白说,作为非开发人员,很多技术细节超出了我的理解范畴。但他在演讲中提到,为了自动测试一些简单且可重复的场景,他们设定了如下环节:

我们有一些旋转测试。你会生成玩家角色,等待片刻,然后让角色原地旋转几次。这样就能加载所有的流资源。我们在地图各处都设置了这种随机旋转点。旋转测试会自动传送并在地图上成千上万个地点执行旋转动作。最后,我们会得到一份关于整个旋转测试的热力图。

本质上,Nohejl 描述的是一种质量保证(QA)测试:玩家被生成出来,原地转几圈,测试结束。我咨询过几位有 QA 经验的专业人士,他们告诉我这是一种非常普遍的测试,对大多数 QA 来说甚至相当枯燥。但对我这个从未思考过游戏测试细节的人来说,这画面感极其滑稽。

在这个发现的启发下,我通过社交媒体和各种公关渠道向 QA 专业人士征集他们最离奇的游戏测试故事:他们在测试游戏时做过最蠢的事是什么?我收到了一大堆精彩的轶事,涵盖了从 3A 大作到小型独立游戏的各种开发经历。现在,我很高兴能与大家分享这些故事,希望你们也能像我一样,从这些古怪的 QA 细节中找到乐趣。

枪林弹雨中的“迷惑行为”

“在测试 Xbox 版《虚幻 2》时,如果我们把枪向上倾斜 45 度,并在走过桥梁支撑柱时用突击步枪射击它,游戏就会百分之百崩溃。为了测试那座愚蠢的桥,我们折腾了几个星期。” —— Ben Kosmina

“在开发《守望先锋》期间,我必须测试并确保各种表面的材质都正确配置了击中效果。例如,射击木头时听起来应该是木头受冲击的声音,而不是金属。游戏中关卡众多,材质表面更是数不胜数。我利用编辑器工具专门制作了一个‘测试英雄’:她基本上就是黑百合,但钩爪冷却时间只有 1 秒,拥有半藏的爬墙能力,还有超大容量的弹匣以便自由射击。我还给自己加了 10 倍移动速度,并能切换子弹声音的开关,以便更清楚地听到撞击声。然后,我就有条不紊地在每张地图上跑来跑去,对着每一种独特的材质表面开火,确保它们发出的声音是正确的。当我离开团队时,一个朋友告诉我他还在用那个英雄做测试,这让我开心极了。” —— Andrew Buczacki

“在开发《纪元 2070》时,我必须为 USK(德国分级机构)评级委员会准备一系列测试和视频。我花了几天时间一遍又一遍地投放核弹,并放大观察那些小人,以证明画面并不血腥。我的电脑里存满了视频和图片文件夹,里面全是推着婴儿车的母亲在不同角度被核弹直接命中却毫发无损的画面。” —— Ruairí Rodinson,Rho Labyrinths 工作室负责人

凭空造人

“这个故事有点复杂。《天外世界 2》中‘心理提神’任务里的那个 NPC 是我第一次遇到会‘尿尿’的 NPC。不知为何,我当时以为‘隐形碰撞体’是撒尿 NPC 的预期行为。几天后,我看到另一个 NPC 在做一个陌生的动画。

我好奇地走过去,惊讶地发现他正在撒尿!那一刻我陷入了困惑:‘为什么游戏允许我靠他这么近?’‘之前那个撒尿的 NPC 我根本没法靠近!’于是,调查开始了。

在骚扰了几个无辜撒尿的 NPC 后,事实证明我最初的假设——NPC 在方便时应该被护盾保护——是错误的!我尽职尽责地报告了那个‘心理提神’受试者身上过大的碰撞体。现在,玩家终于可以近距离观察他‘办事’了。” —— Aleksander Gozdzicki,QLOC,《天外世界 2》FQA 测试员

“我当时是程序员而不是 QA,但我记得在测试 Kinect 代码时必须发挥创意。我写了一段代码用来检测玩家做‘空气吉他’的动作。为了测试这段代码是否兼容孕妇,我不得不把连帽衫塞进 T 恤里伪装成大肚子。

此外,在测试 Kinect 的‘新用户’登录流程时,我们必须戴上狂欢节面具,以防止设备识别出我们的脸。” —— Tim Aidley

“在《黑道圣徒》中,我们有一个名为 Skinballs(皮肤球)的调试用 NPC,它实际上就是四个包裹着不同肤色纹理的球体。这样我们就能在开发过程中测试不同肤色的光照效果。团队需要有意识地规划这类测试,但做得够好的团队并不多。” —— Elizabeth Zelle

香蕉城堡、青蛙岛与皮肤球:盘点开发者在测试游戏时那些稀奇古怪的操作

“我最喜欢的例子是《真人快打》里的‘洗车机’。一个摆着 T-pose 的角色会缓慢穿过一系列粒子发射器,每个发射器都会造成特定类型的伤害——割伤、刺伤、烧伤、裂伤、冰冻等,这样我们就能测试角色的伤害模型了。” —— Daanish Syed,前 Netherrealm 美术师

“在《Sunderfolk》开发早期,由于美术资源还没到位,我们使用了占位角色。其中一个是来自 Adobe Mixamo 网站的免费模型‘Brute’,基本上就是一个浑身油腻的壮汉。他经常被用来填充棋盘或出现在过场动画里,以查看动画的运行效果。我们亲切地称他为‘油腻男’。直到现在,我们还在引擎中使用他作为遭遇战设计器中的英雄生成指示器。油腻男永生!” —— Ali Tirmizi,Secret Door,《Sunderfolk》QA 负责人

魔兽轶事

Andrew Buczacki 慷慨地提供了他在《魔兽世界》工作期间的多则轶事:

“在《巫妖王之怒》中测试冰冠堡垒的最终 Boss 时,我们发现了一个 Bug:在特定硬件配置下,霜之哀伤不会出现在过场动画中。于是他们动员了整个《魔兽世界》QA 部门,测试每一种图形设置、分辨率等的排列组合,看是否在其他地方也会出现这种情况。到测试结束时,我们所有人都看烂了那个动画(也看烂了大部分战斗过程),许多人甚至背下了所有独白。在那之后的几个月里,你经常能听到办公室里有人随机大喊‘伯瓦尔!’

同样是在那场战斗中,我负责一个热修复测试,Boss 的某个 AOE 技能扩散速度应该加快 15%。由于没有精确的测量工具,我和朋友搭建了一个荒谬的测试装置,包括工程学烟雾弹、猎人宠物以及大量使用游戏内作弊指令。最后,我们成功验证了它确实扩散得更快了,虽然我觉得我们最后追求的精确度可能根本没必要。

老玩家可能记得,在几个补丁的过程中,某些种族/性别组合(尤其是男兽人)的护肩缩小了。这个 Bug 最终被修复了,但为了防止再次发生,我所在的团队运行了一项测试:对比当前版本和最新版本中,穿着各种装备的固定角色模型画廊。我们有一个自动化脚本,会自动登录并从固定角度拍照,穿戴相同的装备,以便我们对比截图,确保所有东西的大小保持一致。

有一次我必须验证‘掷出 100 点赢得战利品’的成就功能是否正常。为此我去了奥妮克希亚的巢穴(QA 常用的沙盒环境)。在没能靠运气赢得 100 点后,我开启上帝模式一次性生成了大约 100 个团队副本 Boss。然后我使用超级强力的 AOE 作弊法术杀光它们,并开始漫长的拾取和掷点过程。顺便说一句,那个成就完全没问题。”

你能摸摸那只狗吗?

“这是一件我觉得大多数人从未想过的事情:测试游戏里的‘摸狗’功能。很多人在游戏里都追求这个功能,但普通玩家可能意识不到,虽然摸狗很萌,但为了让它表现正常,测试人员花了几个小时又几个小时。比如在《Demonschool》里,你每次摸狗都会有独特的对话。狗还会出现在不同的地图上,根据日期和你摸它的次数,它可能会移动到不同的位置。如果你让角色 Faye 停下来摸狗,摄像机会(非常)缓慢地放大,给玩家一个更好的视角。

在开发过程中的某个阶段,我们发现一个随机出现的死锁问题竟然与摸狗这个动作有关。这意味着我们必须花上几个小时,测试摸狗的所有可能变量:它出现的每个位置、与之关联的每一行对话、每一个可以摸狗的日期。我们会故意在某些日子或地点不摸它,以改变它在后续日期出现的位置,看看那是否是导致问题的原因。我们还得确保慢动作摄像机缩放在狗出现的每一张地图、每一个版本(白天、傍晚、夜晚)都能正常工作。

所以,一个本该让玩家感到惊喜的小彩蛋,背后却是无数小时的测试工作,以确保它不会让游戏卡死。在经过成百上千次的抚摸后,现在大家终于可以愉快地摸狗而不用担心出 Bug 了!” —— AJ McGucken,Ysbryd Games QA 负责人

制造噪音

“有一次我在为《战神》做音频,我们给一个青蛙素材配了蛙鸣声。结果,一位关卡设计师拿走了那个素材,并用青蛙铺满了整个岛。于是我不得不开了一个 JIRA 任务单:‘干掉青蛙岛’。” —— Shayna Moon,高级技术制作人

“我随口就能想出一个:在测试 Wii 版《新超级马力欧》时,我发现了一个开始界面的 Bug。游戏显示标题并播放一段小曲,曲子结束后会切换到马力欧等人的演示画面。理论上,如果你按下 Start 键,会进入初始菜单(新游戏、读取、选项等)。但如果你恰好在两个状态切换的‘那一瞬间’按下 Start,游戏就会死锁,必须强制重启。

所以,每天拿到新版本,我都要坐在开始界面前,尝试在精确的时机按下 Start 键来复现这个 Bug。如果没有锁死,我就得退出来重试。这极其乏味且难以把握时机。另一个测试员比我更擅长卡点,所以我们每天早上都会一起坐在那按 Start 键,持续好几个小时,就像在玩世界上最糟糕的节奏游戏。” —— 匿名

除了这些轶事,我还采访了 Double Fine 的音频总监 Camden Stoddard。他向我讲述了为了让游戏《Keeper》中的小鸟 Twig 发出正确的声音,他经历了多么复杂且奇怪的测试过程。

在《Keeper》中,Twig 和灯塔之间的情感纽带至关重要。Stoddard 尝试了真实的鸟叫声录音和素材库,甚至尝试给灯塔配上雾角声,但“无论你怎么做,雾角声都没法产生那种情感”。最后他让灯塔保持沉默,效果反而更好,但小鸟 Twig 的声音仍是个难题:

“鸟类的录音无法达到我想要的效果。于是我开始研究鸟类是如何发声的,发现它们的喉部构造非常独特。它们有两个喉咙,下面那个叫鸣管(syrinx)。这意味着它们的音调和模式控制力非常惊人。

我开始想:‘这只鸟的情感基调远超真实的鸟类,所以我们需要人类的表演。但我怎么让一个人类听起来像只鸟呢?’我开始摆弄自己的声音,并找到了一款专为电子音乐设计的软件。它的特别之处在于你可以调整谐波尾迹(harmonics trail)。一旦我把自己的声音通过它处理,我就‘变成’了一只鸟。

我开始研究鸟类如何交流,并进行配音表演。大约花了两年时间,我终于掌握了如何演绎 Twig。最难的部分是,我发现演绎 Twig 最好的方式是在发声时‘吸气’而不是‘呼气’。当你吸气时,你的喉咙会变得非常生涩,听起来不像人类。

突然间,我变成了一名演员,我必须揣摩那些沉重的情感戏,因为这是一个非常感性的游戏。不仅要触及声音设计的极限,我还得想办法让这只鸟表现出愤怒、悲伤、惊讶以及最终的真实存在感。”

翻山越岭,丢弃武器

“在开发《怒之铁拳 4》的‘X 先生的噩梦’ DLC 时,团队发现有时玩家丢掉武器,武器会穿过地板掉下去。我们不得不丢弃每一种武器来定位问题,结果发现这只是特定于某一种武器的问题……那就是剑鱼!也许它是一种新型的飞鱼?” —— Laura Peitavi,《怒之铁拳 4》DLC 高级 QA 负责人

“在《忍者龙剑传:Ragebound》中,主角健次可以爬墙。然而,当尝试抓取表面积很小的墙壁时,他经常会摆出一种极不自然的姿势,看起来像是用一只胳膊支撑着全身。关卡设计师可以在 Unity 引擎中为每面墙设置‘可攀爬’属性,但无法自动为游戏中所有短墙禁用此属性。因此,整个 QA 团队不得不尝试抓取游戏中的每一面墙,找出哪些会导致动画异常,以便开发团队修改属性。” —— James Petit,《忍者龙剑传:Ragebound》QA 分析师

城堡是用什么做的?

“2022 年,早在我们宣布《Wildgate》之前,‘香蕉城堡’是我们给一个示例项目起的绰号。我们把它发给外部供应商,让他们帮我们找出物理模拟中的性能瓶颈,同时又不泄露我们实际在做的内容。我们利用虚幻引擎的通用素材,把这些模型粘在一起,以测试游戏内的物理效果。” —— Grant Mark,《Wildgate》技术总监

“我在《天外世界 2》里有一个测试关卡,那是一座塔,每个房间都由不同的物理材质组成。这意味着有些房间的墙壁、天花板和地板完全是由头发或皮肤构成的。

不同的物理材质会根据材质产生不同的音效和视觉效果。例如,你对着混凝土地面开枪,弹孔、火花特效和声音,都与对着沙滩开枪不同。在这些材质上走动时,脚步声也不同。除了混凝土和沙子,我们还有‘头发’和‘皮肤’的物理材质(以便它们在被射击时有适当的反应)。

如果我想快速验证这些效果是否正常,加载这个测试关卡、传送到对应材质的房间是最方便的。我可以通过射击墙壁和在地板上走动,来测试所有特定于材质的功能。” —— Josh Ledford,《天外世界 2》QA 分析师


本文作者:Rebekah Valentine