第 2 章

第2章 雪泥与软盘(约 1991 年)

路易斯安那州什里夫波特的夏天不像是夏天,更像是一台坏掉的空调在跟整个世界赌气。湿热的空气黏在皮肤上,怎么也甩不掉,而Softdisk公司的办公室就藏在这座城市边缘一栋毫无特征的米色建筑里,外墙的油漆正在剥落,停车场上的裂缝里长出了野草,一切都在缓慢地腐烂,除了那些电脑——那些米色的、嗡嗡作响的IBM PC兼容机,整齐排列在格子间里,像修道院里沉默的僧侣,日复一日地执行着同样的仪式:编译、写入、复制、邮寄。约翰·卡马克穿过那道玻璃门的时候,手里拎着一个装满了软盘和打印资料的纸箱,头发乱糟糟的,眼镜片上有一道划痕,但他没有注意到这些。他注意到的是空间本身——走廊的长度、天花板的高度、荧光灯的色温、格子间挡板的材质与厚度。他的大脑自动开始建模,将这座办公室转化为一组可量化的参数:从入口到最远端工位的步行时间约为十一秒,空调系统的噪音在六十分贝左右,每排格子间之间的通道宽度刚好允许两个人侧身通过。

这些数据没有实际用途,但他的思维就是这样运转的——它必须将混沌的外部世界压缩成一组可理解、可操控的变量,否则那个世界就会重新变成他童年时期天花板上那些无法解释的裂缝,变成继父的咆哮和搬家通知的不可预测性,变成少年管教所里那种被他人意志支配的无力感。他需要秩序。他需要系统。他需要一切都在逻辑的框架内运转。人事部的主管把他领到了他的工位,那是一个位于楼层深处的格子间,桌面上堆满了打印出来的订阅投诉信和尚未分类的客服工单。卡马克坐下来,盯着那堆纸看了大约三秒钟,然后开始将它们按照日期和投诉类型重新排列。没有人要求他这么做。他只是无法容忍无序。在接下来的六个小时里,他处理了四十七封投诉信,每一封都用同样的措辞回复——不是因为他缺乏同理心,而是因为他已经计算出这种措辞在统计学意义上最能降低用户继续纠缠的概率。他的同事们从他身边经过时,会看到一个几乎完全静止的身影,只有手指在键盘上移动,速度不快但节奏恒定,像一台精密仪器在执行预设程序。

这台精密仪器被误送进了邮购部。这个认知在卡马克第一天上班的中午就完成了自我安装。Softdisk的主营业务是制作月度订阅软盘杂志,每一期包含若干短小的工具软件和简单游戏,打包塞进一张五又四分之一英寸的软盘,然后邮寄给全国各地的订阅用户。这是一条标准化流水线:程序员按照规格说明编写代码,美工按照模板绘制像素图,测试员按照清单检查功能是否正常,最后所有内容被灌入母盘,复制、贴标签、装箱、发货。流水线的逻辑是稳定、可控与平庸的批量生产。它不需要任何人突破任何边界。它不需要任何人质疑PC的屏幕刷新机制能否实现每秒六十帧的横版滚动。它只需要足够填满下一期杂志的内容,不多不少,刚好够用。卡马克在第一天晚上就违反了这条逻辑。他没有离开办公室。当其他员工在五点钟陆续散去时,他坐在自己的格子间里,面前是一台公司的386 PC,屏幕上显示的不是订阅投诉数据库,而是一段汇编语言代码。他在调试PC内置扬声器的波形输出。这不是他的工作任务。

没有人要求他这么做。但他已经注意到这台机器的扬声器电路存在一个微妙的时序问题——CPU向扬声器端口写入数据时,总线延迟会导致波形出现肉眼不可见但理论上可测量的失真。这个失真对播放系统提示音毫无影响,但如果有人试图用扬声器产生精确频率的连续音调——比如模拟一个游戏引擎的背景音乐——就会变成灾难。卡马克正在做的事情就是消除这个失真。他已经花了一个小时逐条检查指令周期,调整了写入时序,在关键位置插入了NOP指令来对齐总线状态。最终,当他在调试器中触发那段代码时,扬声器发出了一声干净到近乎不真实的单音——440赫兹,标准A音,没有任何谐波畸变。他听了几秒钟,然后关掉了扬声器。办公室里重新陷入寂静,只有空调压缩机在远处发出低沉的嗡鸣。他继续写下一段代码。这个瞬间没有任何见证者。但它是卡马克在Softdisk的第一夜实验的开端——一种只有他自己能听见的完美波形,从一台被设计用来发出哔哔声的廉价扬声器中升起,像一滴清水落入浑浊的池塘。

