本文从《刺客信条》中魂殿的一艘漂浮在空中的船说起,谈谈开发者的梦魇BUG。
他看着眼前漂浮在空中的船,一种对这难以言喻的奇异景象的恐惧涌上心头。
时光荏苒,几百年过去了,英国已经发展出了文明。一天,一位穿着羊毛风衣的绅士在雨后的巴黎漫步。突然有人从后面跟他说话,先生转过头回应却看到一张吓人的“脸”:
这奇怪的一幕持续了一会儿,当这位先生回过神来时,他发现一个衣冠楚楚、清秀的年轻人站在他面前。
在他们够不到的地方,在显示屏的另一端,一名玩家放下手柄,拿起手机给他的朋友发了一条消息:
对于任何游戏玩家来说,bug都是非常熟悉的,甚至是司空见惯的。几乎每一个游戏玩家都在不同厂商、不同平台、不同体积的游戏中遇到过各种各样的bug,其中有些bug为大众所熟知,成为喜爱的“梗”。
(飞行西部寒鸦)
但与此同时,一些玩家也开始意识到,似乎这两年游戏中的各种bug越来越频繁,甚至一些被认为是行业标杆的3A游戏也开始出现了很多让人难以接受的bug,有些甚至让人怀疑自己在开发的时候有没有做过什么测试工作。例如,在赛博朋克2077,有很多没有触发门槛的低级错误。
所以今天就来说说所有开发者都深受其苦的bug,说说为什么近两年大预算游戏的bug数量开始激增。
首先,什么是bug?
bug这个词的本义是“飞虫、昆虫”,作为动词也可以表达为“打扰”。好像是一个和电脑无关的词,那为什么现在还用bug来指代电脑的各种故障呢?这也需要追溯到计算机刚刚发明的时候。当时因为集成电路技术还没有出现,计算机的各种部件都无法小型化,导致了当时计算机的庞大。而如此巨大的机器,温度极高,内部结构复杂,无疑成为了昆虫安家的好地方,这就导致了当时的大部分计算机往往要做的不仅仅是检查算法是否有问题,还需要查看计算机是否有bug。久而久之,人们开始把电脑故障叫做bug(bug),一直延续至今。
一台巨大而温暖的电脑是昆虫生活的理想场所。
顺便说一下,有时虫子会进入电脑机箱,导致短路和其他故障。如果你发现电脑经常无缘无故自动关机,还伴有一股蛋白质烧焦的味道,那么恭喜你,你的电脑机箱里很可能有一堆蟑螂在露营。
说完这个略显吊人胃口的词汇的由来,接下来我想说的是软件游戏为什么会有bug。原因其实很简单。毕竟bug就是软件代码的漏洞,所以广义上来说,只要游戏的某个部分出现了bug,就可以说明这个地方的代码有问题。这样看来,修复bug的过程其实就是对原本有问题的代码进行优化调整的过程,所以很多软件和游戏都会把这个过程做成“补丁”。
(贴袋)
这个时候,有些读者可能会有点困惑。它也是一个游戏。一些小型的独立游戏基本上可以没有bug,但是一些大型的3A游戏往往在第一版就有很多bug。大厂的技术实力很难比几个人的小团队差吗?
其实高投入的大游戏之所以比低投入的小游戏bug多,并不是因为大厂的技术实力差,而是因为游戏的代码内容会随着游戏体量的增加呈几何级的复杂。以今年讨论度很高的戴森球体计划为例。在前期,当你想生产一个东西的时候,你只需要几个简单的原材料就可以完成。这个时候,即使你随便搭建流水线,也不会有问题,但是到了后期,一个成品需要的几十个环节是堆叠嵌套的。这个时候,用原来的逻辑搭建流水线,只会导致糊里糊涂。游戏开发也是如此。一个开发者可以自学出一个没有众所周知bug的“鬼谷八废”,但如果开发了“轩辕剑”,那只会制造开发灾难。
代码复杂度的增加不仅会增加开发的难度,还会导致不同模块的代码之间出现一些“形而上”的问题。上学的时候,在一个期末项目中,出现了一个奇怪的情况,团队每个成员负责的模块独立运行都没有问题,但是集成起来就会出现一堆莫名其妙的bug。几个人的小项目尚且如此,几百人的大项目就更夸张了。
游戏公司没有调试(测试、排错)人员很难吗?可以,但是很多游戏的开发时间往往不够。以赛博朋克2077为例,CDPR肯定有专业的调试团队,但是专业团队的测试还是需要时间的。面对烧钱的发售日期和刚刚完成的游戏,这些工作人员只能优先检查闪回、坏文件、崩溃等恶性问题的bug,以保证游戏能够正常运行。
(这些恶毒的bug往往是最先被发现的。)
虽然大多数其他游戏不会遭受赛博朋克2077的灾难,但当项目接近尾声和调试工作开始时,时间往往并不充裕。面对3A游戏越来越夸张的音量,很多测试人员只能尽力保证不出现恶性严重的调试。至于更多乱七八糟的不能测试的地方,直接做个beta版给玩家测试会省不少力气。
(预先测试还可以顺便播放游戏的广告)
说完为什么大型游戏bug多,这两年游戏bug增多的原因也水落石出了。
随着2020年疫情的全球化,世界各国开始倡导家庭办公。但是对于非常依赖团队合作的游戏开发来说,所有的开发者都只能在家里通过打字或者视频会议的方式进行工作,这无疑大大增加了开发者之间的沟通成本,而沟通的缺失不仅会体现在游戏性内容的缺失上,还会无形中为游戏埋下很多可能成为bug的地方。
3A游戏本身的复杂性,home office带来的沟通成本的增加和开发效率的降低,再加上投资人白纸黑字规定的游戏发售日期,导致这两年各种让玩家哭笑不得的bug频频出现。这些bug中的一部分确实在玩家的旅程中提供了一些不同寻常的辉煌,但其中的一部分导致了玩家糟糕的游戏体验,这让很多玩家质疑:“我为什么要花三四百块钱去买一个半成品?”
随着下一代的到来,游戏的开发有了更高的硬件基础,屏幕的性能可以得到更高的上限。然而,虽然上限提高了,但随着游戏的进一步复杂,下限又被再次降低了。在这新一代中我们会看到多少具有讽刺意味的bug,又有多少游戏会被bug毁掉?我们还不知道。