第 7 章
第7章 缺席者的形状(约 1993 年)
汤姆·霍尔把《DOOM》设计文档第四稿摊在桌上,手指沿页边距滑下来,停在一段UAC基地实验日志旁。这段文字写的是:一名科学家在凌晨三点十七分写下最后一条记录,手在颤抖,因为实验室的门正从外向里凹陷,而他不知道那是气压变化还是什么东西在敲门。霍尔喜欢这一段。它建立了一种不需要怪物的恐惧,在解释和暗示之间精确保持平衡。他花了三个晚上修改这段文字的节奏,让阅读时产生逐渐加速的呼吸感——短句。更短的句子。句子碎片。然后句号。这是他从《指挥官基恩》时期就擅长的叙事技巧,那时他作为创意指导,为八岁神童比利·布雷兹的银河系冒险写下了整个三部曲的剧情。1990年,正是霍尔在深思团队的会议上,用夸张的腔调朗读了八岁天才保卫地球的故事摘要,引得大家大笑喝彩,同意制作《指挥官基恩之沃提康入侵》。
约翰·卡马克站在他身后,看了这段文字六秒钟。不是阅读,是看。霍尔能分辨两者的区别:阅读意味着目光在文字上移动,而卡马克的目光静止,像扫描仪等待数据进入缓冲区。六秒后,卡马克把手放在霍尔的椅背上,没有碰他,只是让椅背发出轻微的金属应力声。“文本渲染器在模式13h下需要四百个时钟周期,”卡马克说,“每一帧。”
霍尔没有转身。“这是引擎的问题。”
“引擎没有‘问题’。”卡马克的语气里没有防御性,“引擎是一组已经做出的选择。你可以在选择之前和我讨论这些选择,但选择做完之后,它是地形。”他停顿了一下,手指在霍尔肩膀上方指了指文档,“你的故事在请求一块不在这片地形上的土地。”
“你在告诉我游戏设计必须适应地形。”
“我在告诉你所有东西都必须适应地形。包括我的代码。如果代码不适配硬件,它不能运行。如果设计不适配引擎,它不能显示。这不是价值判断。”
霍尔合上文档,转过身来。卡马克没有后退。他们之间的距离比正常的办公室交谈要近,近到霍尔能闻到卡马克T恤上淡淡的焊锡味儿——他在焊接自己改装的NeXTcube主板,用示波器测量时钟信号延迟,那种气味像某种工业圣油。
“模式13h。”卡马克又说了一遍,“320x200,256色。每一帧有六十分之一秒。在这个预算内,我必须告诉显卡去哪里画每一个像素——墙壁、地板、天花板、怪物、武器、状态栏。文本在屏幕上不是免费的。它占用像素、时钟周期、玩家的视觉处理带宽。如果你能在设计层面用墙壁纹理和怪物咆哮替代一段对话,每屏省出十二个像素纵列,玩家反应时间缩短零点一秒。十二个像素换算成墙壁贴图,就是走廊拐角多出来的一英寸视野。那一英寸决定他会不会被粉红魔咬死。”
霍尔没有说话。他在Softdisk学会了一件事:反驳卡马克的唯一方法是使用同一种逻辑。情绪是无效输入,美学偏好是未经验证的个人数据,“我觉得”在卡马克的认知体系里属于语法错误。他需要找到卡马克逻辑链中的薄弱环节——同样建立在效率和优化基础上的论据。但他的大脑此刻只提供了一组画面:凌晨三点十七分的科学家,向内凹陷的门,他花了三个夜晚校准的文字节奏。这些东西在卡马克的论证里被归类为“未优化资源”,和冗余代码同级。
约翰·罗梅罗从走廊另一端走过来,鞋底在复合地板上发出急促的节奏,四分之四拍,每分钟一百二十下。他直接把自己送进霍尔的视野右侧,和卡马克并排站着。这是他们在讨论《DOOM》设计方向时固定下来的站位——不是有意识的,但霍尔注意到了。当卡马克和罗梅罗同时站在你对面时,你就坐在了辩论的反方位置上,不管你是否同意辩论的前提。
“我玩了你做的demo关卡。”罗梅罗说,“弹药用尽之后那个走廊,墙上嵌着一块数据板,上面有一整段关于传送门实验失败的文字——”
“那是UAC首席科学家的忏悔记录。如果你读了,会发现他启动传送门前就已经知道风险,但被军方压力逼迫着——”
“我知道。我读了。”罗梅罗蹲下来,让视线和坐着的霍尔齐平。这个动作的目的不是亲近,是注意力捕捉。“问题在于,我读的时候,走廊尽头刷出了三个怪物。霰弹枪只有两发子弹。我应该移动,但我没动,因为我在读你的文字。我死了。不是因为你的文字写得不好——写得很好。是因为你的文字在那一刻变成了陷阱。它把我留在原地,而引擎没有为‘留在原地’提供存活奖励。”
“所以我设计的沉浸感是致死因素。”
“在《DOOM》里,是的。”罗梅罗站起来,手指在空中划出快速的形状,像描摹抛物线,“第三十六次测试后我发现一件事:每次停下来读东西都会死。每次忽略文字直接开火都会活下来,并且体验到一种更强烈的——不是沉浸感,是那种——”
“纯粹的。”卡马克帮他说完。
“纯粹的。”罗梅罗点头,“不需要解释。你不需要知道怪物怎么来的,只需要知道它正在咬你。”
霍尔靠在椅背上。天花板上的荧光灯管发出持续的整流器嗡鸣,频率恰好落在人类听觉最敏感的区域。什里夫波特第一间办公室的天花板也有这个声音,那时他们用摇滚乐掩盖它。现在音响系统正播放着Pantera的《Cowboys from Hell》,音量被调得很低,吉他的失真音色听起来像远处的电锯。
“所以我们对游戏的定义已经分叉了。”霍尔说。这个措辞很小心——不是“你们错了”,不是“我被排挤了”,是分叉。计算机科学里描述代码库分裂的词,精确,去情绪化。卡马克听到这个词时,嘴角出现了极小的变化,不是笑容,是某种近似于认可的肌肉松弛。他尊重精确的词。
“《基恩》需要故事。”罗梅罗说,“比利·布雷兹需要动机去拯救银河系。《德军总部》需要最少的背景——纳粹,城堡,你。但《DOOM》——”。1990年,正是霍尔在深思团队的会议上,用夸张的腔调朗读了八岁天才保卫地球的故事摘要,引得大家大笑喝彩,同意制作《指挥官基恩之沃提康入侵》。
“《DOOM》是你凌晨三点在高速公路上开车。”霍尔接过了句式,“车窗开着。收音机坏了。你知道有人在你后面。你不知道是谁。你不需要知道。你只需要踩油门。”
罗梅罗愣了一下,然后笑了——被精确模仿之后意外的笑,在对手身上看到自己影子时的本能反应。“你把我的比喻偷走了。”
“这个比喻很好记。”
“它是很好记。”罗梅罗承认,“因为它是真的。”
会议室里的白板残留着上一轮讨论的痕迹。罗梅罗画的关卡俯视图——中央大厅,四条辐射走廊,每条末端是九十度拐角,拐角后面标着问号。那些问号代表未知,代表不需要解释的威胁,代表玩家在转过拐角前必须完成的半秒钟心理准备。霍尔看着那张图,突然意识到自己在设计文档里写的所有东西都可以被那些问号替代。一个问号等于一个角色背景的全部叙事功能,两个问号等于一段对话树的情感张力。整个白板上用马克笔随手戳出的墨点,加起来比他十四万字的文档更贴近《DOOM》想传递的核心信息:这里有东西。它会杀了你。跑。
霍尔拿起一支马克笔,在白板上找了一块空白区域,画了一条线,然后又画了一条,然后停下来了。他想画触发器的逻辑流程——玩家走进房间,怪物出现,但如果玩家之前读过某个日志条目,触发时机延迟零点五秒,营造“预知但无力阻止”的焦虑感。这是他设计的核心技巧:用信息不对称制造情感。但在卡马克的引擎里,这个设计需要存储玩家的阅读状态,需要额外的条件判断,需要——时钟周期。霍尔把笔帽盖回去,没有画第三条线。
“文本缓存。”他说。
“什么?”罗梅罗问。
“我刚才想画的触发器,需要引擎记住玩家是否读过某段文字。这意味着文本缓存,更多内存分配,意味着——”
“网络层的数据包。”卡马克接上了。他也在看那两条线,目光像在看一种不认识的汇编语言变体,“死亡竞赛模式下,我们需要在客户端之间同步所有游戏状态:玩家位置、武器状态、射击矢量、怪物坐标。UDP数据包容量有限。每一字节我们都得在‘同步什么’这个问题上投票。文本读取状态不会得到任何票数。”
“因为枪口不在乎故事。”
“因为枪口只在乎目标、伤害值和命中判定。”卡马克拿起白板擦,擦掉了霍尔的两条线,动作很快,没有犹豫。他把白板擦放回槽里,残留的墨粉从手指上飘落,在荧光灯光线下像微型尘暴。“对不起,汤姆。这是数学。”
霍尔工位在办公室南侧,靠近窗户。窗外是达拉斯郊区一月的天空,颜色介于灰色和灰白色之间,像一张被重复使用太多次的复印纸。他的桌子上有三台显示器:一台连接486开发机,一台测试《DOOM》最新编译版本,一台备用——从没用过。显示器后面立着塑料文件夹,夹脊已被翻出裂纹,里面装着他从1992年9月开始撰写的设计文档:第一章,世界观总纲;第二章,角色设定集;第三章,对话树与分支逻辑;第四章,关卡叙事节点标注;附录A,UAC基地年表;附录B,恶魔分类学。
那些文件夹里,装着霍尔从1992年9月开始撰写的设计文档。他曾是id Software的创意指导,与罗梅洛、卡马克、阿德里安·卡马克一同创立了公司,并制作了《指挥官基恩》系列、《德军总部3D》和《毁灭战士》。但现在,他写的那些东西——第一章,世界观总纲;第二章,角色设定集;第三章,对话树与分支逻辑——正一页一页地失去在引擎中的容身之地。
附录B是最先被砍掉的。罗梅罗在十二月初的会议上说“我们不需要恶魔的拉丁学名”——说的时候脸上带着近乎道歉的表情,像在告诉朋友他们共同养大的猫必须送走。附录A在圣诞节前被移除,因为“玩家不会在开枪时阅读年表”。一月的第二周,对话树被删减到只剩生死攸关的提示文本:“按E开门”“弹药不足”“找到红色钥匙卡”。这些是技术性文字,不是叙事性文字,功能与代码注释一样——帮助用户在系统中定位自己。霍尔写的那些精心构撰的对话——科学家之间的伦理辩论、士兵对军方命令的质疑、技术人员日志里逐渐崩溃的理智——全部被替换成怪物从喉咙深处发出的声音。
阿德里安·卡马克设计的怪物不需要解释自己来自哪里。那个没有皮肤、骨骼外露、下颌骨张开到生物学极限的恶魔,在像素层面就已完成了所有叙事任务。霍尔第一次看到那个怪物的像素动画时,在屏幕前坐了整整三分钟——不是因为震惊,是因为理解。那个无皮肤的恶魔是引擎逻辑的视觉化表达:剔除所有非必要组织,暴露核心结构,让功能直接穿透表面抵达受众的杏仁核。阿德里安不知不觉地把引擎的设计哲学翻译成了像素语言,而霍尔还在试图用文字在同一套硬件上跑完全不同的操作系统。他们不是不尊重文字。他们是不需要。
这个区别在接下来的几周里越来越清晰。一月中旬,大卫·泰勒接到重构NPC-AI模块的任务。这个刚从大学毕业的程序员走进霍尔隔间时,手里拿着一张打印出来的代码结构图,表情像被告知要拆除建筑的爆破工程师。
“他们要我移除对话触发。”泰勒说,“角色不再说话了。那个科学家NPC——你的科学家,写了那些日志的——他会直接拔枪射击。状态机只有两个状态:巡逻和攻击。”
霍尔接过那张图。他自己的代码被红色记号笔圈出删除范围——文本调用、对话缓存、读取状态标记——全在红线之内。留下来的是纯净的战斗状态机,没有文本引用,没有叙事标记,没有除“看见玩家→攻击玩家”之外的任何行为树分支。
“谁下的指令?”
“卡马克。他说引擎新版本不再为NPC维护独立的文本缓存池。网络层的数据包结构已经确定了,没有空间留给对话同步。”
霍尔把图还给泰勒,手指在纸面上没有抖动,声音也保持平稳。“照做。”
泰勒站在隔间入口,一只脚在过道里,一只脚在隔间里,身体语言充满想要安慰但不知道如何操作的不对称感。“我在大学打《德军总部3D》时,一直想,如果那些纳粹能说话就好了,哪怕只是一句‘站住’——”
“《DOOM》里的怪物会说话,”霍尔说,“用咆哮。阿德里安的像素画出的咆哮。不需要文本渲染器。”
泰勒点头,退出隔间,脚步声被走廊里的吉他独奏覆盖。
霍尔转回显示器,打开UAC基地第一关的地图编辑器。灰色走廊网格,未放置纹理的墙壁,没有怪物的空房间。他开始调整墙壁的纹理坐标——第214号:灰色金属板,铆钉排列成六角形图案;第317号:血迹污渍,颜色从暗红渐变到近乎黑色。他把纹理一片一片贴在走廊两侧,调整角度,检查接缝。这不是叙事,这是空间制造。但这是他唯一还能做的事情,而他在这个狭窄的功能空间里发现自己做得比预想的要好。墙壁不需要对话,墙壁只需要存在,挡住玩家的视线,制造悬念。
他在这个状态里沉浸了四个小时。
午饭时间到了。有人把达美乐披萨盒放在会议室桌上,罗梅罗喊了一声“披萨”,脚步声从各个隔间汇集过去。霍尔没有动,他正在调整一个拐角。那个角度是九十度,但在他的调整下,走廊在拐弯前收窄了百分之十二——视觉压缩让玩家在转角前感到被挤压的焦虑,拐角后的空间突然扩展,制造虚假的安全感,紧接着,扩展空间的尽头设计了一个凹槽,凹槽里放置怪物刷新点。这是恐惧的三段论:压缩,释放,袭击。是罗梅罗教他的技巧,但他使用时的方式不同——他仍在试图制造可以被读取的情感结构,一种没有文字的微型叙事。压缩代表压迫感,释放代表希望,袭击代表希望的破灭。叙事,只是被压缩到了纯空间的维度里。
罗梅罗端着纸盘走进来,嘴里嚼着披萨,眼睛看着霍尔的屏幕。嚼了七下,停下。“那个拐角。”
“怎么了?”
“收窄之后扩展,扩展之后凹槽。你在做一个三段式。”
“我在做一个陷阱。”
“不,你在做一个有结构的陷阱。你的陷阱有起承转合。”罗梅罗把杯子放在桌上,身体微倾,用食指在屏幕上沿着走廊路径滑动,“玩家走进来,感到窄——第一情绪。走廊扩大,情绪释放——第二情绪。凹槽里跳出怪物,希望在最高点被切断——第三情绪。这是叙事,汤姆。你把叙事从文字转移到了空间上。这很聪明。”
“但引擎支持空间。”霍尔说,“引擎不支持文字。”
罗梅罗的食指停在凹槽位置上。他的表情在那一瞬间变化了——快到来不及被社交礼仪过滤。那是理解。不是对关卡设计的理解,是对一个处境的理解。罗梅罗理解了霍尔在做什么:在被迫放弃文字的境况下,找到用引擎的母语继续讲故事的方式。十四万字的文档被压缩进走廊的宽度变化里。这是适应,也是抗议;是屈从,也是某种形式的胜利。
“对。”罗梅罗把手收回去,“引擎支持空间。”
卡马克那天没有来拿披萨。他在自己隔间里,屏幕上显示着网络代码的数据包捕获日志。他正在追踪间歇性的丢包bug——在死亡竞赛模式下,十六个玩家同时射击时,某个特定编号的数据包以千分之三概率被路由器丢弃。他逐行检查代码,旁边是一杯冷掉的咖啡。霍尔经过时,看到了屏幕上的数据包结构:每个数据包被展开成十六进制视图,像没有断句的某种语言。霍尔不是程序员,但能看出那些数字的密度——填满了整个有效载荷区,每一个字节都被精确分配了功能:这里存储玩家坐标,这里武器状态,这里子弹数量,这里射击时间戳。没有任何空余空间,没有任何注释。数据包最末尾一小段未使用的字节标记为“预留”,但霍尔知道,在网络延迟的优化逻辑里,“预留”意味着“等待被填充更有价值的数据”,而不是“留给叙事”。
他回到工位,那个下午没有再打开关卡编辑器。他打开了一个新的文本文件,光标在黑色背景上以八十五毫秒的间隔闪烁。
他开始打字。不是《DOOM》的设计文档——那份文档已被删减到只剩骨骼。他写的是一份备忘录,关于游戏叙事与技术引擎之间的关系,收件人是他自己。他知道这份备忘录不会有第二个读者,但写作是他的默认处理方式:当外部环境无法被语言改变时,至少可以用语言把外部环境描述清楚,就像军人用地图标注已经陷落的阵地。
他写道:“卡马克的引擎不是反对故事。引擎是一组关于优先级的决策集合。在320x200分辨率和六十分之一秒帧间隔下,优先级是视野、威胁识别、武器反馈。叙事被判定为低于这三者,因此被移除。这个过程和审美无关,和效率有关。问题是:当效率成为唯一的决策语言时,任何不能用效率论证的东西都会在第一次过滤中被筛除。文字不能证明自己比墙壁纹理更‘高效’,因为文字的功能不是被高效地处理,而是被充分地理解。‘充分’失效了。‘高效’赢了。”
光标闪烁。他继续写。
“罗梅罗不是反对故事。罗梅罗是反对减速。他对《DOOM》的定义是一段永不松开油门的高速公路夜行,任何让玩家把脚从油门上移开的东西都是叛逃。文字要求注意力,注意力要求时间,时间意味着降速,降速意味着死亡——在游戏机制里和罗梅罗的美学里都是。我在文本里试图制造值得降速去体验的东西,但他们设计的整个系统在基因层面排斥降速。我在这套系统里的功能是反对它的核心假设。这是可以被替换的定义。”
光标继续闪烁。
“我是可以被替换的定义。”
一月的最后一周,霍尔在走廊拦住了杰伊·威尔伯。杰伊刚从电话会议中出来,手里拿着皮面笔记本,里面是《DOOM》的发行合同草稿和版税计算表格。他没有参与任何设计决策——他的工作是确保公司作为法律实体和财务实体的持续存在。当霍尔说“我们需要谈谈”时,杰伊合上笔记本,点了点头:“我的办公室。”
杰伊的办公室是id所有房间里最不像游戏公司的一部分。墙上没有海报,桌面上没有动作人偶,档案柜上放着一盆死掉的绿萝。荧光灯发出和走廊完全相同的频率。他示意霍尔坐下,然后关上门。关门这个动作在id很少发生——大部分讨论都是开放式的,任何人可以加入。关上门意味着一件事:接下来发生的不是讨论,是决定。
“我要离开。”霍尔说。
杰伊没有问为什么。他问了另一个问题:“时间?”
“夏天之前。我想把手头的关卡做完。第一关到第三关——UAC基地的入口序列。那些关卡没有对话,引擎不会拒绝它们。我想把它们做好。”
杰伊打开笔记本,翻到空白页面,开始写字。不是写数字——从笔尖的运动轨迹能看出来——是写清单。他可能在列出离职的法律步骤:股份回购条款、保密协议范围、竞业限制期限、最后工作日通知期限。笔迹很小,每个字母都被压缩到近乎印刷体,一行能容纳常人大约二点三倍的信息。
“需要我通知他们吗?”
“我自己通知。”
杰伊合上笔记本,抬起头,用一种霍尔认识他五年来从未见过的表情看着他。那不是同情,不是惋惜,是一个管理者在评估一个变量被移除后系统会如何运行的表情。然后那个表情消失了,被替代成某种几乎是温和的、校准过的善意。
“汤姆,你在公司创立文件上签了名。”杰伊说,“公司创立时,我们五个人在湖街公寓的地板上坐成一圈,你起草了那份‘我们想做什么’的宣言。你写了‘游戏可以是幽默的、聪明的、有感情的’。那份宣言现在还在我的文件柜里。”
“宣言不适用于引擎。”
“宣言是人写的。引擎是人写的。这是同一件事。”
“不。”霍尔站起来,膝盖发出一声轻微的啪响,像微型断裂,“引擎是卡马克的选择,已经做完了。宣言是我的选择,还没完成。这两个选择现在不兼容。这不是谁的错。这是选择本身的惯性。”
二月十四日,霍尔告诉罗梅罗他要离开。讨论的部分只占了前十到十五分钟,在那之后,罗梅罗从冰箱里拿出两瓶啤酒,霍尔从抽屉里翻出一副《万智牌》——牌角已经卷边,某些牌面被披萨油渍永久标记。他们在会议室桌上打了三个小时牌,一边打一边回忆湖街公寓。那段记忆在两人嘴里轮流出现,像被反复播放的录音带:卡马克在荧光灯下宣布搞定了平滑滚动,霍尔跳起来撞翻咖啡罐,罗梅罗在凌晨四点打通了第一关测试,阿德里安睡在地板上,杰伊在桌边计算版税分配比例。
那段录音带在1993年2月的深夜播放时,已经带有特定的光泽——不是怀旧的光泽,是已知结局的光泽。他们当时不知道自己正在建造什么,现在知道了。这个知道让所有的笑声在到达喉咙时都带上了一层薄薄的隔膜。
凌晨两点,罗梅罗收起牌。“你有没有想过,如果我们当时做的是另一个游戏——”
“我每天都在想。”
“我会让卡马克重新考虑文本渲染器的优化方案。不是现在——《DOOM》的代码基已经锁定了——但是下一个引擎。下一个引擎可以有更多空间。”
“下一个引擎的预算会全部投入到光照和几何复杂度上。文本的优先级永远在视觉之后。这不是卡马克的错,这是摩尔定律的方向——显卡的性能增长比文本渲染需求的性能增长快三个数量级。他能渲染更真实的墙,他就去渲染更真实的墙。文字永远是那个被延迟的需求。”
罗梅罗没有说话。他把空啤酒罐扔进垃圾桶,罐子撞击桶壁发出一声闷响。然后他站在白板前,拿起马克笔画了一个门——简单的矩形,中间一条直线。他在门旁边写了一个字:“推”。然后把“推”划掉了。然后写下:“玩家会自己知道要推”。
霍尔看着那个被划掉的“推”,想起他写的科学家的日志条目。凌晨三点十七分,实验室的门从外向里凹陷。他曾经以为玩家需要知道为什么。现在他突然意识到:也许不需要。也许引擎是对的,至少对这个特定的游戏、这个特定的时刻、这个特定的硬件是这样。引擎说:门在那里,它会开,门后面有东西。这就够了。任何超出这个范围的信息都是奢侈——奢侈得起的游戏在其他平台上,在其他时代里,用其他引擎。但他不想做只需要“够了”的游戏。
这个认知是那晚最后出现的,也是最清晰的。他不是被驱逐了,是他需要的创作空间和id提供的空间之间出现了不可压缩的间隙。那个间隙的宽度恰好等于他的文档厚度——一百四十页,包含一个世界。
霍尔在八月二十五日正式离开id Software。离职文件上,他的头衔仍然是“创意指导”,尽管这个头衔在过去八个月里已经变得像某种名存实亡的爵位。他把设计文档装进纸箱——一百四十页打印纸,两本活页夹,三张软盘备份。硬盘执行了格式化,命令行窗口里的光标闪烁了十五秒,然后返回“格式化完成”。所有字节清零。那个凌晨三点十七分的科学家,那些从外向里凹陷的门,那些花了三个夜晚校准的句子碎片——全部归还给了操作系统。
离开那天下午,办公室里没有告别派对。罗梅罗在IRC上,正在和密歇根大学的玩家战队确认死亡竞赛时间——那个他创造的FPS连线术语,此刻正将他的王国延伸到更远的地方。卡马克在代码编辑器前,正在重构碰撞检测模块——他后来在日记里记录当天完成了十二项重构任务。阿德里安在像素编辑器前,调整无皮肤恶魔的下颌骨阴影。杰伊在电话上,正在和Apogee确认共享软件版本的发行细节。他后来在年度财务回顾中写道:第三季度人力成本下降14%,核心开发进度未受影响。
所有这些在那个下午都以现在进行时态运转,没有因霍尔的离开而停滞,也没有因他的缺席而减速。这个系统的效率不在于它多快地生产了一款游戏,而在于它多快地适应了一个共同创始人的消失。id Software那天下午证明了一件事:它不需要它的所有创始人。它只需要两个人,以及他们之间的关系尚能运转。当这个推论被嵌入公司基因之后——在霍尔把纸箱放进车后备箱的那个精确秒数之后——系统就获得了自我筛选的永久授权。
霍尔的汽车驶出停车场,后视镜里最后出现了id办公室的窗户。那些窗户在达拉斯八月的日光下反射出统一的白色光斑,看不清里面有谁,看不清谁在做什么。会议室的白板上,那个矩形还在,框着一幅新的关卡俯视图——纯粹的死亡竞赛地图:对称、均衡、没有任何文字注释、没有除弹道弧线以外的任何曲线。罗梅罗在那张图角落写了一行小字,潦草迅速,但还在:永不停车的油门。
卡马克在那天晚上的日志里只写了三行代码注释,其中一行是:“// 碰撞检测优化:移除一切非必要的多边形。”这不是隐喻,是工作笔记。但写完抬头时,他看了一眼空荡荡的会议室,然后继续打字,手指以恒定的节奏敲击键盘——他的节奏从不改变,不管房间里有多少人,不管谁刚刚离开。引擎继续运转。
那个被移除的创意指导的缺席,以看不见的方式嵌入了id Software往后的所有产品:《DOOM》没有角色对话,《雷神之锤》没有剧情过场,此后的id游戏只在加载画面上提供最简短的文字,而那文字的功能不是讲述一个世界,而是解释即将开始的杀戮发生在什么背景里——并且如果你跳过它,游戏机制不会有任何变化。故事永远是子弹的余烬。这是霍尔被筛除之后留在公司基因里的负形空间。它不是一个传统的遗产,它是遗产被移除之后留下的空腔——那座雕塑没有做成,但模具留下来了,此后每一次浇筑金属时,模具都决定了铸件的形状。
在达拉斯郊区另一栋建筑里,杰伊·威尔伯独自坐在办公室中,面前摊着账册。他刚刚更新了id Software的财务模型,删除了汤姆·霍尔的薪资和股权支出。这些数字被重新分配到两项预算中:罗梅罗的营销活动和卡马克的硬件采购。铅笔停顿了一瞬——不是因为犹豫,是因为他注意到了一些以前从未如此清晰的东西。创意指导的成本被完全释放。系统在你失去它之后才暴露出真正的运行方式:它不是一台完整的机器偶尔缺少某个零件,而是一台原本就只围绕两个轴心设计的陀螺仪,第三个轴的存在只是在过去掩盖了这个设计事实。现在第三个轴安静地消失了,陀螺仪继续旋转,稳定性和以前完全一样。这意味着第三个轴从一开始就不是结构性的。
杰伊在账册空白处写下一行铅笔字:“当创作核心的筛选逻辑如此高效时,维持外部稳定——商业、法律、运营——的压力会全部集中在商务层。系统对内部冗余的容忍度为零,意味着商务层必须在每次筛选发生时处理外部碎片:离职协议、竞业限制、舆论管理、合作伙伴的询问。这些碎片的处理成本不显示在引擎的代码里,也不显示在死亡竞赛的记分板上。它只显示在这本账册的负债栏里。目前负债栏为空。未来状态未知。”
写完这行字,他关上账簿,穿过空无一人的走廊。经过卡马克和罗梅罗的隔间时没有停步——两人都在各自的屏幕前,一个在代码里,一个在IRC里。台灯的照射范围分别框住他们的肩膀,中间隔着一段没有照到的暗区。那个暗区不宽,但它存在于这间办公室的物理空间中,正如霍尔离开之后留下的那个空工位,安静地占据着id Software平面图上的某组坐标。没有人搬进那个工位。不是因为纪念,是因为没有人需要。窗外,德克萨斯州梅斯基特市的夜色铺展在加油站和停车场的灯带里,而在另一间没有公司标志、没有恶魔草图的办公室里,杰伊·威尔伯蹲下身,从粉红色的塑料洗衣篮里抓出了第一把来自玩家的信件。