他已经建造了自己的秩序孤岛。这座孤岛终将扩张。在这座建筑的另一个角落,约翰·罗梅罗正在建造一个王国。罗梅罗的工位不在格子间区域。他属于一个负责处理公司各种边缘需求的小组,后来逐渐接管了《玩家之刃》的游戏内容生产,成为事实上的核心。他的桌面状态与卡马克形成极端对立:软盘散落在键盘旁边,打印出来的游戏设计草图用胶带贴在挡板上,一台显示器上开着Turbo Pascal的编辑器,另一台显示器上正在运行某个街机游戏的模拟器,音箱里播放着重金属乐队的磁带,音量被调低到刚好不会引来隔壁财务部门投诉的程度。罗梅罗本人则在这片混沌中高速移动——他的手指在键盘上敲击的速度快到让旁观者怀疑他是否真的在思考,他的椅子几乎没有静止的时候,他会突然站起来走到别人的工位前扔下一句话,然后不等回应就回到自己的屏幕前继续敲击。他在1989年3月加入Softdisk,比卡马克早了一年多。

在那段时间里,他已经完成了两件事:第一,他用编程速度碾压了几乎所有同事,建立了一种基于实力的非正式权威;第二,他将游戏设计变成了一种传染性的狂热——他会用午休时间组织即兴的高分竞赛,会在下班后拉着愿意留下的人一起拆解最新街机游戏的关卡设计,会用那种混合了技术精确性和表演性热情的语言说服别人相信某个目标值得追求。他的能量具有煽动性。它能把一个沉闷的合同编程任务变成一场比赛、一次冒险、一个证明自己的机会。但罗梅罗的能量也被困在了Softdisk的范式之内。他为《玩家之刃》编写的游戏必须符合公司的硬件标准——16色EGA图形适配器,低端CPU,不能占用太多内存——而且每个游戏的开发周期被压缩到几周之内,因为下一期杂志的截稿日期永远在逼近。更根本的是,这些游戏的版权属于Softdisk。它们是填充物,不是产品。它们被灌入软盘、寄给订阅用户、然后被遗忘,没有人会在意某个游戏是否实现了创新的滚动机制或者设计了精妙的关卡节奏。

罗梅罗知道这一点。他在加利福尼亚的街机厅里学会的那套规则——技巧转化为权力,权力转化为表演,表演转化为排行榜顶端的三字母签名——在这里无法完全施展。排行榜不存在。市场不存在。只有下一期杂志的目录页上会印出游戏的名字,然后一切归零。这种挫败感没有让他停下来。它让他变得更饥饿。当卡马克入职的消息在办公室传开时,罗梅罗的反应是典型的好奇心与竞争本能同时激活。他听说过这个名字:密苏里州来的程序师,在某个计算机杂志上发表过一篇关于图形编程的技术文章,据说能用汇编语言做出一些超出常规的事情。超出常规这个词在罗梅罗的词典里是最高级别的褒义。他已经在这个平庸的修道院里待了太久,任何带有超出常规气味的东西都会像血腥味吸引鲨鱼一样吸引他。他们的第一次实质性接触发生在卡马克入职后的第二周。那天下午,罗梅罗经过卡马克的格子间时——他本来是要去茶水间拿一罐可乐——余光扫到了卡马克屏幕上正在运行的东西。那不是订阅投诉数据库的界面。

