第 12 章
第12章 编译后的分离(约 1996 年)
走廊里最先被听见的是空调压缩机停转的声音。那台安装在黑色玻璃大楼屋顶的特灵中央空调,在连续运转了六天零十四个小时之后,在下午一点零八分自动切入了除霜周期。压缩机停转的五秒钟里,整栋建筑的背景噪音下降了几个分贝,然后人们才能听见那些更微弱的东西:日光灯镇流器的嗡鸣,硬盘磁头寻道的咔嗒声,以及走廊地毯上某个人来回走动的脚步。那个人是约翰·罗梅罗。他的办公室门开着,里面的东西正在被分门别类地放进三只纸箱。最大的一只是搬家公司的标准规格货,双层瓦楞纸板,侧面用黑色马克笔写着一个罗马数字“III”。第二只是复印纸的包装箱,侧面还贴着id Software的耗材盘点标签,采购日期一栏印着“11-03-1995”,数量栏印着“10 REAMS”。第三只是一只鞋盒,耐克Air Max的包装,码数10.5,1993年购于麦迪逊市州街的一家运动用品店。那双鞋的鞋底在一年前就磨穿了,但鞋盒因为尺寸刚好容纳一本两百页线圈装订笔记本而免于被丢弃。
1996年6月22日,星期六。《雷神之锤》的母盘在达拉斯-沃斯堡国际机场以南十二英里处的一家压盘厂里以每分钟三千转的速度旋转,聚碳酸酯基板上被激光头逐位烧蚀出代表二进制数据的凹坑。同一时刻,罗梅罗蹲在办公室地板上,膝头压着灰色工业短绒地毯,往鞋盒里码放东西。一本线圈笔记本,蓝色封面,纸张边缘因为反复翻页而起毛。十五张3.5英寸软盘,标签上标注着“QTEST_01”到“QTEST_15”,日期从1996年1月跨到4月。一台初代Game Boy,灰色外壳,屏幕保护膜上有一道划痕,是1990年在什里夫波特的湖街公寓里被汤姆·霍尔的婚戒不小心刮到的。他把鞋盒放进最大的那只纸箱里,与已经码好的物品并排。《毁灭战士》海报筒,两头用胶带封口,海报是1993年的第一版印刷,纸面已经有了细微的泛黄网纹。《毁灭战士II》的吉祥物玩偶,一个八英寸高的电子怪魔,右手持着一把塑料霰弹枪,左手的手指已经被猫咬掉了一截。
一捆游戏杂志,《电脑游戏世界》《PC Gamer》《游戏开发者》,出版日期从1992年3月跨到1996年5月,封面上出现过id Software的游戏共计十四次。一个罗技鼠标,球式,底部积了一圈灰色的纤维垢。两个CD包,每个装四十八张碟,混音内容手写在索引卡上,塞进CD包的塑料夹层。一把没拆封的《雷神之锤》典藏版,黑色硬纸盒压着银色字体,外包塑封膜完好无损,右上角贴着一张GameStop的标价签,上面印着“$54.99”。典藏版的外盒正面是那个标志性的符号——一个镶着铆钉的金属质Q,周围环绕着哥特式的漩涡纹饰。id Software的徽章压印在右下角,烫金,在办公室日光灯下反射出一种不太流动的光。罗梅罗把手指放在那个徽章上,停了一下,然后把手收回来,从地板上捡起一卷透明胶带,用牙齿咬断一截,封住了纸箱的一道缝隙。他的动作不慢,也不快,节奏稳定,每件物品被拿起、翻转、放入的顺序带着一种不需要思考的熟练。
他在这间办公室里待了不到两年,但在此之前他已经装过四次办公室:什里夫波特,麦迪逊市黑土路,麦迪逊市大学路,麦斯基特市汤恩东大道。搬家对于一个做了十二年游戏的人来说,不过是另一种形式的文件整理。把你在意的物理对象从一个空间转移到另一个空间,确保路径上不发生不可逆的损坏,然后继续工作。走廊另一端,与罗梅罗的办公室隔着四十八步工业地毯和四扇关着的门,约翰·卡马克的办公室门缝下漏出一线稳定的白光。那不是日光灯的白——过道里的日光灯是飞利浦F40T12,色温四千一百开尔文,光线偏冷偏蓝。门缝下漏出来的光是六千五百开尔文,CRT显示器在最高亮度设置下输出的标准色温。卡马克的显示器是21英寸的ViewSonic Professional Series,刷新率被他手动调到了八十五赫兹。在这种设置下,人眼感知不到任何闪烁,屏幕上的字符像是被蚀刻在玻璃内部而不是投射在玻璃表面。
键盘敲击声从门板后面持续传出,每秒三到四次击键,偶尔停顿两到八秒,然后恢复。那种停顿的长度大致等于他读取刚写完的代码块、在脑中编译它、追踪每一条指针的指向、验证每一个边界条件所需的时间。自《雷神之锤》发布以来,这种节奏已经持续了七十二个小时,中间只被短暂的睡眠和一顿晚饭打断过。发布是在星期四进行的,6月20日。那天上午九点,最后的母盘通过联邦快递离开id Software的办公室,送往压盘厂。当天下午,市场部在达拉斯凯悦酒店举办了一场小型发布会,到场的有十二家游戏媒体的记者、三个网络服务提供商的内容编辑,以及id Software在北美和欧洲的发行合作伙伴代表。卡马克出席了,穿着他标志性的灰色T恤和牛仔裤,在角落里站了大约四十分钟,回答了几个关于引擎授权的问题,说了总共不超过三百个单词,然后离开。他在晚上六点四十五分回到办公室,重新打开工作站。不是因为出现了紧急问题,而是因为他注意到了一个问题。
一个问题在他的认知系统里出现,就像一粒砂子出现在一个对颗粒度有精确分辨率要求的过滤器里,它会被自动标记,直到被移走。那是一个内存分配问题。具体来说,引擎的内存管理器里有一处分配策略,在特定的、极其罕见的边界条件下会导致内存池碎片化。这个边界条件只会在游戏运行于物理内存低于十六兆字节的机器上、同时加载一个包含超过八百个动态光源的自定义地图时触发。触发后,帧率在特定摄像机角度会下降到十一帧。测试部门从未发现过这个问题,因为他们所有的测试机都配置了三十二兆内存。卡马克不是从测试报告里得知这个问题的。他是从自己的理论审查中推演出来的。发布前一周,他重新逐段审查了内存管理器的源代码,一共两千四百行C代码加六百行内联汇编,在脑中模拟了各种分配和释放序列的排列组合,找到了那个碎片化漏洞。他没有在那时修改它,因为代码已经进入只读锁定,任何改动都会触发一轮完整的回归测试,推迟发布日。
他把这个问题记在笔记本上——一本黑色的Moleskine笔记本,放在键盘左边,里面没有日程安排和感思,只有技术问题描述、伪代码片段、和等待验证的假设——然后等到母盘被快递员取走、版本控制从锁定状态中释放,才打开源文件开始修改。这不是修复,或者说不仅仅是修复。这是一种仪式,也是一种生理需求。引擎是卡马克身体的外延。一个他自己知道的瑕疵存在于引擎里,他就能感觉到那个瑕疵的存在,那种感知方式不完全是通过逻辑,更像是某个神经系统层面的连接被保持在不稳定的电位上。唯一能让那个电位回归平衡的方式,是打开那个源文件,在正确的位置修改正确的参数,重新编译,运行基准测试套件,确认所有指标都在预期范围内。然后是提交。提交日志是一行字——“修复了低内存配置下的内存池碎片化问题”——日期戳1996/06/23,时间戳03:42:17。他在提交后关上显示器,走到办公室角落那张行军床边,和衣躺下,在十分钟内进入深度睡眠。门缝下的白光消失。
罗梅罗听到了那阵键盘敲击声。在这个周末的每一个深夜,当他经过走廊时,那声音都在门板后面,匀速,持续,像某种被精确控制的心跳。他没有敲门。他和卡马克在过去几个月里的对话已经缩减到了最低限度——不是出于敌意,而是因为所有可操作的对话都已经被穷尽。他提交的关卡设计方案在引擎技术委员会上被讨论的次数从每周三次减少到每周一次,再到每两周一次。他关于动态环境和可破坏地形的备忘录被压缩成邮件里的一个段落,然后被压缩成主题行里的一个问号,最后被压缩成办公室门后一段什么都不是的沉默。当两个人在同一个技术系统里工作了六年,他们之间不需要争吵来决定输赢。他们只需要数据。罗梅罗把封好的胶带卷放回抽屉里。他扫了一眼书架。他的《雷神之锤》设计文档还在那里,一共九十二页打印稿,标签页从边缘伸出来,按颜色分级。蓝色标签标注已完成的设计单元,一共四十一个。黄色标签标注因技术限制而被修改的设计单元,一共十七个。红色标签标注被否决的设计单元,一共三十四个。
这些红色标签对应的是他关于动态破坏、多点光源、可移动墙壁、环境叙事脚本和哥特式建筑变体的全部提案。每一个红色标签背后都有一次对话或一封邮件,而每一次对话或邮件的逻辑终点都是同一个词:性能预算。他没有把那本设计文档放进纸箱。它属于这间办公室。属于这个工程记录。不属于他个人。在1990年的湖街公寓里,设计文档根本不存在。关卡结构图是画在罗梅罗脑子里的,渲染管线是画在卡马克脑子里的,怪物外观是画在阿德里安手上的炭笔速写本上的。四个人挤在同一间客厅里,汤姆·霍尔负责关卡逻辑和故事节点,阿德里安负责把恶魔从纸上拉出来,卡马克负责让枪口焰在屏幕上亮起来,罗梅罗负责把这个过程塞进一个更疯狂的节奏里。任何一个想法从一个人的脑中跳出来,在落进其他人耳朵里的同一秒就能得到回应——技术上可行,技术上不可行,技术上不可行但我可以换个方式做,技术上不可行但如果你能把那个参数调低一半我就试试。那个循环没有压缩,没有衰减,没有中间层。
那是两个约翰互为对方缺失器官的巅峰时刻:卡马克提供绝对的技术边界,罗梅罗在这种边界的内部找到最疯狂的表达方式。边界本身不是束缚,而是棋盘;罗梅罗是这个国家里极少数能在卡马克的棋盘上赢棋的游戏设计师。但棋盘本身的尺寸在改变。1991年的渲染管线是一块空地,代码是自己从零开始写的,每一行都是最简洁的表达,没有外部库,没有遗留接口,没有历史债务。在那片空地上,罗梅罗可以随心所欲地画任何东西,卡马克的任务是在每一轮迭代中找出最高效的方式让那些东西变成像素。到了1995年末,引擎已经进化成了一栋有三十万行代码的巨型建筑。新增任何功能都意味着要在六十个相互依赖的模块中找到所有被影响的接口,修改它们,测试它们,修复由此衍生出的新的边界条件,然后祈祷至少百分之九十五的已有关卡不在这一轮改动中崩溃。复杂性本身变成了房间里第三个人,一个有偏好的呼吸的实体。卡马克是这个实体最忠实的维护者。罗梅罗的设计图曾经是一张地图,告诉卡马克该往哪个方向走;
现在,它变成了一张拆迁许可证,每一次递交都要求承重墙上再开一扇门。卡马克说“不行”的次数在增加,不是因为他不尊重罗梅罗的设计直觉,而是因为三十万行代码对任何修改的抵抗力在指数级增长。那个“不行”从卡马克的嘴里说出来,但说话的人是引擎本身。罗梅罗把《毁灭战士》海报筒横着塞进纸箱侧面,与《雷神之锤》典藏版并排,中间塞了一层揉皱的报纸做缓冲。他检查了最后一格抽屉,里面的东西包括一盒绘图铅笔、一卷电工胶带、一个空的胡椒博士易拉罐、一本1994年8月号的《电脑游戏世界》,封面是《毁灭战士II》。他把杂志放进第二只纸箱,然后从桌面拿起一件东西。一个软盘盒,透明塑料外壳,3.5英寸规格。里面的软盘标签已经有些褪色,但墨水字迹仍然清晰可辨——指挥官基恩,手写体,蓝色圆珠笔。笔迹是汤姆·霍尔的。
这张软盘的内容是1990年11月的第一个完整版《指挥官基恩》,当时罗梅罗、卡马克、阿德里安和霍尔还在软盘公司领工资,他们的名字还挂在Softdisk的员工名册上,但游戏的标题画面已经印上了id Software那几个字母。那是他们四个人在连续六个深夜的秘密开发后,用一台从办公室搬回家的386电脑编译出的第一个独立的、不属于任何雇主的二进制文件。罗梅罗在那天凌晨三点十五分用DOS的DISKCOPY命令做了这张备份软盘,把它放进上衣口袋里,骑着自行车回到住处,把它像某种违禁品一样藏在衣柜顶上。从什里夫波特搬到麦迪逊,从麦迪逊搬到麦斯基特,这张软盘一直跟着他,每次搬家时都会出现在不同的抽屉里,但永远都在。霍尔在两年前离开了id Software。
关于他的离开,业内已有公论的说法环绕着《毁灭战士》开发期间的设计理念冲突,但事件的底层逻辑与罗梅罗此刻正在经历的是同一个逻辑:当引擎的目标函数收敛到单一人格的核心频率时,任何不匹配那个频率的输入都会被系统自动衰减。霍尔的故事是一部精心构建的叙事附加组件的拆卸史——文本日志、角色背景、关卡叙事弧线——所有不符合引擎效率和纯粹体验的东西,被一件一件从游戏里剥离出来,直到剥离到最后,霍尔发现自己也变成了一个可以被剥离的组件。他在1993年8月递交了辞呈,没有和任何人争吵。离开那天,他的纸箱里也有一张《指挥官基恩》的软盘。罗梅罗把软盘盒盖好,放进复印纸箱的最上面一层,用胶带封住整个箱子。他用马克笔在侧面写下三个字母——J.R.——然后站起来,拍了拍膝盖上的地毯纤维。走廊中段,第四扇门后,阿德里安·卡马克的绘图板上还留着一张未完成的素描。炭笔,康颂纸,画面主体是一个恶魔的半身正面像。
它的肌肉束是扭曲的,骨骼是外露的,下颚张开到不符合解剖学的幅度,嘴里几排倒钩状的牙齿排列成哥特式拱门的形状。这是他上星期画的草稿。本来的计划是将这个恶魔转化成《雷神之锤》的某一面墙体纹理,可能是第一章某个哥特教堂场景的中层装饰,也可能是第三章某个地下墓穴的入口标识。他把扫描稿通过内部文件服务器发给了卡马克,标题栏注明“E1M5墙面提案”,正文栏只写了一行字:“如果需要,可以调整分辨率。”两小时后,回复抵达。发件人:John Carmack。正文:纹理预算已用尽。没有解释纹理预算是在什么时候用尽的,没有提是否可以考虑削减其他纹理来腾出空间,没有任何可供进一步协商的语义支点。只有六个词,精确,闭合,像一条return语句。阿德里安看着那条回复,没有回复。
他把那张素描从扫描台抽走,慢慢走回绘图板前,重新坐下来,拿起炭笔,继续画那个恶魔的几个小时——不是因为他还有未被满足的任务需求,而是因为在那一瞬间,他不知道除此之外自己还能为这个游戏做什么。游戏已经发布了,光盘在达拉斯南部的压盘厂里旋转,他的工作清单在那句“纹理预算已用尽”之后正式归零。但他没有停下来。他的手还在动,刃部烧焦的木炭还在纸上摩擦,留下一道又一道深浅不一的灰黑色痕迹,仿佛只要画得足够久,他就能在纸上画出一个引擎容纳不下的世界。阿德里安没有收拾任何东西。绘图板在原位,炭笔盒在左上方,一套喷枪在右侧的工具架上,十几张草图叠在书架上,有些画在A4复印纸上,有些画在牛皮纸上,有几张干脆是达拉斯披萨店的餐巾纸,因为某些一闪而过的构图在晚餐时击中了他,而手边唯一能画的东西就是餐巾纸和油性笔。这些东西都留在它们的原位,因为阿德里安没有要离开的计划。他的合同还有一年,他在法律上、在物理上、在雇佣关系上都是这栋大楼的一部分。
但有什么东西比合同更早地离开了。那个东西是一种默契——在1993年,当他画出一个恶魔,那个恶魔会直接进入游戏,进入关卡,进入几百万玩家在深夜的轰鸣和尖叫中。他和罗梅罗常常在深夜的画室里工作,一个画恶魔,一个布关卡,两个人哼着同一首黑色安息日的副歌,节奏同步。到了1996年,他画出一个恶魔,这个恶魔首先经过技术规范的输入端,再经过纹理预算的过滤器,再经过关卡兼容性的检查脚本,最终到达游戏里的不是一个阿德里安的恶魔,而是一个通过一系列非人格化技术验证的、被允许存在的纹理资源。可逆的恶魔。他把那张没画完的素描从绘图板上取下来,夹进了书架里一叠已完成草图的最下层,正面朝墙,炭粉接触炭粉。然后他站起来,走到办公室门口,朝走廊扫了一眼,看见了罗梅罗抱着第一只纸箱穿过后门走进停车场的背影。他没有喊他,没有追上去。他只是站在门口,一只手扶着门框,另一只手无意识地在大腿外侧蹭了一下,蹭掉了一抹炭灰。
罗梅罗走出那扇玻璃门时,六月的热浪像一堵密度高于空气的流体墙撞在他身上。麦斯基特的夏日午后,体感温度在沥青停车场的蓄热作用下可以达到华氏一百度。他的后领在几秒内湿透。他把第一只纸箱搬进他那辆黑色福特探针的后备箱,后备箱里已经放了几件东西:一把长柄雨伞,一个急救包,一个空的CD收纳盒,以及一个从公司厨房顺手拿走的咖啡杯,杯壁上印着“id Software”的白字已经因为洗碗机的高温而剥落了几个字母,变成了“i oftware”。他关上后备箱盖,转身走回大楼。杰伊·威尔伯在他经过商务办公室时叫住了他。威尔伯的声音从门框后面响起来的时候,他正走过商务办公室敞开的门。威尔伯的房间里有两部电话、一台传真机、一台激光打印机和一面墙上贴满发行合同的软木公告板。他正用肩膀和耳朵夹着一部北电网络的黑色座机听筒,两只手在抽屉里翻找某个欧洲分销商的发票,看见罗梅罗经过,他抬起一只手,手指张开,做了一种介于“先别走”和“等一下”之间的手势。
威尔伯从1991年开始就负责处理id Software的商业事务,他处理过Apogee共享软件模式的合同,处理过《德军总部3D》被德国政府审查评级的风波,处理过《毁灭战士》共享版发布那天服务器被挤爆的二十四小时紧急响应,处理过无数试图挖走卡马克和罗梅罗的电话。他同时是防火墙和润滑剂,保护两个约翰不被商业世界吞噬,同时保证商业世界能把支票准时寄到麦迪逊市和麦斯基特市的出租邮箱里。他是个商务人员,但他同时也是这个团队中最先学会辨别风压变化的人。此刻,他看着罗梅罗的眼睛,职业经验让他做出了评估:这件事不是他能交涉的,不是他能协调的,不是他为谁多争取一周时间就能改变的。他放下那只还在翻抽屉的手,把电话从肩膀上重新抓回手里,恢复了专业的商务语速,但朝罗梅罗点了一下头。那个动作不比办公室礼节更热情,但在威尔伯的行为光谱中,一个不提供任何挽留措辞的告别手势,已经是他的全部表达了。
罗梅罗搬第二只纸箱的时候,正午的阳光把黑色玻璃大楼的外立面变成了一面不甚清晰的镜子,反射出停车场上三辆汽车和一棵新栽的苦楝树的变形倒影。他把复印纸箱叠在大纸箱上面,关上后备箱,然后搬第三只。第三只鞋盒最轻,但它里面那本线圈笔记本的重量在罗梅罗的前臂上形成了一个鲜明的感知信号。他还能记得这本笔记本的第一页画的什么:一幅关卡结构图,蓝色圆珠笔,平台的位置、隐藏通道的入口、敌人刷新点的节奏分布,画得细致、耐心、用比例尺标出了每一个可跳跃距离的像素估算。那是1990年9月,他在湖街公寓的餐桌上画了三个通宵。画完之后,他把笔记本拍在卡马克面前的键盘上,说了一句现在回想起来已经像来自另一个时代的话:这个就是我们做的游戏。卡马克当时的反应,在罗梅罗的记忆中依然保有百分之百的清晰度:他拿起笔记本,从第一页翻到最后一页,中间暂停了三次,分别在滚动轴卷动逻辑的实现路径、多层背景视差滚动的内存消耗和关卡切换的数据加载策略上。
三分钟后,他放下笔记本,说了四个字:技术上可行。然后他转过身去,面朝那台486工作站,敲下了《指挥官基恩》引擎的第一行C代码。六年后,说出“技术上可行”的同一个人,用“纹理预算已用尽”否决了阿德里安·卡马克的提案,用“渲染管线负担”一个字一个字否决了罗梅罗的哥特式动态破坏提案,用一系列在技术层面上完全正确、在创造性层面上彻底排他的边界条件,把id Software的内容生产从双人轮转驱动推入了单一频率的震荡。他的判断本身没有错。没有那个收紧边界的判断,《雷神之锤》的帧率无法在那个年代的消费级硬件上维持三十帧。但没有那个收紧边界的过程,罗梅罗也不会在星期六下午把纸箱搬进汽车后备箱。这是结构性的,不是人格的。一个人维持三十万行代码的精密度需要绝对专注,而这种专注本身会排空所有其他等量声音的生存空间。罗梅罗把那三只纸箱搬进达拉斯市区一栋租来的公寓时,时间大约是下午二点四十分。他没有立刻开箱。他站在窗户前,看着达拉斯的天际线。
那些商业大楼的玻璃幕墙在午后阳光下反射出另一组不流动的光。他掏出手机,翻到通讯录里一个名字——汤姆·霍尔——拇指停在拨号键上方几秒钟,然后收回来,把手机放在没有拆封的沙发包装箱上面。他拿起那个印着“i oftware”的咖啡杯走进厨房,接了一杯水,靠在厨房台面上喝完,然后回到客厅,席地而坐,打开了第三只纸箱里的那本线圈笔记本。笔记本最后一页原本是空白的。他拿起一支铅笔,在那页的左上角写:新模式——不只是引擎的创造者,而是游戏核心体验的完全控制者。横线。横线下方的第一个词是一个方向,或者一个宣言,或者只是一个需要被写在纸上的可能性,以便它在未来拥有被执行的资格。卡马克在麦斯基特市汤恩东大道3810号大楼的办公室里醒来的时间,据他事后在一次采访中不经意提到的细节推算,大约在下午二点三十分到二点四十五分之间。他去洗手间洗了脸,从饮水机接了一杯水,回到工作站前,重新打开显示器。屏幕亮起来的那一刻,他的瞳孔以零点二秒的速度收缩。
他的左手食指自动寻找键盘上的F键,右手食指寻找J键,那两个键帽上的微小触觉凸起是他从十一岁起就刻入肌肉记忆的定位基准点。他打开源码编辑器——Visual C++ 4.2,运行时库被替换成了他自己维护的一套优化版本——然后载入引擎的下一个模块。屏幕左上角,光标在一个空白的文本缓冲区里以每秒两次的频率匀速闪烁。一次闪烁的持续时长,根据该显示器的垂直刷新率计算,是五百三十毫秒。阿德里安在那天下午没有离开办公室。他在五点左右关上绘图板,清理了炭笔灰,走到公共区的冰箱前取了一罐胡椒博士,站在走廊尽头的那扇窗户前喝完了它,窗外是停车场和汤恩东大道对面一处正在施工的写字楼工地。他喝完罐子里的最后一口,把铝罐捏扁,丢进垃圾桶,回办公室拿起炭笔继续画了大约一个小时,画的是一个新的恶魔——更复杂,更扭曲,更多骨骼外露,没有任何既定的纹理预算为它预留位置。
那天晚上,麦斯基特办公室大楼内部亮着三扇窗户的灯光:卡马克的办公室,阿德里安的办公室,以及一楼大堂那盏永远不关的安全灯。停车场里停着两辆车:一辆白色道奇皮卡,属于约翰·卡马克;一辆深蓝色福特金牛座,属于阿德里安·卡马克。黑色福特探针已经不在了。一个纸箱被搬空后留下的办公空间,在建筑层面上只占整层建筑面积的百分之十二,在工程架构上是一个不再被占用的输入端口。这个端口与中央处理器之间的连接通道在六个星期内被逐步限流,四十八个小时前被正式标记为弃用,此刻在物理层面完成了最后的断开。信息系统没有因为这个断连而发出任何警报。程序继续运行。根据id Software财务系统在1996年第三季度的存档记录,在罗梅罗离职的那个月,公司全体正式雇员花名册上有十三个名字。约翰·卡马克,首席程序员。约翰·罗梅罗,前首席设计师,离职状态,生效日期1996年6月24日。阿德里安·卡马克,美术总监。凯文·克劳德,程序员。蒂姆·威利茨,关卡设计师。
杰伊·威尔伯,商务总监。另七人分别负责音效、测试、技术支持和行政。根据发行商GT Interactive在1996年6月末提交给id Software的首周销售报告,《雷神之锤》在北美市场发售前七天售出约十二万份,首月销量累计超过四十万份,为id Software在第一个财年内创造了约一千二百万美元的净收入。卡马克的引擎授权部门——这个部门实际上只有卡马克本人和一份他亲自维护的授权合同模板——在随后四年里与超过二十家游戏开发商签订了商业授权协议,累计授权费收入在2000年之前超过五千万美元。这是id Software自1991年2月那个没有任何商业计划书的创立时刻以来,最赚钱的一段时间。它也是id Software自创立以来,首次以单核引擎而非双子星作为驱动轴心运转的一段时间。手术完成。被切除的部分将在一个错误的拼写和一个全新的地址中找到自己的重生路径。
留下的部分将在接下来的几个技术迭代周期里继续证明那个三十万行代码的引擎可以在没有制衡人格的情况下走多远。两者都将进入属于自己的未知阶段,但在这个六月的周末,它们还是同一个建筑里的三扇亮着的窗、停车场上的两辆车、和已搬空的办公室里灰色地毯上一块长期被转椅压出的矩形凹痕。那栋建筑的邮政地址是:德克萨斯州麦斯基特市汤恩东大道3810号,邮政编码75150。一楼外墙角落的金属铭牌上刻着几行字——id Software,成立于1991年2月1日,路易斯安那州什里夫波特。铭牌是去年搬进来时钉上去的,黄铜材质,尚未氧化。