第 5 章
三维城市里的野心
屏幕上是一片灰色的废墟。不是比喻,是字面意义上的灰色——低分辨率的建筑贴图被拉伸覆盖在粗糙的多边形骨架上,窗户是模糊的色块,砖缝像用尺子画的铅笔线。一个没有碰撞体积的车模悬浮在人行道上方半英寸处,轮胎不转,引擎盖反光角度完全错误。丹·豪瑟站在爱丁堡工作室的CRT显示器前,双手撑着桌沿,肩膀僵成一个锐角。他盯着这张图看了大概四十秒,时间长得让程序员艾伦·坎贝尔的手指开始在键盘上不安地敲击假动作。房间里还有两个美术、一个技术总监和一个制作人,他们彼此交换了眼神,没有一个人开口。
然后丹说话了。声音不大,语速比平时慢。
“这不是纽约。”
艾伦清了清嗓子。他想说这本来就不是——这只是引擎测试用的占位贴图,从标准纹理库里随手拖出来的,他们甚至还没开始讨论波特兰的视觉风格。但丹没有给他解释的机会。“这是标准纹理库的第三张,工业建筑分类,灰色砖墙变体。我在伦敦的每一款建筑可视化软件里都见过它。它可以是任何地方——曼彻斯特、伯明翰、法兰克福。它唯独不是纽约。”
他转过身,面对房间里的人。那是1999年11月的第二个星期,爱丁堡的天空在下午三点就已经暗成深蓝色,办公室的荧光灯把每个人的脸照得苍白。桌上堆着披萨盒——不是加班后的遗留物,是午饭时间刚叫的,因为没人有功夫下楼。
“自由城必须是纽约。不是像纽约,不是参考纽约。必须是。每一个街角,每一条防火梯,每一根生锈的排水管。”
美术组的人想说他们没有纽约的素材库,没有足够的时间去拍摄参考照片,PS2的纹理内存限制也不允许堆砌高精度的城市细节。但丹脸上的表情让他们把话咽了回去——那是一种更难以对抗的东西,不是蛮不讲理的挑剔,而是一种纯粹的、几乎像身体疼痛的不满意。艾伦·坎贝尔后来在2008年的一次采访中回忆起那个时刻——那时他已离开Rockstar,在邓迪的一所大学教游戏设计——他说那是整个项目第一次有人明确说出了那个词真正的分量。不是“3D引擎”,不是“PS2性能”,不是“多边形预算”。是“必须”。
在那之前,整个团队以为自己在做一个技术升级项目:把俯视角换成第三人称,做几个漂亮的爆炸效果,加一些过场动画。但丹让他们意识到,他要的根本不是技术升级。他要的是一个世界。而他们手里只有一堆代码和一个倒计时的时钟。
那个倒计时的时钟,在山姆·豪瑟的纽约办公室里,以另一种形式嘀嗒作响。桌上那份新闻稿的最后一行写着:“Rockstar Games的总部位于纽约市百老汇大街575号。”这是一个真实的地址。其余的一切,还有待证明。
山姆把传真翻过来,背面空白。他拿起电话拨了爱丁堡的号码。等待音响起时,他看着窗外防火梯上堆积的鸽粪和烟蒂,想起三年前在邓迪那间廉价旅馆里,丹躺在另一张床上,对着天花板说,如果我们能让这座城市说话。那时候他们甚至还没有“自由城”这个名字。只有一台电视机里播放着苏格兰当地的新闻,画面是一个醉汉在邓迪市中心对着警车撒尿。丹说,就是这个。我们要把这种东西放进去——不是经过美化的犯罪,不是好莱坞式的黑帮,是那种你在凌晨三点从酒吧后门出来、踩到一滩不知道是什么的液体、抬头看见路灯坏了一半的街区的感觉。
山姆当时说,你疯了。丹说,对。
现在山姆手里拿着Take-Two的最后通牒,电话那头是爱丁堡工作室的前台——一个苏格兰口音浓重的女孩,名叫莫伊拉——她说豪瑟先生正在会议室里和美术组讨论视觉方向。山姆能听见背景里模糊的说话声,偶尔拔高,然后又压下去。
“跟他说,纽约来电话了。他知道是什么意思。”
莫伊拉放下话筒去传话时,山姆把传真的内容又看了一遍。两点三倍预算。十一个月超期。十二月十五日。他把这些数字在脑子里排列组合,得出的结论都一样:他们只剩下不到六周时间,必须拿出一个能说服投资方继续掏钱的版本。否则——没有否则。他比任何人都清楚Take-Two的耐心极限在哪里。瑞安·布兰特是个赌徒,但赌徒也有止损线。
而更棘手的问题在于,山姆知道爱丁堡拿不出一个“可演示版本”。不是因为团队不努力。恰恰相反,他们在过去的十一个月里以近乎自毁的方式工作,解决了一个又一个理论上不可能解决的问题。但丹不断推倒重建的设计标准,让每一个刚站稳脚跟的技术方案都在下一个“不够真实”的否定中崩塌。
电话那头传来脚步声,然后是丹的声音,听起来像在跑步中途被截下来的。
“山姆。”
“丹。十二月十五日。他们要看东西。”
沉默。山姆能听见丹在那一端的呼吸声,缓慢而沉重,像刚跑完一段楼梯。
“他们看不了。”丹说。
“他们必须看。”
“那他们就会看到一堆垃圾。”丹的声音里没有愤怒,只有一种近乎事实陈述的平静。“我刚否决了一整组建筑贴图。不是修改——是废除。整个波特兰区的视觉风格要推翻重做。现在的版本看起来像个二流主题公园的纽约主题区。我宁愿给他们看黑屏,也不要让他们以为这就是自由城。”
山姆闭上眼睛,用拇指和食指捏住鼻梁,说了预算和期限的数字。如果没有十二月十五日,就没有自由城。没有波特兰。没有贴图。没有那些防火梯和排水管。
电话那头安静了很长一段时间。长度刚好够山姆数完自己心跳的七下。
“给我四个星期。”丹说。“四周后,我给他们看波特兰的三个街区。不是整个岛,不是所有功能。三个街区。从卡勒汉大桥到红楼区。让他们在这个范围内开车、走路、开枪、撞人。让他们看到城市是活的。”
“四周?”
“四周。但你得让他们知道,这不是演示。这是还在手术台上的病人。能呼吸不代表能跑。”
山姆挂掉电话后,在笔记本上写了一行字:十二月十五日,爱丁堡,三个街区。生存证明。然后他把传真翻过来,在背面潦草地写下瑞安·布兰特的私人电话,拨通了那个号码。
此刻在爱丁堡,丹回到会议室,面对的是十二双看着他、表情介于期待和恐惧之间的眼睛。程序员、美术、设计师——他们中的大多数已经在过去的四个月里每周工作超过八十个小时。有人开始掉头发,有人婚姻亮起红灯,有人在洗手间里哭过。这些人不是好莱坞电影里那种为了改变世界而燃烧自己的天才。他们是苏格兰中产阶级家庭出来的技术人员,读的是邓迪大学和爱丁堡大学,毕业后找了份写代码或画贴图的工作,从来没想过自己会卷入一场关于“城市是否应该呼吸”的信仰战争。
丹看着他们,宣布了四个星期的期限。十二月十五日之前,波特兰的三个街区必须具有完全可体验的状态——不是地图编辑器里的预览模式,不是脚本演示,是拿起手柄就能玩。
房间里爆发出一阵嘈杂的抗议声。技术总监安德鲁·塞姆普说渲染引擎的内存泄漏问题还没解决,行人AI的寻路在坡道上会崩溃,车辆的碰撞物理在低速时会产生不可预测的自旋。美术组说每个建筑至少需要三种不同的风化状态贴图才能实现有岁月感的街角,而他们现在连一种都画不完。音效组说他们还在等丹审核电台频道的脚本。
丹的声音压过了所有抗议。不是因为他喊得更响,而是因为他的语气里有一种奇怪的确定性,像一个已经看见终点的人回头对还在起跑线上争论的选手说话。他说不可能的事他们已经做了一年。两年前,这个行业里没有人相信开放世界3D城市能在PS2上跑。六个月前,他们自己也不信。现在,他们能在这个灰色贴图的丑陋原型里开车撞路灯了。四个星期,只需要让三个街区变得可信——不是整个自由城,不是所有系统。三个街区。
他说这些话的时候没有提高音量,也没有加重任何词语,甚至没有用感叹句。但艾伦·坎贝尔后来回忆那个时刻时,把它描述为整个开发过程中唯一一次所有人同时意识到他们可能真的会成功。不是因为丹说服了他们,而是因为他说这些不可能的时候语气太平静了——平静得像已经把这些不可能掰碎、嚼烂、吞下去,消化成了自己的肌肉。山姆·豪瑟后来将自己在《侠盗猎车手III》中的职责描述为“确保游戏在外观、声音、故事和感觉上都协调一致”。
“而且,”丹补了一句,嘴角有一丝几乎不可察觉的上扬,那是豪瑟兄弟面对绝境时的标志性弧度,“我们不用标准纹理库。”
“那用什么?”主美术阿利斯泰尔·霍普的声音里带着一种明知答案但还是要问出来的无奈。
“拍照。去纽约。拍真正的纽约。每条街、每面墙、每扇门、每个垃圾桶上的涂鸦。不是参考——直接作为贴图素材。”
阿利斯泰尔张了张嘴,又闭上。他想说这会让预算再翻一番,想说团队已经超负荷运转,想说摄影测量法在PS2的纹理内存限制下根本不实用。但他看见丹的表情——那张脸上写的不是“我有一个好主意”,而是“这件事已经决定了”——于是他点了点头,开始计算需要多少胶卷。
接下来的一周里,两位Rockstar North的美术师搭上了从爱丁堡飞往肯尼迪国际机场的航班。他们随身携带了一台尼康F5、十二个胶卷、一本纽约市地图,和一份丹手写的拍摄清单。那份清单的详细程度让任何一个有理智的人看了都会感到头疼——不是“曼哈顿下城的建筑”,而是“运河街与茂比利街交叉口东南角的消防栓油漆剥落图案”、“下东区公寓楼防火梯底部生锈的铆钉特写”、“布鲁克林区废弃仓库卷帘门上的涂鸦层叠”,每一项后面都附了精确的经纬度记号,有些甚至标注了最佳拍摄时间段以避免逆光。
美术师之一的格雷厄姆·麦卡利斯特后来在接受《Edge》杂志采访时说,他们在那趟旅程中拍了一千四百张照片,其中至少有四百张被丹以“不够脏”为由否决。不是不够清晰,不是角度不对——是不够脏。他要的是那种渗透进砖缝里、被四十年的汽车尾气、雨水和尿渍浸泡出来的灰。不是普通的灰色——是纽约的灰色。
这种偏执让团队里的每一个人在某个时刻都问过自己同一个问题:我们到底是在做游戏,还是在给一座虚拟城市做考古重建?丹的答案从来没有变过。某天深夜,阿利斯泰尔·霍普把第十一版圣马克区的街道路面纹理提交审核时,丹让他重做,理由是沥青的裂缝分布太均匀了。“真实的裂缝是无序中带着规律,就像闪电。你得先在脑子里画一张看不见的应力分布图,然后让裂缝沿着这些线条开裂。”
阿利斯泰尔说了一句后来在整个爱丁堡工作室流传开来的话——“我只是个画贴图的,不是地质学家”——但第二天早上,他的办公桌上多了一本从爱丁堡大学图书馆借来的《市政道路工程手册》,扉页上贴着丹手写的便签:第四章,沥青老化与龟裂成因。祝阅读愉快。
这种偏执不是没有代价的。随着2000年春天到来又过去,爱丁堡工作室的崩溃率直线攀升。一名核心引擎程序员在连续工作三十六小时后,在洗手间的隔间里睡着了,被清洁工在早上六点发现。一名场景设计师开始出现严重的偏头痛,每次看到屏幕上的灰色调色板就会发作。制作人莱斯利·本齐斯——他当时还是团队的支柱,距离后来的决裂还有好几年——每天的工作就是逐一确认每个成员的睡眠时长,然后把那些连续三天少于四小时的人强行送回公寓,锁上门,钥匙放在前台。
但丹自己不睡。他的办公室在爱丁堡工作室的角落里,最初是一个储藏室,没有窗户,只有一个通风口。他在墙上贴满了纽约的照片——不是美术组拍的那些贴图素材,而是他从旧书摊和网上搜罗来的老照片:七十年代的哈莱姆区,六十年代的下东城,三十年代布鲁克林大桥下的码头工人。在这些照片之间钉着手写的笔记,内容从“自由城电台:脱口秀主持人应该在广告时段的背景里叹气”到“行人AI:富人区的人过马路时应该比穷人区多等两秒绿灯”,再到“垃圾桶:不同街区的垃圾桶颜色应该不同,中产阶级用绿色,贫民区用金属原色”。
这些笔记后来成了自由城的圣经。电台总监伊万·帕夫洛维奇——一个从BBC苏格兰广播电台挖来的制作人,此前从没做过游戏——第一次看到这些笔记时,以为自己误入了某个社会学研究项目的工作室。丹递给他一沓打印纸,总共一百二十页,密密麻麻写满了自由城广播电台的节目表、主持人小传、广告文案、新闻快报、热线电话环节的脚本大纲。
“这是三个电台频道的基础脚本。”丹说。“自由城市频道主打七十年代迪斯科和华丽摇滚,信号覆盖波特兰,听众是工薪阶层。上升电台主打八十年代流行和早期Hip-Hop,目标是中产通勤族。还有这个——”
他翻到最后一沓,标题是用大写字母写的:颤音电台。
“这个频道的节目全部由本地帮派操控。DJ是个在唐人街地下室广播的中年白人,自称‘颤音老爹’,实际上是个可悲的、自恋的、沉迷于自己年轻时可能拥有过的荣耀的音乐发烧友。他会在放歌的间隙讲一些关于自由城政治的阴谋论,真假参半,有时候他自己都分不清哪些是他编的。”
伊万翻了翻脚本,其中一段独白让他停住了。那段独白的内容围绕自由城的名字展开——为什么叫自由城?因为没人管你。没人管你吸毒、没人管你卖淫、没人管你在凌晨三点用铁管敲碎一辆停在红灯区的奔驰车窗。但你要是敢在红灯时横穿马路,警察立刻就会出现在你面前,手里拿着罚单簿,表情像是你侮辱了他母亲。这就是自由。有选择的自由——被逮捕的方式的选择自由。
伊万抬头看丹,问他写的是喜剧还是社会学论文。
丹说都是。“它必须好笑,因为真实的东西通常都是好笑的。但它不能只是为了好笑。颤音老爹是自由城的原住民。他的声音就是这座城市的声音。他的愤世嫉俗、他的自相矛盾、他的自我欺骗,所有这些加在一起,构成了一个活了几十年、从来没离开过自己街区的人的全部世界观。玩家可能永远不会听完整他的任何一段独白。但如果他们在红灯前停下来,偶然听到了这一句关于红灯和自由的废话——那一刻,城市就不再是任务菜单上的背景。它变成了一个地方。”
伊万点了点头。他后来招募了十二位编剧和配音演员,在爱丁堡一个由旧仓库改造的临时录音棚里录制了超过十八小时的电台内容。这些内容涵盖九个电台频道、数百首授权音乐、以及穿插其间的谈话、广告和新闻快报——所有新闻快报的内容都会根据玩家在游戏中的行为动态触发。如果你在波特兰炸掉了一整排车,第二天早晨的新闻里就会有一则关于系列纵火案嫌犯仍在逃的报道,播音员的语气介于新闻播报和道德评论之间,那种微妙的暧昧让听的人不确定自己是不是共犯。
这个动态新闻系统的实现几乎逼疯了整个音效程序团队。主程序员在连续加班三周后在白板上写了一句“让广播电台知道玩家干了什么是一个合理需求吗”,然后自己回答“是的。因为丹说是的”——两个句子用了两种不同颜色的马克笔,蓝色提问,红色回答。白板后来被保留了下来,在项目结束后被一位前员工买下,挂在自家车库里,作为对那段日子的纪念。
但声音只是这座城市叙事系统的一部分。丹的核心理念在于一个激进的主张:自由城不是任务发生的背景板,自由城本身就是主角。主角是沉默的——克劳德从头到尾不说一句话——但他不需要说话,因为城市在替他发声。每一条街道的宽度、每一个行人的步速、每一盏路灯的色温、每一个街区的垃圾堆积量,这些视觉元素共同构建一种无法复制的场所感:你知道自己在哪里,即便地图上没有标签;你感受到这个街区的贫穷或富裕、危险或安全,即便没有任何文字说明告诉你这里是贫民窟。
这种感知是前意识的。玩家不需要分析,不需要比较,不需要阅读任何背景说明。他们只需要开车经过两个相邻的街区——一个街区的窗户有铁栅栏,人行道上有裂缝,墙上有涂鸦;另一个街区的窗户是落地玻璃,人行道铺着整洁的地砖,行道树有铁护栏——他们的身体就会做出不同的反应:握紧手柄,加速驶离;或者放慢车速,探头张望。
丹把这种体验称为“城市对玩家的低语”。为了实现这种低语,他要求美术组在制作每一个街区的视觉资产时不只是画贴图和建模,而是要虚构一段衰退史。波特兰的红灯区在过去二十年里经历了什么?哪些工厂倒闭了?哪些移民群体迁入又迁出?这段历史必须体现在建筑的物理状态上——不是随机的破败,而是有原因的、可追溯的、像年轮一样积累下来的破败。
阿利斯泰尔·霍普后来在GDC的一次演讲中说,他的团队曾经花了两周时间为一条十二米长的小巷制作纹理——玩家开车经过大概需要零点四秒。但丹要求他们为它虚构一个完整的背景故事:这里曾经是一家波兰移民开的肉铺,六十年代末倒闭后变成了存放偷来汽车零件的地方;八十年代中期发生过一场小火灾,火势被消防队控制住了,但烟熏的痕迹一直留在砖墙上;后来流浪汉在这里过夜,留下了一些涂鸦和生活痕迹。所有这些——波兰肉铺的旧招牌痕迹、汽车零件的油渍、烟熏的黑渍、流浪汉的涂鸦——必须一层一层地叠加在贴图上,像地质层一样。他管这个叫考古学式的纹理工作流。
这种偏执到了什么程度?阿利斯泰尔说,有一次他提交了一组垃圾袋的贴图,丹否决了,理由是垃圾袋的扎口方式不对。“这个街区的垃圾是市政统一收的,垃圾袋应该用红色塑料扎带封口,不是随便打个结。贫民区的垃圾没人管,才是打结的。你画的是富人区的垃圾桶,但扎口方式是贫民区的。”阿利斯泰尔当时以为自己出现了幻觉,但丹是对的——纽约市政部门确实在九十年代中期开始在部分社区推行统一的红色扎带式垃圾袋封装标准,以防止流浪动物撕咬。
这个细节在游戏里没有任何功能。没有一个评测者或玩家在二十年后回顾时会说“自由城的垃圾袋扎口方式增强了我的沉浸感”。但自由城之所以是自由城,正是由一万个这样的细节堆积而成的。
同样的事情发生在声音领域。丹坚持要求每一辆车的引擎声不仅根据车型和速度变化,还要根据车况变化。一辆在波特兰红灯区偷来的破旧轿车,引擎声里应该能听见磨损的皮带和松动的排气管的共振;而一辆在斯塔恩顿岛金融区抢来的豪华轿车,发动时的声音必须安静得像一声叹息。音效团队为此录制了超过六十种不同的车辆音频样本,包括一辆真实的废弃雪佛兰——他们从废车场买来,装上一个还能运转的引擎,然后在不同的转速下录音,捕捉那种将死未死的机械呻吟。
当这些细节开始在屏幕上聚集起来时,自由城开始呼吸了。那个转折点不是某一次戏剧性的技术突破,也不是丹站在全公司面前宣布“我们成功了”的史诗时刻。它是缓慢的、渐进的、几乎不被察觉地发生的。
2000年10月的一个清晨。爱丁堡的秋天把冷雨泼在工作室的窗户上。程序员卡勒姆·麦克唐纳——他负责行人AI系统——在通宵调试了寻路算法后决定做一个非正式的测试。他没有按照测试脚本跑固定的任务流程。他只是把主角放在波特兰圣马克区的一个街角,然后什么都不做——不走路,不开车,不触发任何事件。只是站着。
在之前的版本中,行人会按照预设的路线循环运动,像迪士尼乐园里的电动人偶:轨迹固定,行为重复,一旦镜头转开就会消失。但那个凌晨,卡勒姆看到的是完全不同的一幕。
一个穿着灰色风衣的中年男人从街对面的公寓楼里推门出来,站在台阶上点了一支烟。他抽了三口,抬头看了看天气,摇摇头,把烟掐灭,走回楼里。两个街区外,一辆出租车停在红灯前,司机摇下车窗,把胳膊搭在车门上,手指随着收音机里的拍子敲击。人行道上,一个背着双肩包的女孩低头看手机——那个时代的手机还是直板按键机——撞上了路灯柱,骂了一句什么,然后继续走。
这些行为没有一个是脚本写的。行人AI的基础逻辑并不复杂——每个行人有一个需求状态机,包含几个核心变量:目的地、疲劳度、天气敏感度、对玩家的注意力阈值。但这些变量在互相作用时会产生涌现行为。那个抽烟的男人:系统检测到环境温度低于预设阈值,触发“检查天气”动作;天气检查结果影响了他的外出意愿,最终决策是取消目的地行程、返回室内。出租车上司机的敲手指:系统从玩家不可见的广播频道中随机选取了背景音乐,车辆闲置状态下触发了“跟随节奏”的子程序。撞电线杆的女孩:她的目的地更新频率与手机使用状态产生了冲突,导致寻路延迟,在碰撞检测触发后进入短暂的“尴尬—愤怒—继续行动”情绪序列。
这些行为从技术上讲只是参数的排列组合。但站在卡勒姆·麦克唐纳的位置,看着屏幕上一个不眠的、自主运转的、对自己的规则浑然不觉的微型社会——那一刻他感受到的不是技术的完成,而是一种更古老的东西:一个造物者看见自己的造物开始自主呼吸时的颤栗。
他没有喊任何人。他只是坐在那里,看着屏幕,手从键盘上移开。外面的雨停了。晨光从窗帘缝隙里透进来,在天花板上划出一道灰蓝色的线。
四十分钟后丹走进了办公室。他看见卡勒姆的屏幕,站在那里,没有说一句话。两个人沉默地看着自由城里的行人各自走着自己的路——有的在买热狗,有的在东张西望,有的蹲在墙角系鞋带,有的对着空气自言自语。一辆警车鸣着警笛穿过十字路口,不是为了追捕玩家,只是从一个不可见的地点驶向另一个不可见的地点,执行一项完全与玩家无关的任务。它路过的时候,几个行人条件反射地回头看了一眼,然后继续走。整个世界充满了目的性——不是玩家的目的,而是居民们自己的目的。你闯入其中,而不是它为你而启动。
“那个警车。”丹终于开口。“它去哪里?”
“斯塔恩顿。”卡勒姆说。“有人报警,入室盗窃。在城市的另一头。我们永远不会看到犯罪现场,但警车会开过去。如果玩家跟踪它,就会发现它最终停在一栋公寓楼门口,两个NPC警察下车进去,过一会儿出来,什么都没发生。因为我们没有做入室盗窃的动画。但——”
“但警车必须开过去。”丹接上他的话。
“对。”
丹把手放在卡勒姆的肩膀上,用力捏了一下。就一下。然后他转身走向自己的办公室,拿起电话拨了纽约的号码。
山姆在电话那头听到丹的声音时,时钟指向纽约时间凌晨三点。山姆还没睡,在审阅Take-Two发来的法律文件。他接起电话,听到丹说了两个字。
“它活了。”
山姆知道丹在说什么。不是因为这两个字本身提供了任何具体信息,而是因为他太了解丹说这两个字时的音调了——不是兴奋,不是狂喜,不是“我们完成了”。是一种更安静的、几乎像松了口气的、带着某种敬畏的陈述。
“多活?”山姆问。
“够活了。行人不知道自己是行人。他们以为自己住在这里。”
挂了电话之后,山姆在椅子上坐了很久。窗外的纽约也在凌晨三点活着——一辆垃圾车在楼下发出液压机的噪音,远处的警笛声在曼哈顿的峡谷里回荡,隔壁公寓的灯亮了又灭了。他想起四年前在邓迪的那个夜晚,丹躺在廉价旅馆的床上对着天花板说,如果我们能让这座城市说话。
现在它说话了。不是用脚本,不是用过场动画,不是用任务提示。是用一万个居民各自微不足道的、彼此无关的、共同构成一个生态系统的小小选择。
代价是——山姆看着桌上那沓Take-Two的法律文件——预算超支了将近三倍,进度延误了十四个月,爱丁堡团队有四分之一的人正在接受或需要接受某种形式的心理干预,两个核心程序员递交了离职申请,一个美术师因慢性疲劳被送进了医院。丹不知道这些。或者说他选择了不知道。他的大脑里只有一个滤波器,把所有不符合“自由城必须呼吸”这个终极目标的信号都筛掉了。这是一种才能在某种极端条件下转化成的偏执——它让丹成为了一个伟大的创作者,也让和他一起工作的人承受了难以言说的磨损。
在爱丁堡,波特兰的三个街区演示在2000年12月如期完成——实际上完成的是五个街区,超出了丹对山姆承诺的范围。不是因为计划周全,而是因为在最后一周整个团队陷入了一种临界状态,被制作人亚当·福勒后来描述为“集体性的、带有宗教狂热的冲刺”。他们不再争论可行性,不再计算成本,不再要求睡眠。他们只是做——有人在键盘上打字,有人在画板上勾线,有人在录音棚里对着麦克风吼叫,一个又一个细节被创造出来又被推翻又被重建,直到自由城的波特兰区变成了一种你可以在其中迷路的东西。
演示当天,山姆从纽约飞到爱丁堡。随行的还有Take-Two的三名高管,包括那位曾经发出最后通牒的财务副总裁迈克尔·谢伊。他们被带进一个没有窗户的会议室,墙上贴着黑色吸音棉,唯一的家具是一张桌子、几把椅子和一台连在PS2开发机上的二十英寸CRT电视。丹站在电视旁边,手里握着一个DualShock手柄。
“这不是最终版本。”他说。声音平静。“这不是正式演示。这是在手术台上。能呼吸不代表能跑。”
然后他按下了启动键。
屏幕上出现了自由城的天空——灰白色的,像一块脏抹布挂在头顶。镜头下降,穿过云层,掠过水面,落在一座桥上。一辆深蓝色的轿车从桥的另一端驶来,车头灯在午后的光线里泛着微弱的光。它驶过桥面,进入波特兰的街道。
没有人说话。
丹控制着角色下车,站在人行道上。一个穿风衣的行人从他身边走过,看都没看他一眼。街对面一个卖热狗的小贩正在打哈欠,蒸汽从热狗车里升起来被风吹散。远处有警笛声,从右声道滑向左声道,然后消失在城市峡谷的混响里。丹让角色沿着街道走——经过一家挂着霓虹招牌的当铺,招牌上“CASH FOR GOLD”的“G”字不亮,间歇性地闪烁着;经过一条小巷,巷口堆着三个黑色垃圾袋,一只猫从袋子上跳下来跑进巷子深处;经过一栋公寓楼,防火梯上挂着湿漉漉的床单,二楼窗户里传出模糊的音乐声——是自由城市频道的迪斯科,低音被砖墙过滤后只剩下沉闷的节奏。
这不是任务。这不是演示。这就是在城市里散步。
那位财务副总裁迈克尔·谢伊在沉默了整整十分钟后说了一句话。不是“这太震撼了”,不是“你们做到了”。而是:“这能运行在零售版PS2上吗?”
爱丁堡的技术总监安德鲁·塞姆普回答时语气里带着诚实的犹豫。他说目前还不能,但他们在解决剩下的问题。他列举了几个关键的技术瓶颈——渲染距离导致远处建筑物突然弹出的问题尚未完全解决;行人数量在某些密集场景下会降到十五以下,低于丹要求的“任何时刻玩家视野内至少有二十个独立行动的NPC”的标准;车辆物理在雨天路况下偶尔会出现摩擦系数归零的bug——这些问题在接下来的十个月里必须逐一攻克。如果任何一个问题最终证明不可解,整座城市就会塌缩成一堆多边形和空荡荡的街道。
但谢伊先生似乎没有听见后半段。他还在看屏幕。
丹让角色上了一辆出租车——不是劫持,而是像正常人一样拦下车、付钱、选择目的地、然后坐在后座看着城市从车窗外流过。司机是一个随机生成的NPC,戴着一顶鸭舌帽,脖子后面的皮肤被太阳晒出了分界线——他从后视镜里看了一眼乘客,说了句“去哪儿”,然后按照电台里正播放的新闻快报的节奏拍了拍方向盘。
出租车启动了。镜头留在后座。窗外的城市开始流动——先是波特兰的红砖建筑和生锈的消防梯,然后是卡勒汉大桥上的钢缆和桥下的灰色水面,然后是斯塔恩顿岛逐渐升高的天际线。电台里颤音老爹正在用他标志性的含混嗓音播报一条关于市长可能受贿的流言,语气介于愤怒和嫉妒之间,像是他这辈子唯一不能原谅的不是腐败,而是腐败没有发生在自己身上。
当出租车抵达目的地——斯塔恩顿的一片高级住宅区,街道宽敞,行道树整整齐齐,窗户没有铁栅栏,人也没有贫民区那种防备的步态——丹让角色下车。他转向谢伊先生,手指还搁在手柄上。
“你刚才看到了两个不同的社会,”丹说。“在同一个加载区域里,没有任何加载画面,没有切换。你只是坐了一趟出租车,就从移民工薪阶层的波特兰进入了中产阶级白领的斯塔恩顿。出租车的路程是三分四十七秒。你经过了一座桥,桥本身就是边界。但这不是关卡设计,不是在传送。这是你在城市里的移动。城市的物理距离本身就是叙事。”
他说这话的时候语气没有加重,表情没有变化。但在场的一个Take-Two高管后来告诉山姆——山姆后来告诉了丹——在那一刻这位高管在笔记本上写下了四个字:他们做到了。
然而那个笔记本还写了另一行字,那位高管没有告诉任何人,直到多年后在行业回忆录中被披露:但他们花了多少钱?
然而那个笔记本还写了另一行字,那位高管没有告诉任何人,直到多年后在行业回忆录中被披露:但他们花了多少钱?这个问题在2001年春天变得越来越尖锐。随着PS2的装机量数据不断攀升,Take-Two对Rockstar的期待也在同步膨胀。瑞安·布兰特在董事会上承受的压力——来自投资人、来自华尔街、来自零售渠道的合作方——转化为山姆承受的压力,转化为爱丁堡团队承受的压力。自由城会呼吸了,这很好。但它能赚钱吗?
山姆在纽约的办公室里反复计算同一个数字:他们需要卖出多少份才能回本。原始预算的数额已经翻了三倍多,这意味着GTAIII的盈亏平衡点远远高于当年任何一款主机游戏的平均销量。如果失败——这个词被山姆从自己的词汇表里删掉了,但它在凌晨三点还是会回来——如果真的失败,Rockstar Games这个品牌就会在第一次真正属于自己的产品发布后即告终结。
他站在办公室窗前看着曼哈顿街头上的人群和车流。真实的人,真实的城市,真实的灰色天空。他想,如果丹能让一群从未去过纽约的人感到一种不可名状的、对于纽约的乡愁——那么也许。只是也许。
在爱丁堡,团队已经进入了最终冲刺阶段。时间进入2001年夏天。游戏的框架已经完成——自由城的三个岛屿波特兰、斯塔恩顿、海岸之谷都已铺设完毕;任务系统、电台系统、行人AI、警察追捕逻辑这些核心模块在无数次的崩溃和修复中逐渐稳定下来。
但稳定不代表不出问题。七月的一个夜晚,爱丁堡气温反常地升到了三十度,工作室的空调系统在前一天彻底罢工。几十台CRT显示器和PS2开发机同时散热,把室内温度推到了接近人体极限的程度。有人脱掉了衬衫继续写代码,有人在脖子上搭着湿毛巾,有人每隔二十分钟就去洗手间用冷水冲手腕。
丹穿着被汗水浸透的T恤站在测试机前,让一名测试员反复执行同一个任务——在波特兰的一条狭窄巷道里触发枪战后观察行人反应。
“不对。”他说。“他们在跑。但他们跑的方式不对。”
“跑的方式?”测试员的声音有点发抖——不是因为紧张,是因为中暑的前兆。
“他们都是往远离枪声的方向跑,这没错。但他们跑的路线是一样的。所有人都是直线远离声源。真实的人类不是这么跑的——有人会跑进最近的商店,有人会躲在车后面,有人会原地趴下,有人会跑错方向然后折返。恐惧不是统一的。恐惧是个人的。”
程序员在一旁张了张嘴想说什么——这个需求意味着重写整个行人恐惧状态机,意味着新的AI路径计算,意味着更多的内存消耗,意味着他们可能无法按期提交最终版本——但他看见丹脸上的表情:那不是蛮不讲理的挑剔,而是一种更难以对抗的东西——一种纯粹的、几乎像身体疼痛的不满意。
“我们还有时间修改吗?”程序员问。
“没有。但还是要改。”
他们改了。又花了三周。最终版本的行人恐惧系统包含超过二十种不同的行为模式:从立即逃跑到僵在原地到掏出手机拨打911到试图用随身物品自卫到跪下来祈祷。这些行为不是随机分配的——系统会根据行人的社会阶层、年龄段、所处街区的安全感水平以及与枪声源的距离和视线遮挡情况计算出一个动态的恐惧反应。一个在波特兰红灯区生活了一辈子的老妓女对枪声的反应是一个白眼和一句脏话然后继续抽烟;而一个在斯塔恩顿晨练的基金经理听到枪声后会扔掉手里的咖啡杯以违反常理的速度冲向最近的建筑入口途中还撞翻了一个垃圾桶。
这种丰富性在游戏的最终版本中是隐形的。大多数玩家在通关后也不会意识到行人恐惧系统有多复杂——因为他们忙着做任务、抢车、和警察玩猫捉老鼠。但他们会在某个偶然的瞬间捕捉到它:比如在一次车祸引发的混乱中看见一个穿格子衬衫的中年男人没有逃跑而是呆立在原地双手抱头嘴里念念有词。那一刻自由城的居民不再是“行人AI”,而是和你一样被困在这座城市里的、不知道该怎么办的普通人。
2001年9月,最终测试阶段。游戏的代码已经冻结。剩下的工作是修bug——无穷无尽的、从各个角落涌现出来的、像不断斩首又不断重生的九头蛇一样的bug。有些是经典的:车辆在高速行驶时突然消失因为渲染距离把车模判断为视野外物体而提前卸载了;行人卡在建筑物和垃圾桶之间身体以每秒六十帧的速度疯狂抖动像被电击的布娃娃;主角从直升机跳下时有时会穿过地面掉进一片灰蓝色的虚空那是所有3D游戏的通用地狱。
有些则是自由城特有的:电台新闻快报的逻辑出现死循环导致某个频道连续播报同一条市长否认受贿指控的消息十七遍直到玩家手动切换频率;某个街区的行人全部变成了同一个模型——一个穿棕色夹克的白人男性——仿佛这个街区刚刚经历了一场只有一个人种存活的瘟疫。
测试组的工作时间从正常的八小时延长到十二小时又延长到十六小时。有人在测试机上贴了标签——“你已经盯着这台机器看了三百个小时。它不会爱你。回家去吧。”但标签的背面被人用另一支笔写道:“它爱你。你也爱它。这就是问题所在。”
就在这样的状态下一种奇怪的现象开始被测试员们反复报告。这个现象不是bug——至少从技术上讲不是——但它也不是正常的设计。它是一种介于两者之间的、让所有测试员同时感到困惑和兴奋的东西。
他们在最初的测试报告中写得很谨慎:提到测试过程中出现了非任务驱动的长时间自由漫游行为可能影响测试效率。后来随着这种现象变得普遍报告的语气开始改变:多位测试员表示在自由漫游阶段沉迷于收听电台节目和观察行人行为导致未在规定时间内完成分配的bug测试任务。再后来报告干脆变成了坦率得近乎荒诞的陈述:我今天本该测试波特兰的碰撞检测。我花了四个小时在斯塔恩顿开车听颤音电台。我撞了大概六辆车杀了零个人完成了零个任务。这是我在这款游戏中最美好的四个小时。
这不是设计意图。但它是设计的必然结果。丹的自由城——那个由一万个不可见的细节堆砌而成的、拒绝明确告诉玩家你应该做什么的、每一个角落都藏着某种生活痕迹的虚拟城市——在测试员们身上产生了一种意外的效果:他们不只是在测试。他们在生活。
不是现实生活。是另一种生活——一种更混乱、更危险、更自由但也更孤独的生活;在那个生活里他们可以是一个沉默的、没有过去的、在城市里漫无目的游荡的人。不需要目标。不需要进度。不需要成就。只需要存在。
一个叫艾琳·麦卡锡的测试员——她那年二十四岁刚从爱丁堡大学哲学系毕业接这份短期合同是为了攒钱去东南亚旅行——在某天的测试日志里写了一长段话这段话后来被她的主管摘录下来贴在工作室的公告栏上并在项目结束后被收入了一本关于电子游戏叙事的学术论文。
艾琳写的是她在海岸之谷的盘山公路上开车的经历:下午的太阳从云层里漏出来照着水面的反光;收音机里在放一首八十年代的合成器流行乐听起来像是有人在海滩上的最后一夜写下的告别;她没有做任何任务只是在开——从海岸之谷开到斯塔恩顿从斯塔恩顿开到波特兰从波特兰再开回海岸之谷;路上撞了两次路灯撞了一次护栏警察没有追她;她停在一个废弃的码头边引擎熄火坐在车里听着海浪和远处城市的嗡鸣。
她写道:如果这个世界真的有出口它应该就是这个样子——不是通关画面不是结局动画只是一个你随时可以停下来但又不愿意停下来的地方。她知道这座城市不是真的但她在里面的这几个小时是真的。那种自由的、孤独的、被一个不道德的地方包裹着的感觉是真的。她分不清这是游戏还是某种没读过的文学作品她觉得丹·豪瑟可能也分不清。
丹读了这份日志。他把它复印了一份寄给了山姆。
在纽约山姆收到这封信的时候距离《侠盗猎车手III》正式发售还有不到四周。Take-Two的市场部门已经把宣传物料铺到了北美和欧洲的主要渠道;广告语写的是“欢迎来到自由城”;海报上是克劳德的背影和他面前展开的城市天际线;预订量看起来不错但还远远不够填平三年研发的投入。
山姆坐在办公室里手里拿着艾琳的测试日志复印件。窗外的纽约正在进入初秋天空高远而清澈阳光照在对面的玻璃幕墙上反射出刺眼的白光。他的办公桌上堆着销售预测图表、发行合同补充协议、评级委员会的审查意见——所有这些纸面数字和条款在艾琳的日志面前突然显得脆弱而不真实。
他想这就是赌注的最终形态。他们创造了一种体验一种被一位刚从大学毕业的临时测试员形容为“我不知道这是游戏还是文学”的体验。现在他们要把这种体验放进一个售价四十九美元的塑料盒子里放在沃尔玛和GameStop的货架上和《麦登橄榄球2002》以及《托尼·霍克职业滑板3》争夺十二月份的家庭消费。
市场准备好接受了吗?一个没有地图标记的开放世界一个不说一句台词的主角一个拒绝教你怎么玩的游戏一座把玩家当成闯入者而非拯救者的城市。
山姆把艾琳的日志折好塞进抽屉里拿起电话拨了爱丁堡的号码。他想告诉丹关于发行的事关于预订量关于评级委员会对某个犯罪场景的争议但他最后只说了一句话。
“让她把名字署在测试组名单里。”
丹在电话那头嗯了一声。
然后山姆又说:“四周后要么全世界都看懂了你那座该死的城市要么我们一起回去卖唱片。”
丹没有回答。但山姆能听到电话那头传来的背景音——是颤音电台。颤音老爹正在用他那个像是抽了四十年烟又喝了一整瓶威士忌的嗓子说:自由城的市民们今天的天气是灰色的明天也是灰色的但后天有可能变成更灰的灰色所以珍惜现在这个灰色吧。
然后丹挂了电话。
然后丹挂了电话。爱丁堡的窗外天空确实是灰色的。把时间拨回2001年10月22日。那个星期一早晨七点,山姆·豪瑟站在曼哈顿联合广场的Virgin Megastore门口,双手插在黑色羊毛大衣的口袋里,看着商场保安拉开铁栅门。他不是来看销售数据的——数据会按时送到他办公桌上,精确到每一个时区。他是来看那些人的脸。过去三年里,他在爱丁堡的封闭开发室里看过同一款游戏的每一个像素、每一行代码、每一段配音,但他从未看过一个陌生人从货架上拿起那个盒子时的表情。他想知道那个表情是什么。