那是一个图形演示:一个由16色像素构成的简单场景正在屏幕上横向滚动,背景层的山峦轮廓以某种平滑到不真实的方式从左向右移动,没有闪烁,没有撕裂,没有任何PC用户在运行类似程序时习以为常的画面抖动。罗梅罗停下了脚步。他盯着屏幕看了大约五秒钟——对于罗梅罗来说这已经相当于普通人凝视一分钟——然后他问了一个问题。不是恭维。是审问。语气里混合了震惊、怀疑和一种被冒犯的感觉,因为罗梅罗的经验告诉他PC不可能实现这种效果。EGA图形适配器的硬件不支持平滑滚动。这是已知事实。这是所有为PC平台编写游戏的程序员都接受的物理定律。但此刻这条定律正在他面前被人打破,而打破它的人是一个入职两周、白天在处理客服投诉的新人。卡马克转过身来。他的表情几乎没有变化。他解释了技术原理:他改写了EGA的CRTC寄存器写入时序,在水平消隐期间重新映射了显存的起始地址偏移量。标准BIOS调用每次写入都会触发一次屏幕刷新同步等待,他绕过了BIOS直接操作端口。

罗梅罗听懂了每一个词。他自己也是程序员——一个优秀的程序员——他能理解这段解释的技术含义。但理解技术含义和消化它的实际冲击力是两回事。他继续盯着屏幕上的那个平滑滚动的场景,大脑正在重新校准自己对PC平台可能性的全部认知框架。那感觉像是看到一个物理学家在你面前推翻了万有引力定律——不是在理论上推翻,而是在桌面上做了一个实验,让苹果向上飞了起来。他要求看代码。卡马克把编辑器窗口切换到前台。屏幕上出现了那段汇编语言代码——紧凑、精确、没有任何多余指令。每一行都有注释,但不是那种教科书式的解释性注释;这些注释更像是一个工程师对自己思维过程的速记,只标注关键状态转换和时序依赖关系。罗梅罗逐行阅读的时候,他的大脑同时在两个层面运转:一个层面在分析代码的逻辑结构,另一个层面在评估写这段代码的人的思维节奏。他注意到循环展开的方式——不是教科书推荐的次数而是恰好匹配指令缓存的宽度。

他注意到寄存器分配的策略——不是追求最小占用而是追求最小状态切换延迟。他注意到错误处理——或者说完全没有错误处理,因为作者已经通过静态分析排除了所有可能的边界条件。这不是一个优秀程序员的代码。这是一个用不同方式思考的人留下的思维痕迹。罗梅罗直起身来。他没有说任何正常的赞美词汇。他直接问卡马克能不能把这个做成横版卷轴游戏。卡马克的回答是可以,但这只是一个滚动引擎,没有碰撞检测、没有精灵管理、没有其他必要组件。罗梅罗打断了他——他问的不是技术清单,他问的是能不能做成游戏。能。多久。卡马克的计算大约用了零点五秒。如果只做技术演示版,一周。罗梅罗点了点头。他没有再说什么就转身离开了。但他的步速比来的时候更快了。那天晚上,卡马克正在调试滚动引擎在不同分辨率下的内存带宽消耗时,听到走廊里传来了脚步声。这本身就不寻常——除了他之外很少有人会在下班后留在办公室。

但更不寻常的是脚步声的方向:不是走向茶水间或洗手间然后离开,而是径直朝着他的格子间区域走来。来的人是罗梅罗。他手里拿着一张五又四分之一英寸软盘。盘面上用马克笔写着几个字,潦草但信息完整:关卡名称、图形标准、色彩模式。卡马克接过软盘插入驱动器。屏幕上出现了一个横版卷轴场景:一个像素画风格的洞穴地形,由多层背景组成,前景有平台和障碍物,一个简陋但可辨识的玩家角色站在起点位置。他按下方向键。角色开始移动。画面开始滚动。平滑地滚动。没有闪烁,没有撕裂,没有任何他在其他PC游戏中见过的那种令人不适的画面跳动。这个场景不是技术演示。它是一个可玩的关卡。它有地形逻辑——玩家必须从起点跳跃到一系列平台上才能抵达终点。它有节奏设计——平台之间的距离和高度差经过计算,使得跳跃动作形成了一种直觉性的流畅感。它有视觉引导——背景层的颜色渐变暗示了前进方向。

