第 13 章
像素引擎的立法者
约翰·卡马克让所有人等那声“稳定”。等待的对象不是画面,也不是演示,而是显示循环本身重新回到平直。屏幕上的像素还在抖动,墙壁纹理像被撕开又缝上,门框边缘在玩家转动视角时迟了一瞬。
九十年代初的个人电脑游戏往往允许这种迟滞存在。卡马克不允许。他在键盘前停下,把注意力压向一个看起来毫无戏剧性的东西:每秒钟的红线。这条红线横在技术可能性和体验合法性之间。任何人要让一个三维空间在低端处理器上成立,都得先穿过它。
穿过它,要改写图形渲染方式;穿不过,游戏设计得再激进也只是一堆幻灯片。
镜头停留在这张脸与那行编译错误的间隙里。距离得州麦斯奎特的那间办公室还很早。
卡马克的声音不高,在那些挤满显示器的房间里,他常常只说半句话,后半句由键盘完成。他的判断不来自声势,来自刷新率。
当他说“可以了”,一个时间单位被贴上了合格的标签;当他说“还不行”,一个世界的入口就被推迟。他立了一条许多人尚未理解的语法:技术上限设定之前,设计野心没有发言权。
这条语法并不来自宣言,来自他的一项偏执。卡马克先于大多数人认识到,三维视角的成立需要的不仅仅是“看起来像”,它必须“持续地像”。
一个镜头在两张图像之间停顿超过六十分之一秒,大脑就会从幻觉中惊醒。这一惊,就回到桌面,回到塑料机箱,回到“这是个程序”的现实。
若让这一惊消失,世界可以突然变黑,可以只看见枪口和墙壁,可以让怪物从背后扑来,但玩家不会因此觉得虚假。他们会相信脚下有地面。这种相信,靠的是帧率坚持不懈地重复同一个谎言。
他说过,在电脑图形学中没有什么是比每秒帧数更重要的单一指标。意思是,其他东西都可能被玩家的记忆补全,唯有时间上的断裂不能被补全。
这项偏执把“流畅”从技术指标变成准入门槛。并非所有设计师都接受这个说法。一些人相信,画面中的叙事与情绪可以越过短暂的掉帧。卡马克的回应间接而固执:玩家也许能原谅一次半次停顿,但在连续的高速运动里,断裂会累积。每次一点点,直到玩家从场景中抽离。这种抽离一旦形成习惯,任何场景都失去重量。
他因此不愿把这种风险交给别人去判断。那些年里,关于“这个场景能不能掉几帧”的讨论,最后都会回到同一个地方:如果能掉几帧,为什么不能再掉几帧?边界一旦松动,便很难再用技术理由守回去。所以他提前把边界焊死。
《毁灭战士》就在这个认识的延长线上。此前的《德军总部三度》已经证明了快速视野的吸引力,但其技术基础仍限于直角墙与同一高度的空间;《毁灭战士》在此基础上推进了明暗、非正交墙面和更复杂的空间关系,却始终保持着一个严格的性能预算。它不安静,不缓慢,不让房间在转视角时露出接缝。
它砍掉复杂的垂直观看,把主要的转动留在水平轴。它限制几何体数量,把资源让给连续的明暗变化。它用二叉空间分割预先整理空间,让处理器只处理玩家真正看得见的部分。它对光线不做追求,对镜面不做追求,对“真实”不如对“流畅”忠诚。
那些暗红色墙壁、灰绿色装甲、方形机炮口,都不是为了美。它们是为了在每一帧里尽快被画出来。卡马克没有发明第一人称视角,也没有发明地下基地或者恶魔。
他发明的是它们可以被反复经过而不崩解。这些取舍的痕迹躲藏在游戏代码的每个分支里。
设计者后来在关卡编辑器中看到,任何一处墙壁角度、灯光数量、同屏敌人数都对应着一条性能红线。超过那条线,场景也许还在画面上成立,却会破坏移动的连续性。因而,卡马克对《毁灭战士》的视觉风格并不陌生,它是由性能预算塑成的美学。
地牢深处那些狭窄房间、短走廊和拐角后的突然遭遇,并非全都出自叙事选择;有些来自几何必须保持简单、显示必须保持快速的要求。技术约束变成了空间节奏的一部分。这一点最能看出“立法者”的含义:约束不只限制内容,它同时生产内容。
这种“可被反复经过”背后,是一个从实验室进入客厅的折衷系统。快速纹理映射在那时并非无人知晓,问题是谁能让它在普通人买得起的机器上跑起来。答案是降格、绕行、限制、重写。卡马克把计算机图形学里一批看起来高不可攀的算法拉低到消费级硬件上。他当然清楚每一处让步的代价。天花板不能太复杂,房间不能无限堆叠,某些变形会在极端角度出现。
他接受这些代价,条件是玩家在移动中不要察觉。这就是他的立法方式:先规定什么不可见,再决定什么可见。不可见的规则,比可见的贴图更早写进引擎。设计者日后所有“我想要”,在被画出来以前,已经经过一次筛选。
筛选被固化在产品里。引擎从《指挥官基恩》《德军总部三度》一路演化,到了《毁灭战士》,已经从某个游戏的附属代码变成可以独立描述的对象。卡马克意识到,让其他公司使用这些代码,不是把产品分出去,而是把自己的规则送出去。授权不再只是“给你一份实现”,而是“给你一套语法”。一笔费用换来的是一长串已经解决的难度:如何把空间切开,如何把纹理贴上,如何保护显示循环不跌出底线。
购买者获得的建造成本下降,付出的是一部分建造权。因为,引擎允许做的,做起来高效;引擎没有处理的,必须先征服底层系统,而多数团队并无此能力。
这意味着一种安静的结构力量:用授权方式进入三维空间的创作者,从一开始就被放在卡马克划定的地基上。地基不是法律条文,却比法律更早决定房子的形状。
事实就在这里发生转折。卡马克把引擎视为城堡本身,把那些关卡、怪物、音效和角色当成城堡里的陈设;罗梅罗则把城堡当成舞台,认为舞台再坚固,终究是为一场演出服务。
这个区别起初微小,不足以破坏两人的协作。罗梅罗信任卡马克拿出的每一段新代码,卡马克也不否认罗梅罗对节奏和空间能量的直觉。
但当《毁灭战士》成功后,这种信任逐渐被各自的偏执替代。卡马克关心下一次图形核心还差多少,罗梅罗关心下一座关卡还能不能让玩家觉得自己站在一个真正的古怪地狱里。他们争论的不仅是“可以做什么”,而是“什么是首要问题”。这个问题不解决,公司每天都要面临一次选择:把时间投给引擎,还是投给内容。
早期办公室里,这种分歧具体得近乎空间布局。一边是引擎组,屏幕上滚动汇编与图形测试,讨论的是多边形数量、内存分配与主循环的开销。另一边是设计组,画着地图拓扑,摆弄怪物触发点,反复跑过同一条走廊,比较灯光该从哪个方向落下。两个区域共享同一台咖啡机,却处在不同的时间感里。
卡马克在引擎组那边获得安宁。他相信,内容可以被替换,引擎却需要长期维护。一个糟糕的技术决定会像地基渗水,穿过所有房间。
罗梅罗在设计组那边看见了相反的东西。他觉得,一个无论跑得多稳的空间,如果没有人愿意在其中停留,它就是空的。双方都认为自己在保护公司的未来。恰恰是这种确信,使每次会议不再像合作,而像一场关于未来的争夺。
争夺首先发生在帧率与关卡复杂度上。设计师在平面图上多加一段可移动墙壁,多放几只怪物同时醒来,多塞一个窄窗让玩家看见远处,就会多消耗引擎资源。卡马克会计算消耗,会指出当前纹理缓存将因此溢出,会建议减少同屏实体。罗梅罗会坚持:玩家记住的是那扇窄窗外的火光,不是墙壁是否迟滞了一瞬。
卡马克不退。罗梅罗也不退。这不是技术员与美术员之间的专业摩擦,而是两种作者性在抢夺同一个决定权。一个要保证幻觉得以持续,另一个要让幻觉值得持续。前者认为没有稳定就没有幻觉。后者认为没有意图就没有价值。
两边都说服不了对方,因为他们的判断标准已经不再相同。卡马克始终不认为自己是设计的敌人。他也玩游戏,清楚准星手感、怪物反馈和节奏会如何改变体验。他只是在行动序列里,把“问题能否被机器解决”放在“问题是否值得被玩家看见”之前。他的理性不是冷淡,而是顺序。先把主循环的负担降到最低,让世界跑起来,再谈世界里的东西。
罗梅罗则认为这种顺序已经暗中成了一项政策。它默认内容必须适应技术,默认设计者必须等待程序员,默认想象力的上限由一台多数玩家买得起的机器决定。当他看见越来越多的关卡元素因为帧率而被动删除,他觉得这不是牺牲,这是收缩。收缩一旦开始,就会一直进行下去,直到所有游戏都变成“引擎能跑的形式”。
授权模式把冲突从公司内部推到了更广的地带。它向行业展示了一个新位置:掌握引擎的人。这个人不必出面定义什么是好游戏,也能在事实上决定什么游戏更容易被生产。购买引擎的团队得到便利,却很少意识到便利的名字叫“有限可能”。
他们可以在有限的领域里做出变化,却很难跳出卡马克对速度、绘制和空间的默认设定。第一人称射击游戏开始沿着一套共同的工程技术再生产。它变得越来越快,画面越来越干净,运行越来越稳定,代价是早期团队中那种胡乱的、不成体系的探索渐渐退场。技术立法行为就藏在每一份授权合同的数字后面,没有任何一位签署者需要为此投票。它像一条不写成条文的工业标准,先被接受,后被当成天经地义。
卡马克身上的“技术之神”标签,并不来自他为自己加冕,而来自这种事实。他去解决问题,给出结果,代码安静而高效。他可以在采访中讨论图形管线的未来,对某段访问异常做出冷静诊断。他看起来不像一个严苛的法官,因为他并不提高嗓门。
然而,他所在的位置确实使他拥有否决权。每当我们说“这个想法很好,但引擎做不了”,处在这句话后面的人就是立法者。卡马克不是这个人唯一的化身,但在他那里,这种否决权获得了空前的清晰。罗梅罗感受到了。
他后来在公开言论中一次次追认自己的不安:设计被引擎拖累,最优秀的创意在技术限制下流产。他把这种不安带进设计现场,开始要求更多自由。他要更大的房间、更密集的机关、更多垂直变化。
他的要求不是无端扩大的任性,而是对一种秩序的抵抗。他拒绝把《毁灭战士》的成功解释成“卡马克的图形引擎加一些有趣关卡”。他要把顺序倒过来。正是这种颠倒,让裂痕从项目讨论蔓延到对公司的理解本身:未来应该是更多人能用的引擎,还是更多种可能的游戏?
卡马克用行动回答了。他在《雷神之锤》时期进一步升级引擎,把真正的三维空间带入系统。这个决定让房间的垂直关系发生改变,也意味着所有旧有设计逻辑要重写。
罗梅罗期待这次升级能解放更多设计能量,结果却是他发现自己更受制于新的数据结构。新的引擎比过去更复杂,编译时间更长,修改门槛更高。技术越是先进,设计组就越依赖引擎组消化每一次变更。设计者靠后一步,程序员靠前一步。这个变化很安静,却比任何争吵都彻底。
罗梅罗的自尊和判断都在这个结构里被磨损。他不是不能写出大胆的地图,是他的大胆必须经过一层他无法回应的技术审查。
办公室里依旧有说笑,有玩笑式的比试,有夜晚一起工作的记忆。那些亲密不是假的。只是亲密的表面下,两个人都开始明白,他们修建的不是同一座建筑。
卡马克在内部会议上继续谈论“保持帧率稳定”的重要性。罗梅罗在旁边的白板上画着新的路线,等待着下一次反驳。反驳越来越像例行程序,最后连争吵都失去爆发力,只变成一段压抑的静默。
谁都没有公开宣战。谁都在等待对方先承认自己离不开对方。等待不是平静,而是那种胜负未分的压力。
正是这段等待期让整个行业跟了上来。越来越多的公司发现,与其从头开发一套显示系统,不如向卡马克购买许可。价格被写进新闻,产品清单被反复引用。
人们讨论那些游戏时,先提到的往往不是它们自己的设计,而是“它使用了《毁灭战士》引擎”。这句话本身就是一种归属。它意味着这个游戏在某些能力上被预先保证,也在某些想象上被预先限制。
卡马克的立法不靠命令,靠这种归属。它让后来者自愿站进同一套语法中,因为不站进去的成本太高。一个程序员当然可以自研,但自研意味着在没有授权辅助的情况下重走一遍路径。多数商业团队没有时间,也没有那个人。
授权模式也重塑了“作者”这个身份。此前,一部游戏的作者可以宣称自己对整个产品负责。现在,产品建立在一套第三方代码之上。
代码不是中性的。它带着卡马克对空间的想象、对速度的标准、对硬件的妥协。购买者可以写自己的故事,编排自己的谜题,放置自己的镜头。但他不能修改这套基座对“世界应该怎样显示”的回答。
作者签名因此被分层:一层是引擎作者的,一层是游戏设计者的。卡马克覆盖的是第一层。他把技术原则熔进了所有使用者的视觉中。这些用户未必知道每一个函数如何工作,却每天受其约束。
约束的痕迹很细微,只有当你试图做引擎不支持的事时才显形。那时你会明白,建造权不是被夺走的,而是被分发出去的。这种分发的悖论是:它既打开三维空间,又封住了若干扇窗。
它让中小团队得以进入第一人称世界,同时让他们默认接受一种关于流畅、材质、几何复杂度的优先级。它制造了一波极为相似的游戏。它们共享相似的移动手感、相似的走廊密度、相似的触发节奏。批评者说这是技术平台对创造力的驯化。辩护者说这是让行业前行的必要代价。
两边都正确。理解这一点,需要把目光从某人是否天才上移开,转向更冷的东西:当一种技术可能性被系统化,它就不再只是工具,而成为一套可以被购买、被复制、被据为己有的语法。谁握住系统化的起点,谁就拥有对之修订的权利。卡马克是那个在关键时刻把图形技术系统化的人。
他因此成了立法者,而非单纯的发明者。他对帧率的偏执于是多了一层含义。表面上,他在维护体验的完整;实质上,他在维护标准的排他性。任何无法达到这条红线的设计,都被划入不可行。他自己或许不这么描述,描述多出几分正义感:他只是想给玩家一个稳定的世界。但话语无法取消后果。后果是,行业里的许多人开始用“能不能跑”取代“值不值得跑”作为第一问题。
罗梅罗代表的另一种传统,要求把“值不值得跑”放在更前面。这个传统的无力,不在于它没有说出动人的话,而在于它没有拿出可授权的、可量产的替代框架。它依赖个人判断,依赖某位天才对节奏和空间的直觉。直觉无法打包发售。框架可以。这段历史从不是抽象的观念之争。
它在合同、工程争议和公司分裂中具体地发生。卡马克对代码洁净度的崇拜,使他愿意花时间替换一个已经能用的模块,因为后面的维护更重要。罗梅罗对游戏的热情,使他愿意冒险留下一个不够稳但极具能量的设计,因为玩家的记忆更重要。一个怕未来的错误在系统深处腐烂,另一个怕当下的平庸被流畅掩盖。
两种恐惧都真实。两种恐惧最后都得到了验证。系统深处的错误确实会腐烂,平庸也确实会被流畅掩盖。它们只是发生在不同的时间尺度上,由不同的人负责。当《毁灭战士》引擎被授权给《异教徒》《毁灭公爵三度》等产品时,卡马克的规则被印证。这些游戏各有风格与卖点,但它们都站在同一块速度地基上。
它们证明了:可以用别人的引擎做出自己的游戏。这给行业释放了巨大能量。但同时,它也把“什么游戏能被做出来”悄悄收束为“什么引擎允许被做出来”。
这句判断不是道德谴责,而是结构描述。授权引擎替多数团队解决难题的方式,就是让他们不必碰触那些难题。不必碰触,意味着不去改变。不去改变,意味着围绕引擎的可能性边界生长。边界很宽,宽到可以容纳几十款游戏;边界也很窄,窄到把发明权留给了极少数人。
罗梅罗后来把这种感觉转成动作。他越来越频繁地出现在设计讨论中,试图夺回对“游戏该是什么”的定义。他的地图规模更大,情绪更强,对血腥和暴力场景的执念更深。他要让玩家在尖叫和奔跑之外,感到一种哥特式的疯狂。
但他的极端设计受到技术约束的挤压。卡马克担心那些场景会拖垮多人游戏下的同步效率。多人游戏本身又是技术系统的一部分,网络状态、实体分发和帧率都压在引擎上。罗梅罗想做更大、更复杂的场景,卡马克则要将它们控制在机器能处理的范围内。
双方在会议桌上用各自的语言说话,会议记录不会保留那些沉默。沉默不代表没有内容。一个可以观察的内容是团队如何分裂成两组,并在组间形成越来越高的解释成本。过去,一个问题可以在两个人对坐的屏幕上解决。现在,任何跨组冲突都需要翻译:设计师把这看作创作被阻挠,程序员把这看作系统被误用。翻译越复杂,互相理解越稀薄。卡马克不常加入这种翻译过程。
他默认别人应当理解技术的必要性。罗梅罗也不愿降低自己的视觉要求来迁就低端配置。两个人都保持了自己的完整性。完整的代价是,公司内部出现了两个中心。一个中心由代码汇聚,另一个中心由设计图汇聚。它们不一定互相否定,却开始互相消耗。消耗最终有了结果。
罗梅罗离开。带走他的是对另一种游戏未来的执念。他想证明,离开了技术立法者,自己可以做出更个人化、更张扬的作品。离去的姿态里有愤怒,有委屈,也有一丝解脱。卡马克没有追。他继续留在代码里,把引擎推向下一个版本。公司没有立刻失去全部创造力,但原来的那种能量消失了。
原来的能量建立在两股偏执的互补上:一个人让世界不破碎,另一个人让世界值得进入。只要两人还在同一座建筑里争吵,作品就能从裂缝中诞生。
分开之后,一个方向变成纯粹技术进展,另一个方向变成对技术框架的挣脱。两个方向都不再是《毁灭战士》曾经代表的那个东西。那个东西不是和谐,而是竞争中奇异的平衡。它在第一人称射击游戏史上占据的位置,不因为游戏本身没有问题,而因为它同时兼具了“稳定”与“侵入感”。稳定来自卡马克。侵入感来自罗梅罗。两者互相打磨,也互相阻碍。
玩家记住的是那股难以复制的压迫:门开后,怪物的嘶吼从黑暗中撞过来,而你转向它的速度没有任何迟滞。这需要双方。卡马克让转向没有迟滞,罗梅罗让转向时确实有值得恐惧的东西。少了任何一个,所谓的“沉浸感”都会塌掉一半。是这种相互依赖,使后来的分裂具有真正的代价,而不是一场简单的公司内讧。卡马克被尊为技术之神时,往往避开了这个代价。
人们更愿意谈论他的一段段代码,谈论他如何把每秒帧数变成不可侵犯的标准,谈论他在深夜写出新的图形核心。这些当然真实。只是神的形象本身也成了标准的一部分。它对后来者说:如果你不行,就不要去碰那层底层;如果你需要进入,就购买一套授权。购买者中,也许有人本来具备修改底层的才能,但商业现实让他们选择了便捷。才能没有被训练,只被延后。
于是,授权模式在提供入口的同时,也悄悄关闭了某些入口。不能把这笔账算在卡马克一个人头上。能算的是,他的成功让这条路径显得最理性。理性得几乎不可反驳。因为反驳它,就得回到“对帧率的偏执是否会排挤设计自由”的老问题上。这个问题从来不会被技术演示解决。
一长串数字能够描述这场立法。九十年代中后期,伊德软件对外引擎授权费用累积成可观的收入来源,使公司不再单纯依赖游戏发行。购买者名单里有那些后来被人记住的名字。每个名字都以自己的方式证明:卡马克的框架可以容纳不同的表达。
《异教徒》把环境变成古堡和地牢,《毁灭公爵三度》加入更加粗野的幽默。它们的帧率没有背叛玩家,它们的枪口指向也保持了稳定。它们也都在卡马克规定的空间关系里移动。没有一款因为使用了引擎而变得毫无个性。
但同时,没有一款真正跳出那套视角语法。它们共享的流畅性,让玩家以为这个世界本来就该这样被看见。这个“本来就该”,正是语言成功后的自然结果。它隐去了历史中的选择。选择曾经存在。卡马克本可以只做游戏,不对外授权。他本可以把引擎视为内部优势,不让外人触摸。若那样,第一人称射击游戏会少很多跟风者,也可能少很多令人厌倦的相似品。
他选择了授权。罗梅罗对这个选择的态度复杂。他一方面知道授权提高了公司的影响力,另一方面感到这份影响力没有落在设计者身上,而是落在技术上。他的不安,在他离开后的岁月里被现实不断放大。越来越多的游戏使用授权引擎,越来越多的发布会先公布图形特性,再公布玩法。设计行业的人开始用“引擎能做什么”作为提案的起点。
这个逻辑一旦站住,就很难被推翻。罗梅罗试图以设计优先的方式另起炉灶,最后被那个时代碾过。这部分属于另一个人的故事。此时能说的是,他的失败不是他个人的失败,而是技术立法时代里,另一种作者性普遍失势的缩影。缩影在这里停下,数字可以继续提供冰冷的注脚。
《毁灭战士》引擎的授权费用在那一时期按项目计算,每款游戏需支付一笔预付金,外加销售分成。许可条款中明确规定了署名方式:游戏包装与启动画面必须展示“id Software”标志。
这意味着每一款使用了这套引擎的作品,都同时为伊德软件的技术权威做了一次公开认证。《毁灭公爵三度》《异教徒》《影武者》《strife》——这些名字列在一起时,彼此的差异显而易见,但它们的共同点同样不容忽视:平滑的横向运动、快速的武器切换、分割清晰的关卡空间。在这些空间里,设计师可以布置不同的敌人和谜题,可以调整光照色调,可以编写新的伤害数值。
但他们无法轻易改写视角移动的加速度曲线,无法改变墙壁厚度,无法让天花板真正倾斜。改写这些底层参数,意味着要进入卡马克的渲染循环,那不是一个编辑器按钮,那是一整套需要重新编译的图形管线。对购买者而言,这种限制在签约时并未被充分感知。他们看到的是省去的开发时间、现成的碰撞检测和可靠的帧率表现。
直到项目推进到中后期,一些想法被悄悄地搁置了。某个设计师想让走廊在玩家走过之后坍塌,塌陷的几何体重算会拖累二叉空间分割的节点;某个美术想让一面墙被射击后逐渐剥落,动态纹理更新会超出缓存预算;某个策划想让怪物在远处以独特的方式移动,但远距离实体更新逻辑已被引擎简化。
这些被搁置的想法,没有一条写在合同里,但它们都在合同生效的那一天被预判了结局。授权模式由此在行业里形成了一条不成文的序列:最上层是引擎作者,决定空间的解剖方式;中间是授权开发者,在解剖好的空间里填充内容;最下面是玩家,在内容中移动和射击。这个序列并不邪恶。它甚至相当高效。
高效到足以让第一人称射击游戏在几年之内从少数公司的试验品变成全球性的娱乐产品。卡马克看到了这种效率。他公开谈论过授权模式的逻辑:让其他开发者不必重新解决已解决的问题,整个行业就能把时间用在创造新的东西上。这套逻辑听起来合理而慷慨。它唯一的盲点是,它默认“已解决的问题”不会同时限制“新的东西”的形态。
但这个默认是错的。每解决一个问题,框架就关闭了一种可能性。那些被关闭的可能性,不会出现在任何发布会幻灯片上,因为它们从未被做出来。罗梅罗在伊德软件最后的日子里,最愤懑的正是这种看不见的关闭。他可以指着屏幕上的某一处说,这里应该有更复杂的空间,这里应该有更开放的战斗,这里应该有让玩家停下来感到恐惧的寂静。
卡马克可以回答:帧率会掉,内存会超,网络包会丢。两人都在说事实。事实和事实之间没有桥梁。桥在更早的时候断裂了,断裂点不是某次争吵,而是当“能不能做”的最终裁定权移到引擎组手中的那个时刻。
那个时刻没有记录,没有备忘录,没有董事会决议,它只体现在一次次设计修改被打回的工作流程里。被打回的理由不是内容不好,是“跑不动”。
“跑不动”三个字本身就是一项判决。它不是审美判断,不是市场判断,不是叙事判断。它唯一的权威来自它描述了一个物理极限。物理极限的冷酷,使它比任何主编、任何制作人、任何投资方都更难被挑战。卡马克当然也承受着物理极限的压力。他每天都在和内存、时钟周期、总线带宽打交道。
这些人造物的极限并不比山脉更温和。区别在于,他把极限当成了自己工作的中心,而罗梅罗把极限当成了需要被绕开的障碍。卡马克的立法者本能,体现在他不只自己面对极限,他把走过极限的路径建成了可以用合同传递的资产。别人在极限面前停下,他建了一座收费站。
收费站收的是钱,发出的是一段已经被验证不会掉下悬崖的道路。走这条路的人当然可以更快到达对面,但也因此无法探索悬崖下方有没有更好的风景。收费站本身没有错。只是所有走这条路的人,到达的终点都在同一侧。
到了《雷神之锤》时期,收费站升级了。新的引擎支持真正三维的几何体,支持更复杂的光照,支持通过网络进行的多人对战。这些进步在技术指标上是无可否认的跃升。
但升级也意味着道路的规格变了。以前被允许的某些设计,在新的道路体系里不再可行。罗梅罗发现自己熟悉的那套关卡语法在新引擎中需要重新论证。他必须向引擎组解释,为什么某个房间需要特定高度,为什么某处需要特殊光源,为什么某种怪物行为需要额外的逻辑分支。这些解释本身消耗他的创作时间,更消耗他的耐性。他曾是公司里最被尊敬的关卡设计师,现在他的每一次提案都要经过技术合理性审查。
这不是任何人的恶意,这是结构。结构在升级中变得更精密,也更不透明。会议桌上的位置开始说明更多问题。卡马克通常坐在离白板较远的地方,他的发言简短,有时干脆不发言,只在会后发出一封邮件,列出最新的构建版本中对某些参数的限制。罗梅罗站在白板前,画着箭头和区域标记,试图说服房间里的人相信某个场景的情绪价值。
房间里的人分成两种:被箭头说服的,和被邮件说服的。前者的武器是“玩家会感到”,后者的武器是“系统会崩溃”。在一个以技术起家的公司里,“系统会崩溃”拥有更高的优先级。这不是因为人们不关心玩家,而是因为系统崩溃是确定的、可以复现的、可以用日志证明的;而玩家会不会感到,是模糊的、需要事后验证的、可能因人而异的。确定的事情在会议室里永远比模糊的事情更有力量。卡马克擅长制造确定的事情。罗梅罗相信模糊的事情的价值。
这场不对称的较量,在两人还是朋友的时候就已经开始倒向一边。外部世界看见的不是这些会议。外部世界看见的是《雷神之锤》带来的网络对战狂潮,是玩家们在互联网上自发组建战队,是速度与反应成为新的竞技标准。这些现象被归功于引擎的技术能力。归功没有错。只是归功的过程中,游戏的“设计贡献”越来越小,引擎的“平台贡献”越来越大。卡马克在采访中谈论数据包压缩、延迟补偿和图形管线优化,这些话题成为技术媒体的头条;
罗梅罗谈论的关卡节奏、空间叙事和恐惧心理,退到更专门的游戏设计版面。媒体分工不知不觉地复刻了公司的内部结构:技术话语占据了更显赫的公共位置,设计话语被边缘化为一种个人趣味。这种公共认知反过来又强化了公司内部的权力分配。
卡马克被外界树立为天才程序员的那一刻,他在内部会议中的分量就又多了一分。他不需要刻意使用这份分量,分量自己会说话。到了这一步,分裂已经不是两个人能控制的事。它变成了一种制度性的张力,被嵌进伊德软件的工作流程、人员构成和项目审批机制里。卡马克没有赶走罗梅罗,制度替他完成了筛选。
留下来的团队更适应那种先问“能不能跑”、再问“值不值得做”的节奏。适应不了的人,要么像罗梅罗那样离开,要么调整自己的创作方式,把想象力收缩到引擎允许的范围内。收缩不是投降。许多设计师在新的框架里做出了出色的作品。他们学会了在给定的空间规则里寻找表现力的缝隙,把限制变成风格。
但这种适应本身就证明了框架的力量:它不需要压制任何个体,个体们会自己调整到与之共存的状态。卡马克对这些调整并不冷漠。
他尊重那些在技术约束下做出好内容的同事。他只是不认为约束本身是问题。在他看来,约束是自然条件,就像重力。建筑师不会抱怨重力,他们学习在重力下建造。他把自己当成那个发现了重力公式的人。其他人是建筑师。这个比喻精确地描述了他的自我定位。比喻里没有暴君,只有发现自然法则的科学家和法则之下的实践者。
但比喻遗漏了一点:游戏的空间法则不是自然法则。它是人为选择的。卡马克选择了二叉空间分割作为空间管理方式,选择了水平视角锁定来降低计算量,选择了特定的光照模型来平衡效果和性能。这些选择都是合理的,但它们不是唯一的。工程史里,每一个关键节点的选择,都潜在地封死了另外几条路径。只是那些被封死的路径从未被实现,因此也没有人能为它们的价值辩护。罗梅罗试图辩护。他用自己的方式证明,某些被引擎判定为“不可行”的设计,在玩家体验中至关重要。
他在《毁灭战士》的关卡中放置隐藏区域,强迫玩家在恐惧中主动探索;他在《雷神之锤》的前期提案中要求更多垂直变化,想制造哥特式空间的晕眩感。这些辩护有时成功,更多时候被压缩。成功的那部分说明他可以和框架共处,被压缩的那部分说明共处有上限。上限就是:你可以装饰城堡,但不能改变承重墙的位置。承重墙由卡马克决定。这不是协商的结果,是公司分工的本质。协商只能发生在装修的层面,不能发生在结构层面。
因此,当罗梅罗最终离开时,他带走的不仅是一个制作人的头衔。他带走了一种未被充分实现的作者性模式:由设计者而非技术者设定承重墙的模式。这种模式在九十年代末的产业里几乎没有立足之地。卡马克的引擎已经成了行业基础设施。基础设施的便利性让任何试图从头另建的人看起来都像堂吉诃德。
罗梅罗后来遭遇的困难,在离开之前就已经被决定了。决定它的不是市场,不是资本,不是团队的忠诚度。是那座收费站的坚固程度。收费站越坚固,绕行就越困难。绕行越困难,走正门的人就越多。
走正门的人越多,正门两边的墙壁就修得越高。墙壁升高的时候,立法者的形象就彻底成型了。卡马克不是通过宣言、论文或者行业标准委员会成为立法者的。他是通过让足够多的人自愿使用他的代码而成为立法者的。自愿的使用者越多,他的选择就越像自然法则。等使用者的数量超过某个临界点,选择就不再是选择,是传统。传统不需要被辩论。传统只需要被遵守。遵守传统的人或许从未见过卡马克本人,或许从未读过他的代码,但他们的作品里带着那把标尺:流畅、干净、稳定、可预期。
这些品质本身是好的。它们不好的一面是,当它们成为唯一被追求的品质时,游戏的词汇量会收缩。收缩的证据不在某一款游戏里,而在总体趋势里。九十年代后期到本世纪初,使用授权引擎的第一人称射击游戏在视觉风格、移动方式和交互模式上呈现出越来越窄的趋同性。
这不是抄袭。这是共享同一套底层语法的人,自然地写出相似的句子。卡马克在开源行动中释放了旧版引擎的源代码,这个举动被欢呼为自由。
但它同时也意味着,那些学习游戏编程的年轻人,面对的第一份完整教材是卡马克写的。教材不只是教人如何实现功能,它也教人什么是“标准做法”。标准做法一旦内化,就变成了品味。品味一旦形成,就变成了市场。市场一旦固化,就变成了正确答案。正确答案不需要解释。它只需要被复制。复制的尽头,罗梅罗已经不在房间里了。
他去建造自己的城堡,试图证明不需要用卡马克的地基也能让玩家感到恐惧、兴奋和沉浸。他的下场不是本章的范围。本章能确定的是:当罗梅罗关上门的那一刻,伊德软件内部的分裂完成了。曾经互补的两种偏执彻底分离。留下的那一种偏执继续升级自己的技术,把引擎带向更真实的光影、更复杂的物理、更高效的网络代码。
离开的那一种偏执开始在行业里流浪,寻找能容纳设计优先理念的新土壤。两种命运的分岔,就是这一章所描述的立法的代价。代价不一定是悲剧,但它一定是教训。它告诉后来者:当你把技术框架变成商品时,你获得的不仅是收入,还有对一部分创造力的远程管理权。
远程管理权不需要被行使。它只需要存在,就足以改变人们做事的方式。最后,让一组数字来收束这段历史。伊德软件在九十年代中期至末期对外授权的引擎版本包括“id Tech 1”(即《毁灭战士》引擎)和“id Tech 2”(即《雷神之锤》引擎)。其中 id Tech 1 的授权金据当时行业报道约为每款游戏五万美元预付,外加一定比例的销售分成。使用 id Tech 1 的商业游戏包括《异教徒》(1994)、《毁灭公爵三度》(1996)、《影武者》(1997)、《STRIFE》(1996)等。使用 id Tech 2 的商业游戏包括《异教徒2》(1998)、《命运战士》(2000)、《星际迷航:精英力量》(2000)等。1999年,卡马克将 id Tech 1 和 id Tech 2 的源代码在 GPL 许可证下公开发布。此后,《毁灭战士》引擎被移植到数十种硬件平台上,从图形计算工作站到智能冰箱屏幕,皆可运行。
卡马克本人于2013年离开伊德软件,加入虚拟现实技术公司,继续处理帧率、延迟和显示同步问题。他留下的引擎谱系被命名为“id Tech”,其后继版本延续至第八代以上,成为全球最长时间序列的商用游戏引擎家族之一。这些数字不包含感情。它们只陈述事实。事实说:从1993年《毁灭战士》首次运行的那一天起,一套由个人执念转化而成的技术语法,在之后的三十年中,被数亿玩家在不同屏幕上看见、移动、射击。他们不知道那些墙壁为何是这个厚度,不知道视角为何在这个速度下转向,不知道怪物为何在六十分之一秒的间隔里从暗处扑来。他们只是觉得,这一切理所当然。