第 6 章
第6章 罗梅罗的王国(约 1993 年)
威斯康星大学麦迪逊分校FTP服务器的系统日志记录了一条发生在1993年12月10日凌晨的事件:一个名为DOOM1.EXE的文件,大小约二点三九兆字节,上传自一个属于得克萨斯州达拉斯地区IP地址段的远程终端。这条日志本身没有任何戏剧性——它被自动写入,与当天服务器处理的其他数千次文件交换请求使用完全相同的格式,行宽固定,时间戳精确到秒,不包含任何情感或预示。但四十分钟之后,当第一个下载请求被触发时,这行平淡的记录开始显现它的真正分量。下载请求不是依次到来的。它们同时抵达,从校园网内部的十几个节点、从外部路由的数十条连接、从遍布北美大陆的镜像服务器请求队列中同时涌出,像某个阀门被从管道系统中彻底移除。到凌晨五时,威斯康星大学校园网的可用带宽已降至接近零。学生们无法登录选课系统。教授们的电子邮件客户端持续报告连接超时。
计算机科学系机房内,那台承担FTP服务的DEC Alpha工作站正以全负荷状态运行,硬盘读写头产生的物理共振在机箱内形成一种持续的高频振动——机房管理员后来描述为“像一台以恒定转速运转的真空吸尘器被锁在铁柜里”。而在一千英里以南的得克萨斯州麦斯奎特市,id Software的办公室里,约翰·罗梅罗正注视着同一事件在三个不同的显示器窗口中同时展开。他蓄着垂至肩胛的长发,穿着黑色T恤,面前的CRT屏幕上平铺着威斯康星FTP服务器的连接状态监控页面、EFnet上的#doom频道实时滚动窗口,以及Doom的关卡编辑器。连接数从两位数跳至三位数,再跳至四位数。他的表情不是惊讶。猎人看见猎物踏入陷阱时不会惊讶。他切换至IRC窗口,打出了一行字,内容大意是:全部咬钩,无一例外。
Apogee的斯科特·米勒在三年前已用《指挥官基恩》三部曲证明了“免费发布第一章、对后续章节收费”这一模型在早期PC游戏市场上的有效性,而罗梅罗是那一策略的亲历者和受益者。但Doom的共享软件策略与《基恩》之间存在本质差异。《基恩》的免费章节被设计成一件完整的礼物:一个叙事闭环,一个友好地邀请你继续购买的提示界面,一种让玩家感到被尊重而非被利用的分发姿态。Doom的共享软件版本则不是礼物,而是注射器。九关完整的游戏内容——全部武器,全部怪物,全部音效反馈与暴力机制——被压缩进一个不足三兆字节的文件中,经由互联网的早期动脉被注入北美大学校园网、军方研究实验室的本地服务器、欧洲拨号BBS节点的文件库,以及任何拥有386以上处理器和调制解调器的个人电脑硬盘。罗梅罗对此的论证逻辑是:如果你只让玩家尝到一滴血,他们会好奇那是什么味道。但如果你把整具猎物的尸体扔到他们面前,让他们亲手撕开皮肤、感受肌肉纤维断裂的触感——他们就会变成捕食者。
罗梅罗是共享软件模式的亲历者。早在1990年,他与卡马克、霍尔、威尔伯在Softdisk公司工作时,就曾连续奋战近三个月,晚上还将公司电脑搬回卡马克住所,为天极软件(Apogee Software)开发了《指挥官基恩》三部曲。这部作品1990年12月发售,旋即取得成功,天极公司此前月销售额约7,000美元,但《指挥官基恩》仅前两周销售额就达30,000美元。正是这张版税支票,让他们得以在1991年2月1日创立id Software。
而捕食者永远不会只满足于一次猎杀。这个论证在随后的七十二小时内得到了血腥验证。威斯康星大学的FTP服务器在第一天崩溃了三次,管理员不得不将最大并发连接数从默认值逐级上调,最终临时关闭服务器两个小时以重新配置路由表。卡内基梅隆大学的镜像站点状况更糟——系统管理员在Usenet上发布了一封公开信,恳请id Software提供物理介质的Doom副本,理由是他的网络基础设施无法承受这种规模的文件分发负载,并补充说这不是设计缺陷而是热力学定律的失效。这封信被转发至#doom频道后,罗梅罗将它打印出来,贴在id办公室厨房的冰箱门上。冰箱门上已经贴了三封类似信件和两篇从早期网络新闻站点截取的报道,其中一篇的标题直截了当地将Doom的发布描述为对五所大学校园网的瘫痪性事件。但这些数据——连接数、带宽占用率、下载总量——只是王国扩张的外部体征。罗梅罗真正建造的东西发生在这些数字之下更深的层面。
他要建造的不是一个用户群,而是一个引力漩涡,一种将玩家、关卡设计师、死亡竞赛狂热分子、BBS亚文化野蛮人全部卷入其中的集体体验场。这个场的基础不是代码——代码是卡马克的领域。也不是美术资源——阿德里安·卡马克(与约翰·卡马克同姓但无血缘关系)负责将怪物和武器的纹理从湿石膏雕塑和泥塑模型中数字化,他的工作负荷已压至每日十四小时。这个场的基础是一种对“玩游戏”这一行为的根本性重构。在Doom之前,第一人称视角的游戏存在但玩家角色是模糊的:一个光标,一个十字准星,一只从屏幕底部伸出的持枪的手。在Doom之前,多人游戏存在但它通常意味着两根串行电缆连接两台电脑,或同屏分区的轮流操作。在Doom之前,玩家社群存在但它是被动的、接受性的、安静等待下一期杂志评测的。罗梅罗改变了所有三项设定。他在Doom的关卡中隐藏了自己的声音——最终Boss“邪恶化身”的咆哮声效,经音频编辑软件的参数扭曲后,混合了他本人对着麦克风发出的原始吼叫。
他将id Software办公室的内部照片嵌入游戏通关画面的背景纹理中。他在随游戏分发的文本文件里留下一长串致谢名单,全字母大写,充满刻意制造的语法错误和地下刊物式的排版混乱。这些行为指向同一个目标:模糊游戏与现实之间的分界,模糊设计师与玩家的身份差异,模糊消费与参与的区别。而整套操作中最致命的一击,是死亡竞赛。死亡竞赛模式的加入并非技术必然。从引擎架构角度看,支持两台以上电脑通过调制解调器或局域网同步游戏状态,是一项复杂工程,需要卡马克在渲染循环和网络协议栈之间进行大量底层调整——数据包丢失补偿、客户端预测、游戏状态的权威性仲裁。卡马克对待这项功能的态度是纯粹技术性的:一个值得解决的分布式系统问题,一个关于不可靠信道上确定性同步的有趣挑战。但罗梅罗推动死亡竞赛的动力与技术考量无关。他要的不是功能。他要的是一种竞技形态——一种允许他本人亲自下场、以公开身份对网络中匿名对手进行追击和处决的合法架构。
在Doom发布后的第一个月内,罗梅罗在id办公室的内部局域网中保持不败。这间办公室位于麦斯奎特市一座单层商业建筑内,与一间牙科诊所和一间税务准备服务共享停车场。白天,这里充满键盘敲击声、重金属吉他独奏和工业风扇对抗得州热气流的嗡鸣。到了夜晚,当卡马克和其他程序员各自进入独立代码工作状态后,罗梅罗会调暗灯光,将全部联网的486电脑启动至Doom的多人模式,然后等待他的猎物。他使用的玩家ID不是姓名缩写或常用网名,而是一个全大写的战斗代号,以下划线分隔——这是早期BBS文化的标准命名惯例,也是对重金属乐队标志美学的直接挪用。他偏好的武器是火箭筒。他的战术理由是:如果需要开第二枪,说明第一枪的位置从一开始就选错了。当远程玩家开始通过调制解调器拨入id的服务器接受挑战时,罗梅罗将这种表演转移至公共空间。
他在EFnet的#doom频道张贴战报——击败某位匹兹堡玩家的详细过程被写成类似拳击赛事报道的文本,包含击杀数、移动路线分析和一段对所有潜在挑战者的开放式邀约,大意是他的火箭筒正在等待新的靶子,任何认为自己可以在死亡竞赛中幸存的人都可以尝试。他在CompuServe的游戏论坛上使用一个包含“DOOM”和“MASTER”字样的签名档,回复每一个声称发现了隐藏关卡或捷径的帖子,回复内容通常不超过两个词,传递的信息明确而一致:这些发现不是新大陆,而是他早已在地图上标记过的已知坐标。当某家关注技术文化的杂志编辑通过电子邮件请求采访时,罗梅罗的回复不是标准的企业公关文本,而是一幅用ASCII字符绘制的双管霰弹枪图案,附了一行字,要求对方带好盔甲前来。这不是一个游戏设计师在执行公关策略。
这是一个在亚利桑那州尤马市街机厅里度过少年时代的人,终于获得了他从八岁起就想得到的东西——不仅仅是在既成游戏中获得最高分的能力,而是成为定义游戏规则的那个人。在尤马的街机厅里,技巧是一种权力,排行榜顶端的三个大写字母是对抗外部世界混乱的唯一武器。在Doom的多人服务器上,技巧依然是一种权力,但它的行使范围不再局限于一台机柜屏幕顶端的像素排列。它现在可以穿透铜线、跨越州界、在数千台CRT显示器的荧光中同时闪现。当罗梅罗在死亡竞赛中追击某个杜克大学的学生时,他不是在玩游戏。他是在建造一座以他自己的竞技风格为原型的角斗场,并将早期互联网的全部人口强制转化为观众。观众回馈是规模惊人的。Doom发布后三周内,id Software的办公室信箱——物理信箱,铁皮制,标准美国邮政服务规格,挂在停车场入口处——开始以无法被忽视的方式溢出。第一天,邮政员从信箱中抽出四十七封玩家来信,内含现金、支票和写在活页横格纸上的感谢信。第二天,八十九封。
到第二周结束时,负责拆信的兼职行政人员不得不使用一个塑料洗衣篮搬运每日邮件——这个洗衣篮后来在互联网历史的民间叙事中被固化为一个装满现金的容器。实际情况没有那么戏剧化但也相差不远:篮中确实有大量支票,面额从十五美元到五十美元不等,支付来自那些玩过共享软件后决定购买完整版的玩家。但更多的内容不是钱。更多的内容是请求——关卡设计建议、武器数据修改提案、死亡竞赛战术分析、对最终Boss难度过高的愤怒投诉,以及大量手绘关卡草图。这些草图用铅笔绘制在笔记本纸上,附带详细的敌人位置标注、秘密通道说明和弹药配置建议,仿佛寄信人理所当然地认为id Software会将每一幅草图都制作成官方扩展内容。罗梅罗逐字逐句地阅读每一封。不是浏览,不是抽样,而是全部。他用红色记号笔在信纸空白处写下批注。对于他认为可以采用的创意,画一个圈,签上姓名缩写。对于他认为显示出根本性理解错误的设计,画一个叉,签上姓名缩写。
对于他认为值得直接对话的来信者,写下自己的直线电话号码,签上姓名缩写。他将所有包含关卡设计草图的信件单独堆成一摞,放在显示器旁边。那摞纸的高度最终达到了十九英寸。他对这摞纸的处理方式不是归档,不是整理,而是一种近乎物种收集的热情——每一份草图都是某个匿名玩家的大脑在Doom的感官冲击下产生的原始输出,是王国扩张过程中从边缘地带回收的战利品。他不打算将任何一幅草图直接转化为官方关卡。他想要的是这些草图本身作为战利品存在这一事实。id Software团队其余成员对此反应各异。程序员戴夫·泰勒将这批信件收藏称为档案室,每次经过那张桌子时都会放慢脚步用眼角余光扫视最新抵达的信封邮戳。阿德里安·卡马克保持职业性沉默——他的纹理绘制工作已经超过负荷极限。而约翰·卡马克的反应是最简单、也最能说明问题的:他没有反应。当信件堆开始侵占两台电脑之间的共享空间时,卡马克将键盘向左移动六英寸,继续写代码。
不是无礼,不是故意忽视,而是真正的、纯粹的、不带有任何情绪色彩的不注意。那些信件所代表的一切——玩家的热情、社群的扩张、罗梅罗正在建造的文化王国——不在卡马克的注意力半径之内。他的注意力半径在当时大约是八英寸:他的显示器屏幕的宽度。屏幕上的内容是一份关于二叉空间分割树性能优化的笔记,以及一幅用ASCII字符绘制的下一代引擎室内场景渲染草图。草图中的标注不是怪物位置和秘密通道,而是光线衰减函数和纹理内存分配的十六进制地址。它们指向的方向不是现在,而是一个在1993年12月这个时间点上尚未被任何人完整看见的未来。这就是这场膨胀的本质差异。同一间办公室,同一个历史节点,同一款正在爆炸式成功的产品,但两个约翰的目光朝向截然相反的方向。卡马克看着Doom的代码库,看到的是不完美——渲染管线中残留的精度损失,网络协议层中为快速上线而临时写入的硬编码常量,纹理映射算法中对曲面表面所做的简化近似。
在他的判断体系里,Doom不是一座值得庆祝的王国的基石,而是一份需要被重构的技术债务清单,一个在高压条件下完成的原型系统,需要被一套更干净、更通用、更面向未来的架构所取代。而罗梅罗看着同样的Doom——同样的崩溃的服务器、同样的溢出信箱、同样的愤怒管理员和同样的#doom频道中日夜不休的死亡竞赛挑战——他看到的是相反的东西。不是不完美,而是尚未被充分利用的完美。不是一份需要重构的技术原型,而是一个需要被建造到更大、更华丽、更具野性扩张力量的感官帝国。这种差异在1994年1月的第一个星期一第一次显现其结构性后果。那天下午,卡马克将一份打印文档放在罗梅罗的键盘上。文档标题是关于DoomEd编辑器的下一版本需求描述,长度约四十页,核心内容是描述一套采用所见即所得实时渲染界面的新型关卡编辑工具,允许设计师在三维视图中直接编辑多边形面片而非通过平面图间接操作。这是一份工程技术文档,笔调干燥,结构严谨,不包含任何与游戏设计本身相关的论述。
罗梅罗花四十分钟读完,然后抬头。他的回应大致是认可文档的技术方向,但补充说需要先做另一件事。他提出的需求是支持十六名玩家同时在线的死亡竞赛模式。卡马克没有立刻回答。他站在罗梅罗的工位旁,双手插在牛仔裤后口袋里,重心微向左脚偏移,沉默了大约十秒。然后他用一种完全中性的语气说出了三个字:那很难。这不是拒绝。这是卡马克表达兴趣的特有方式,正如其他程序员说“有意思”。支持十六名玩家同时进行死亡竞赛意味着需要重写整个网络协议层,从点对点通信模型迁移至客户端-服务器架构,并在引擎数据结构层面解决一系列复杂的同步问题——玩家移动预测、射击判定时间窗口的协调、可拾取物品状态的全网广播。每一个问题单独拿出来,都需要卡马克进入那种他称为“专注”而办公室其他人称为“消失”的状态:关闭所有外部输入,关闭IRC客户端,关闭与当前任务无关的注意力通道,沉入代码的绝对逻辑之中,直到问题被解决或他被证明在当前约束条件下无法解决。但罗梅罗不需要理解这些技术细节。
他已经从沉默中读出了答案。“那很难”意味着“我可以做”。罗梅罗露出的笑容没有阴影。十六人。他重复了这个数字,像在品味一个音效。他要的不是双人对战,不是四人混战,而是十六人同时在单张地图上开火——火箭筒、能量武器、电锯,所有人向所有人射击,没有清晰的前线和后方,没有绝对安全的角落,活到最后的人靠的不是瞄准精度而是本能和神经反应速度。他的音量在办公室中逐渐升高,吸引了其他团队成员的注意。阿德里安从显示器后探出视线,手中仍握着压感笔。戴夫·泰勒停掉键盘操作,转过身来。甚至连向来对游戏设计讨论保持距离的卡马克也在那十秒沉默结束时微调了站姿。罗梅罗继续推进他的论述,在整个办公室面前勾勒专用死亡竞赛竞技场的概念——不是单人地图顺便支持多人模式,而是从第一笔布局开始就为十六人混战设计。走廊宽度不能容纳两人同时堵口。房间高度落差要覆盖至少三层,每层有交叉火力覆盖点。
弹药补给放在最显眼也最暴露的位置,任何试图获取补给的动作都会被整张地图上其余所有玩家目击。每一秒都有人在死,每一秒都有人在重生。然后他说出了那个将整个王国推向下一阶段扩展的提议。id Software将允许玩家制作和分发他们自己的死亡竞赛地图。这个提议在技术条件下是激进的,在当时的商业逻辑上是反常的。允许玩家自主制作和分发自定义关卡意味着放弃对游戏内容生态的部分控制权——而这部分控制权在传统游戏产业中被视为核心资产。但罗梅罗的逻辑不是传统的游戏产业逻辑。他的逻辑是共享软件模式逻辑的极限延伸:降低一切可能的准入门槛,让更多人进入生态系统,然后相信其中一部分人会自行创造出足够好的理由来驱动完整版游戏的购买。
更重要的是,他的逻辑是一种关于名声如何运作的直觉性判断:当玩家不再是消费者而是生产者,当他们对某个自定义关卡的投入达到数百小时的量级时,他们就不再是Doom的客户——他们是Doom的布道者、传教士和拥有情感股份的合作者,即使id Software的银行账户不因为他们的贡献而直接增加任何数字。卡马克对这项提议的回应同样说明问题。他没有讨论玩家生态、商业模式或文化影响力。他提出的唯一问题是关于文件格式的。自定义关卡数据需要被标准化,以便引擎在加载外部WAD文件时不会因恶意构造的输入而产生缓冲区溢出。当他确认这个问题可以在不显著增加代码复杂度的前提下得到解决之后,他对整个提议给出了许可——说“许可”也许过强,他说的是“可以”,用的是陈述水温或处理器主频时使用的同一个语调。卡马克在id Software的办公室里拥有决策权。但“决策”这个词需要被精确界定。他不是发号施令的管理者。
他行使权力的方式更微妙也更绝对:他只需要选择不为某件事写代码,那件事就不会发生。如果某个提议不在他的技术兴趣范围内,他会用简短陈述表达这一事实,然后回到工位继续工作,而被否决的提议就会像从未被提出过一样消散。这种否决不需要解释,不需要论证,因为他掌管的不是管理制度,而是代码生成本身的可能性条件。但在死亡竞赛和自定义地图这两件事上,他的“可以”等于许可罗梅罗将帝国推进至下一个全新的扩张阶段。1994年春季,Doom的自定义WAD文件开始在BBS和早期互联网上流通。这些文件中的绝大多数质量粗糙——失衡的地图布局,不合理密集或稀疏的怪物配置,因对纹理对齐参数理解错误导致的不自然视觉畸变。但其中也有一部分闪耀着某种原始的独创性。罗梅罗以他整个职业生涯中从未失误过的那种嗅觉,从这片混乱中精确识别出具有潜力的作者。他在CompuServe上建立了一份他定期更新的“最佳自定义地图”列表,附有对每张地图设计理念的逐条点评。
这些点评的语言风格与他批注玩家来信时使用的语言完全相同——直接、居高临下、不容质疑,但同时包含一个专业关卡设计师对另一个创作者的真切尊重。当发现一张真正优秀的地图时,他的回复包含一个精确到秒的时间数据:那是他用该地图的最短通关时间,附带有他对设计者可能遗漏的伏击位置的分析。这种行为模式——将他人在游戏中的成就转化为可测量的竞技成绩,然后以测量者和标准制定者的身份介入——根植于罗梅罗在街机厅中形成的世界观。在街机厅里,高分榜上的排名是唯一有效的价值证明;而拥有解释排名规则、定义哪些技巧值得加分、哪些捷径属于违规的权力的人,才是真正的王者。他在Doom的玩家社群中所做的事情,是在没有边界的游戏厅里设定规则,而全世界的早期互联网用户正排着队往这个游戏厅的投币口里塞虚拟硬币。到1994年年中,Doom的商业回报和下载规模已经超越了任何理性预期的上限。
共享软件版本的下载总次数无法精确统计——分布式的FTP镜像和BBS转发使得统一计数在技术上不可行——但最保守的估计将这个数字定在数百万次。完整版销售超过一百万份。版税支票的抵达频率不再以周或日为单位,而是以每次有人走到信箱前的频率计算。公司银行账户余额从六位数跨入七位数,并朝着八位数稳步推进。罗梅罗的回应是购买了他人生中第一款真正意义上的高性能跑车——明黄色车身,八升排量引擎,零到百公里加速四点六秒,怠速状态下的排气声浪足以触发停车场内半数以上车辆的警报器。他驾驶这辆车从住宅到办公室,将它停在正门口,车头朝向麦斯奎特市那条尘土覆盖的主干道,然后在IRC上向所有挑战者发出同一条信息,大意是邀请任何自认为有实力的人前来比试,但不要指望能赢,因为他已经输入了作弊码。这不是比喻。
他确实在游戏中启用了无敌和无限弹药模式,向挑战者展示如何在不承受伤害和资源限制的状态下碾压整张地图,随后在一个戏剧性时刻关闭所有作弊码,用最基础的初始武器在三十秒内完成连续击杀。挑战者们的反应不是愤怒——尽管在展示阶段他确实在使用作弊码——而是一种更说明问题的情绪:不是因为他使用作弊码而愤怒,而是因为他关闭作弊码后仍然能碾压所有人而敬畏。他们敬畏的不是他的技巧,虽然他的技巧确实远高于普通玩家。他们敬畏的是他将游戏本身变成了一场关于他自己的行为艺术的能力。当他发出那条挑战信息时,他不是在发送邀请。他是在为一个已经持续了四年、从Softdisk的隔间开始、经过《指挥官基恩》的关卡编辑器、经过《德军总部3D》的秘密通道设计、一路演化至此刻的单一表演段落书写新的台词。
此刻的他是:一个二十七岁的百万富翁,坐在得克萨斯州一间空调不足的办公室里的486电脑前,通过一款他亲自参与设计的游戏向全世界所有不认识的人证明,他仍然是那个当年将亚利桑那街机厅所有高分榜上全部三条字母记录改写为同一个词条的孩子。那个词条是他的名字缩写。而在同一间办公室的另一端,约翰·卡马克在同一个周一早上打开他新配置的486DX4-100电脑,打开一个纯文本文件,在顶端输入标题:“下一代引擎架构笔记”。标题下方,他用ASCII字符绘制出一个粗略的室内场景示意——天花板、地板、两面墙、一根柱子——然后在旁边列出五个技术条目:全动态光照、多边形模型替换、客户端-服务器架构、硬件加速渲染接口、可编程着色管线。他尚未给这个引擎命名。他尚未开始写第一行实现代码。
但他已经开始计算这台引擎在预测的1995年秋季主流硬件环境下的理论帧率——每帧十六点六七毫秒,每秒六十帧,误差不超过一毫秒——并得出结论:要做到这一点,所需代码总量约等于他迄今为止写过的所有代码之和。他看着这个数字,没有感到恐惧,没有感到压力,只感到一种他在任何其他活动中都找不到的平静。在距离他大约四米远的地方,罗梅罗正对着电话听筒发出笑声。电话另一端的记者试图理解“死亡竞赛”的定义,而罗梅罗的解释是:想象一场拳击比赛,但场上同时有十六名拳击手,没有裁判,没有规则,没有回合间休息铃声,最后一个还能站立的人获胜——不,修正,最后一个人就算倒地不起,只要生命体征尚未完全消失,也算。当天傍晚六时,id Software员工陆续离开。空调外机在得克萨斯州十二月的黄昏中发出持续的低频振动。
罗梅罗在他的编辑器里为一张新的死亡竞赛地图放置最后一组火箭弹补给——位于四层塔楼的顶层平台,无任何掩体覆盖,任何试图获取这组补给的玩家将在十秒内暴露于其他十五名对手的全部火力扇区。这是一处陷阱。也是一种声明:弹药在这里,你有种就来拿。卡马克在他的文本文件中写下当天最后一条笔记,内容是BSP遍历的性能优化方案——考虑采用叶节点预排序以降低运行时分支预测失败惩罚,理论性能增益百分之四至百分之七,实现复杂度低,优先级高。窗外,麦斯奎特市天空从橙色转入深蓝。id Software办公室内剩下两台显示器——一台显示死亡竞赛地图俯视图,一台显示纯文本技术文档最后一页。这两种光占据同一个房间,却照向不同的时间。罗梅罗注视的那一侧,IRC频道的未读挑战回复累积到四十七封,CompuServe论坛上标有他签名档的帖子收到超过三百条引用。卡马克注视的那一侧,下一代引擎笔记中标记为“需要重构”的模块总数是六十四项,他在其中十二项旁边标注了初步的架构草图。这两种计数之间不存在任何转换公式。