它甚至有秘密区域——卡马克发现某个看似不可达的平台上有一个隐藏通道入口时,目光停留的时间比平时多了几秒。罗梅罗通宵做出了这个东西。他不是在回应卡马克的技术突破——至少不是以赞美或感谢的方式回应。他是在用行动说话:你打破了物理定律,很好,现在我用你打破的定律搭建出一个让你不得不承认其价值的完整世界。技术再锋利,没有血肉仍是尸体。卡马克盯着屏幕上的那个简陋洞穴关卡看了很久——以他的标准来说很久意味着超过十秒。然后他问了一个技术问题:碰撞检测怎么处理的。罗梅罗说是临时写的矩形重叠判断,精度不够但他需要先看到整体节奏。卡马克又问边界裁剪。罗梅罗说没做裁剪,他把整个关卡地图都加载到内存里然后用滚动偏移量直接索引。卡马克指出那会浪费大约三十K内存,可以用分块索引优化。罗梅罗打断了他——那是优化阶段的事,现在是证明阶段。证明阶段。这个词击中了某个东西。卡马克没有继续争论技术方案。

同一周,汤姆·霍尔走进了《玩家之刃》小组的区域时发现那里聚集了比平时更多的人。霍尔是Softdisk的程序员兼设计师之一,一个性格温和、思维缜密的人,后来成为id Software初期的重要成员;此刻他还只是一个目睹某个事物正在形成的见证者。他看到罗梅罗站在一台显示器前正在运行那个洞穴关卡的改进版本——现在已经加入了敌人角色和简单的攻击判定——而包括阿德里安·卡马克在内的几个同事围在旁边观看。阿德里安·卡马克与约翰·卡马克没有亲戚关系,他是团队的美术师,负责将像素转化为可辨识的角色和场景。霍尔注意到的第一件事是画面的流畅度。那种平滑滚动在当时的PC游戏中几乎不存在——大多数同类游戏要么使用逐屏切换的方式避免滚动问题,要么接受画面撕裂作为不可避免的代价。但这个演示不一样。它看起来像是来自另一个硬件平台——像是从街机或者任天堂主机上移植过来的东西。霍尔注意到的第二件事是约翰·卡马克本人不在场。他问谁做的这个。

阿德里安·卡马克与约翰·卡马克没有亲戚关系,他是团队的美术师,负责将像素转化为可辨识的角色和场景。霍尔注意到的第一件事是画面的流畅度。那种平滑滚动在当时的PC游戏中几乎不存在——大多数同类游戏要么使用逐屏切换的方式避免滚动问题,要么接受画面撕裂作为不可避免的代价。但这个演示不一样。它看起来像是来自另一个硬件平台——像是从街机或者任天堂主机上移植过来的东西。霍尔注意到的第二件事是约翰·卡马克本人不在场。他问谁做的这个。

阿德里安说关卡是罗梅罗做的,引擎是卡马克写的。霍尔又问卡马克人在哪。罗梅罗头也不回地说在他的格子间里,正在重写声音驱动。霍尔走到卡马克的格子间时看到的情景与那个热闹的小组区域形成了尖锐对比:一个人坐在屏幕前正在阅读某份技术文档——后来证明是PC扬声器的脉冲宽度调制规格说明——周围安静得像一座单人实验室。霍尔站在那里看了几秒钟然后转身离开了。他没有打扰卡马克。但他在回自己工位的路上意识到某个东西已经发生了改变:这两个人甚至不需要在同一间屋子里就能产生合力。这种合力在接下来的几周里加速运转。卡马克继续在夜间进行技术实验。他把PC扬声器改造成了一个能输出复杂数字音频的设备,通过快速切换音量寄存器来模拟波形叠加。他优化了EGA调色板的写入时序,使得可以在扫描线中段切换颜色从而突破16色的理论限制,这个技巧后来被同行称为调色板分割。他甚至开始研究80386 CPU的保护模式内存寻址机制,以便未来突破640K常规内存的上限。

每一项突破都是一份独立的技术成就;但每一项突破都在等待一个能让它获得血肉的人。罗梅罗则持续用这些新能力搭建可玩的内容。他为平滑滚动引擎设计了第二个关卡——一个垂直方向延伸的塔楼结构。他用改进后的声音驱动为游戏加入了脚步声和跳跃音效,粗糙但有效。他开始绘制更大尺寸的角色精灵图来测试引擎在高分辨率模式下的性能极限,结果证明引擎可以处理但需要优化内存布局。每一个关卡都是一份独立的设计作品;但每一个关卡都在依赖一个不断扩展其可能性的技术基础。他们之间的交流方式逐渐形成了一种固定模式:卡马克会在深夜完成某项技术突破后把演示文件放在网络共享目录里;第二天早上罗梅罗到达办公室时会发现那个文件并立即开始用它搭建新的内容;当天下午或者晚上两人会进行一次简短的技术讨论,通常不超过十分钟,内容集中在具体的技术参数和设计需求上;讨论结束后各自回到自己的领域继续推进各自的方向。这种交流几乎不包含任何社交性的内容。

他们不聊天气、不聊体育、不聊各自的生活经历。事实上他们在共事数月后仍然对彼此的个人历史知之甚少。他们的对话像是两台精密仪器之间的数据交换——精确、高效、完全服务于共同目标。但这正是这种合作模式的力量所在:它不需要相互欣赏的情感基础来启动。它只需要一种带有摩擦的识别——在对方的代码或设计中看见一种异于自己的思维节奏,然后确认这种差异不是障碍而是互补。摩擦确实存在。卡马克对罗梅罗的某些设计决策感到不解——比如为什么要在关卡中放置那些纯粹装饰性的像素图案,它们消耗内存但不影响玩法;或者为什么坚持使用某种特定的颜色搭配方案,它在技术上不是最优解因为会减少可用调色板条目。罗梅罗则对卡马克的某些技术优先级感到不耐烦——比如为什么要在声音驱动还没有完全稳定的时候就开始研究保护模式寻址,它对于当前项目不是必需的;或者为什么每次讨论技术方案时都要从第一原理开始推导而不是直接给出结论,它让十分钟的讨论变成了二十分钟。但他们从未让这些摩擦升级为冲突。

原因是他们各自都能看到对方产出的结果——那些结果的质量本身构成了最有力的辩护。当罗梅罗看到卡马克的保护模式实验最终让游戏突破了640K内存上限从而可以容纳更大的关卡地图时,关于优先级的质疑自动消解了;当卡马克看到那些装饰性像素图案在最终版本中创造出的视觉深度让测试玩家的沉浸感显著提升时,关于技术最优解的判断自动让步了。结果裁定一切。这是他们之间最初的契约条款之一——也许是最重要的一条。九月中旬的一个傍晚,空气仍然湿热但天色已经暗下来,汤姆·霍尔坐在自己的工位上听到了从罗梅罗那边传来的笑声。不是普通的笑声;是那种混合了兴奋和不可置信的笑声,通常意味着某个东西刚刚超出了预期阈值。他走过去时看到的情景是这样的:屏幕上运行着一个完整的横版卷轴游戏关卡——不是之前的洞穴或塔楼原型而是经过了完整美术处理的版本,虽然仍然是16色EGA图形。主角是一个穿着橄榄球头盔的小男孩形象,这个角色后来被命名为指挥官基恩。

场景从洞穴扩展到了户外地形,有天空背景层和云朵动画。敌人角色有至少三种不同的行为模式——巡逻型、追击型和固定型。而且整个游戏的流畅度达到了一个让霍尔下意识地以为自己在看一台任天堂主机屏幕的程度。霍尔问这是完整的吗。罗梅罗说这是第一关,后面还要做两个世界一共大概十五关。霍尔问引擎能撑住吗。卡马克的声音从后面传来——他不知什么时候也走了过来——他说昨天晚上测试了极限负载,同时激活三十二个精灵对象的情况下帧率仍然保持在三十帧以上。霍尔看着屏幕上的那个戴着橄榄球头盔的小男孩在平滑滚动的世界里奔跑跳跃攻击敌人收集道具然后抵达关卡终点的标志物,一个简单的旗帜动画。他意识到自己正在见证某个东西的形成过程——不是一个游戏,而是两个人在短短几周内建立起来的一套合作机制:一个人负责拓展可能的边界,另一个人负责在边界内填满让人欲罢不能的体验,而这套机制运转得如此高效以至于它已经开始输出超出所有人预期的产物。霍尔问他们给这个东西起名字了吗。

罗梅罗说指挥官基恩。霍尔问为什么是橄榄球头盔。罗梅罗说因为他画头盔比画头发容易。霍尔笑了,但他同时也在思考另一个问题:这个游戏不属于Softdisk的标准流水线产品范畴。它不是为填充下一期杂志而制作的。它的规模和技术水平都超出了公司对《玩家之刃》内容的期待值。而且最重要的是,它的核心组件——平滑滚动引擎——是卡马克在公司设备上利用下班时间独立开发的。这意味着版权归属存在灰色地带。他没有立即说出这些担忧,但他把它们记在了脑子里。十一月初,阿德里安·卡马克完成了指挥官基恩的主要角色动画帧和背景美术资产之后,整个项目进入了一个新的阶段:组装完整的可分发版本并寻找将其推向市场的方式。Softdisk的模式显然不合适。《玩家之刃》是一个订阅服务,其读者期待的是每月一张包含若干小作品的软盘,而不是一个完整的长篇游戏。而且公司的版权政策意味着如果通过正常渠道发布这个游戏,它将永远属于Softdisk而非创作者本人。他们需要另一条路径。

那条路径的名字是Apogee Software——一家位于德克萨斯州加兰市的小型公司,由斯科特·米勒运营,其商业模式在当时几乎是独一无二的:共享软件发行。具体做法是将游戏的第一部分,通常是第一幕或前几个关卡,作为免费试玩版通过BBS网络和用户之间的软盘复制进行传播;如果玩家喜欢该游戏想要玩到完整版本,则需要直接向Apogee支付费用,然后Apogee会邮寄包含剩余内容的软盘套装给购买者,同时将收入的一部分作为版税支付给开发者。这个模式在1990年的PC游戏市场中几乎不存在,但它恰好匹配了指挥官基恩的两个关键特征:第一,它的技术质量远超当时大多数共享软件游戏,因此免费试玩版极有可能引发口碑传播;第二,它的章节式结构——三部曲形式——天然适合分割成免费部分和付费部分。米勒在收到试玩版软盘后给出了积极回应。他意识到这个游戏的平滑滚动和流畅操作在PC平台上构成了一种前所未有的体验,其市场潜力可能远超他在共享软件渠道中见过的任何产品。

谈判过程持续了数周。最终达成的协议是:深思团队——id Software的前身——将以独立身份与Apogee合作发布指挥官基恩三部曲,采用共享软件发行模式;同时团队成员将继续为Softdisk工作以履行现有合同义务,但独立项目的版权归创作者所有。1990年12月,三部曲正式发售。首月收到的订单数量超出了Apogee此前的任何发行记录。具体数字在不同来源中略有出入,但所有人都同意一个事实:它成功了,而且成功得很快。但本章的历史内容并不在于发售成功本身,而在于发售之前那个决定性时刻的结构性意义:一堆软盘被塞进联邦快递的信封寄往德克萨斯州加兰市的那一刻,没有人确切知道它会通向哪里,但齿轮已经咬合且无法逆转。路易斯安那州什里夫波特的冬天不像北方那样寒冷,但它有自己的折磨方式:湿冷和冻雨交替袭击这座城市,而Softdisk办公室的暖气系统年久失修导致室内温度波动剧烈。

当室外气温降到冰点以下时,靠近窗户的区域会出现凝结水珠,而那些堆放在窗边储物柜上的空白软盘盒偶尔会被滴落的水珠浸湿,标签上的墨水会洇开变成模糊的蓝色条纹,看起来像是被某种半融化的雪泥弄脏了。十二月的某个清晨,卡马克和罗梅罗站在办公室的那台软盘复制机前面,将三部曲的第一部分灌入五十张软盘。这些软盘来自那个被水珠浸过的储物柜,其中几张的标签上确实有洇开的墨迹,但没有人停下来更换它们,因为时间紧迫而且标签上的字仍然可读——“Commander Keen, Ep 1: Marooned on Mars”——蓝色字迹略微模糊但信息完整无误。五十张软盘被分成两摞用橡皮筋捆好,塞进联邦快递的信封,那种硬纸板材质内衬气泡膜的信封可以防止运输过程中的弯折损伤。信封上写着斯科特·米勒在加兰市的地址,字迹是罗梅罗的,潦草但准确,因为他已经在脑子里反复确认过那个地址不下十次了。

卡马克看着那个信封被扔进公司的待寄邮件箱时没有任何表情变化,但他的大脑正在运行一条独立的评估线程:共享软件模式的结构性优势是什么?答案是它绕过了传统零售渠道的库存风险和货架空间限制,将市场推广的成本转移给了用户之间的自发性复制行为,而开发者的收入直接来自终端用户的购买决策。这种去中介化的结构在理论上可以产生比传统发行模式更高的版税比例,前提是产品的质量足够驱动用户从免费试玩转化为付费购买。这个前提是否成立取决于即将到来的市场反馈,而市场反馈是不可预测的。因此这条评估线程在此刻只能输出一个结论:概率未知,但结构合理,值得执行。

罗梅罗的大脑运行的是完全不同的评估线程:那个信封里的五十张软盘会在几天后抵达加兰市,然后米勒会把它们当作种子盘分发给BBS管理员和早期测试者,然后那些测试者会把游戏上传到全国各地的BBS服务器,然后成千上万的人会下载它运行它,看到那个平滑滚动的世界,听到那些粗糙但有效的音效,操作那个戴着橄榄球头盔的小男孩跳跃在火星表面,然后其中一部分人会想要玩到剩下的关卡,然后他们会寄出支票,然后版税支票会寄回来。这条线程没有输出结论,因为它不是一条逻辑推理线程,它是一条欲望线程,它不需要结论,它只需要燃料。而燃料就是此刻那个信封落在待寄邮件箱底部发出的轻微声响。汤姆·霍尔那天也在场,但他不是站在复制机前面,而是坐在自己的工位上修改某个《玩家之刃》合同项目的代码,同时用余光观察着那两个人在邮件箱旁边的短暂停留。

他从他们的肢体语言中读取到了一种信号:这两个人已经不在Softdisk了,即使他们的身体仍然每天出现在这座米色建筑里,即使他们仍然按时完成公司指派的编程任务,他们的注意力和能量已经转移到了别处——转移到了那个信封即将抵达的地方,转移到了共享软件市场那个几乎不存在的渠道,转移到了一个尚未命名的实体即将从深思蜕变为id Software的那个临界点上。霍尔关掉了编辑器,站起来走到窗边。外面正在下冻雨,雨水打在停车场的沥青地面上溅起细小的水花,远处的天际线被低云压得很低,整座城市看起来像是被塞进了一个灰色盒子里。但霍尔在想的是另一个画面:那个信封正在联邦快递的分拣中心里移动,正在被扫描分类装载上卡车或者飞机,正在穿越州界,正在接近德克萨斯州北部,正在接近一个将改变一切的回音。他不知道那个回音的具体内容,但他知道它会到来。因为他在过去三个月里亲眼目睹了两个截然不同的天才如何在摩擦与识别中咬合出一套合作机制。

这套机制已经产出了一个完整的游戏,而那个游戏已经被装进信封寄了出去。剩下的只是等待市场确认它的价值——或者否定它。但即使是否定也无法逆转已经发生的事情:齿轮已经咬合,引擎已经运转,而引擎一旦开始运转就不会停下来,因为停下来意味着回到混乱,意味着回到不可预测,意味着回到那个由平庸流水线、合同期限和版权归属纠纷构成的糟糕系统。而这两个人都已经受够了糟糕系统。他们已经选择了另一个方向。他们已经建造了自己的秩序孤岛与表演王国,而这座孤岛与这个王国终将在接下来的某个清晨、某间格子间里完成交汇,然后扩张,然后吞噬掉周围的一切——包括这座平庸修道院本身,包括那些堆积如山的订阅邮件,包括那个米色建筑的米色墙壁,包括停车场裂缝里的野草,包括整个什里夫波特的湿热空气,然后继续向外扩张,直到抵达密西西比河的另一端,直到抵达车库之前的那个车库,直到抵达那条尚未命名的河流的对岸。

信封落在邮件箱底部的轻微声响在空荡的办公室里回荡了几秒钟,然后被空调压缩机的嗡鸣吞没了。办公室重新陷入那种修道院式的寂静,只有荧光灯在头顶发出持续的低频嗡声,只有远处的打印机偶尔启动吐出一张报表,只有雨水打在窗户玻璃上然后滑落,留下细长的水痕,像某种缓慢的洇开的蓝色墨水,正在书写一个尚未完成的名字。