我到现在都记得第一次在《侠盗猎车手3》里撞进“幽灵城”的那个下午——准确说,是开着那架翅膀被锯掉一截的Dodo飞机,从弗朗西斯国际机场跑道尽头用一个极刁钻的角度猛拉机头,硬生生冲破地图边界,然后整个自由城在我脚下变成了未加载完的几何块。那种感觉怎么说呢,像是你在自己家里住了十年,突然发现衣柜后面还有一扇暗门。

说真的,那时候我年纪还小,对《超级马里奥》和《亚历克斯小子》那种级别的破序操作还没什么概念,但GTA3这个完全在可游玩区域之外漂浮着的区域——就是游戏开场那段银行抢劫过场动画的取景地——直接把我少年的脑袋干烧了。原来3D开放世界的“边界”是可以被撞穿的,原来那些你以为只是背景板的东西,底下真的藏着实实在在的建模。

打开网易新闻 查看精彩图片

在那之后,幽灵城就成了GTA3早期模组圈里一小撮人津津乐道的都市传说。大家都知道它在那儿,也都在研究怎么用更体面的方式进去——毕竟开着Dodo硬撞的体验,十次里成功一次就算老天赏脸。到了2004年,事情有了转机。一位叫Eliano86的模组作者做了一个桥接模组,相当于在自由城和幽灵城之间搭了一条正经通道,玩家不用再赌命飞飞机,直接就能走进去看看那片被封存的开场场景。

但问题很快就来了:这个模组当时托管在gta-downloads.com上,而这个网站很多年前就已经从互联网上彻底消失,连根毛都没留下。桥接模组的下载链接跟着一起入土,从此杳无音讯。一个本来已经解决了的问题,因为存储和传播链条断裂,重新变成了“无法触达”的东西。

这就是游戏模组圈里一个挺残酷的现实——你以为网上有了就永远不会丢,但其实服务器一关、域名一过期,很多东西说没就没了。Ghost City模组的原始版本就是这么个命运:原托管平台完全下线,原始链接永久失效,甚至连网页时光机Wayback Machine都捞不回来下载文件。在很长一段时间里,它被模组社区标记为“失落媒体”。

直到一个叫Mod_Saver的爱好者决定不认这个命。

“这个特定的替代桥接模组已经被认为是‘失落媒体’超过十年了,”Mod_Saver自己说,“原始托管平台完全下线,原始链接永远死了,连Wayback Machine都没能恢复下载文件。这个模组彻底消失了。”

他干了一件特别狂的事情——不是去找什么冷门网盘,也不是挖什么俄罗斯种子站,而是直接基于2012年的一条老视频(GTA Series Videos频道发布的《GTA 3 - Tips & Tricks - How to Reach Ghost Town》),一帧一帧对着画面还原整个模组。等于说,原模组的代码和数据从一开始就不存在,他唯一的参考材料就是一段十多年前的游戏实况录像。什么叫手搓,这就叫手搓。

但Mod_Saver没停在这里。他觉得光把2004年的那个版本复刻出来还不够——那个版本有一个非常要命的瑕疵:完全是个视觉模组。你走进幽灵城能看到街道和建筑,可你一旦迈出一步,直接穿模掉进虚空,因为地面没有碰撞体积。说白了就是,你只能站在那儿看,不能走,不能跑,不能跳,本质上你进了一个全尺寸的3D截图。

这个痛点困扰了GTA3幽灵城探索者二十多年。你想,终于进去了,结果一脚踩空,这比进不去还难受。Mod_Saver显然也被这个问题膈应过,所以他在重建过程中加上了自己的东西:“但我不仅仅是克隆它——我修复了它最大的缺陷。2004年的原模组纯粹是视觉层面的,你会直接穿过幽灵城的地板掉下去。22年之后,我终于构建了缺失的碰撞文件(.col),让整座岛变得实体化,首次真正可以完全游玩。”

这就意味着,从2001年GTA3发售到现在,二十二年之后,你第一次可以在幽灵城里真正地走起来、跑起来、跳起来、撞墙反弹回来。听起来好像不是什么惊天动地的大功能,但对于整整一代玩过这个游戏、撞过地图边界的玩家来说,这个体验补完的意义可能比很多新游戏发售都来得重。

Ghost City这个区域到底是什么逻辑?如果你没玩过或者记不太清了,我帮你捋一下。GTA3的开场有一段银行抢劫的过场动画,那个场景并不是在地图里随便找个地方拍的,而是在一个独立建模的封闭区域里完成的。R星做完这段动画之后,没有把这个区域删掉,而是把它丢在了游戏地图的物理边界之外,相当于施工完成后把样板间扔在了工地外面。正常情况下你永远看不到它,但架不住玩家这个群体里面永远不缺闲不住的人。

当有人发现通过Dodo飞机的特定飞行角度可以突破地图限制,冲进那片区域的时候,整个GTA社区都炸了。因为在那之前,大家觉得开放世界就是开发商给你画好的那个框,框外面就是虚无。但幽灵城的存在明明白白告诉你,框外面还有东西,而且是可以走进去看的东西。这不是Bug,这他妈是考古。

Mod_Saver这个重建项目被命名为Ghost City Available,从名字就能看出来他有多直球——幽灵城,现在可用了。整个重建过程他自己说得很清楚,是基于那段2012年的老视频素材,从零开始重新构建,而且最关键的是,他这次给原本只有视觉外壳的建筑和地面加上了碰撞模型。一个在技术层面听起来不算炸裂的改动,在体验层面却是质的飞跃。

我觉得这件事从头到尾有几个点特别戳人。第一个是,一个2004年的小模组,因为网站倒闭就彻底消失了,这在今天的互联网逻辑里反而有点反直觉。我们现在习惯了Steam工坊、Nexus Mods、各种大型平台的托管服务,模组上传之后几乎不可能因为单点故障而永久灭失。但在那个年代,一个个人爱好者做的文件,就靠一个不知道什么时候会关停的小网站撑着,网站一死,文件跟着陪葬。这才是游戏保存领域真正让人焦虑的地方——不是没人想保存,而是保存的链条太脆弱了。

第二个是,Mod_Saver的工作方式本身就有一种老派极客的浪漫。他不是靠翻出旧硬盘、捡到源代码来完成修复的,他是对着一条2012年的YouTube视频,手把手地逆向还原。这种“用视觉参考复刻功能模组”的操作,在模组圈子里比直接改代码痛苦一万倍,因为你要从画面的每一个细节去倒推背后的数据和逻辑。他说“没有直接克隆”,这话一点都不夸张——原版模组的代码根本就不存在了,他做的实际上是重新发明一遍。

第三个也是最狠的一点:碰撞文件的加入。如果你玩过任何开放世界游戏的模组,你就会知道,加一个东西的外观和让这个东西真的能踩上去,难度不是一个量级的。外观是给眼睛看的,碰撞是给物理引擎算的。没有碰撞模型,你在游戏里看到的墙壁就是一张纸,穿过去毫无阻力;有了碰撞模型,你才能撞上去被弹回来,才算是“那个东西真的在那里”。2004年的Eliano86做桥的时候没做碰撞,可能是因为技术限制,也可能是因为当时这个模组的意义仅限于“让你进去看一眼”,没人真的指望能在里面散步。但Mod_Saver把这个问题在二十二年后解决了,直接把这个区域从一件展品变成了一个场景。

我现在特别理解Mod_Saver为什么非要干这件事。他说“而不是让它消逝在历史里”,这话听着有点中二,但你如果经历过GTA3那个年代,你就知道他说的是什么。那时候的模组圈子没有现在这么成熟的基础设施,没有一键安装的工具,没有自动检测兼容性的启动器,全靠玩家自己手动把文件拖进根目录,祈祷不会崩游戏。那个年代每一个活下来的模组,背后都有一堆已经死掉的同伴。Ghost City就是当年死在半路上的那一个。一个因为网站倒闭而断档的模组,被一个完全不相干的人,对着一段2012年的老视频,从零开始手搓复活了。这本身就是游戏社区最迷人的那部分——不是商业逻辑驱动的,不是KPI考核出来的,就是有人觉得“这个东西不应该就这么没了”,然后就动手了。

Mod_Saver自己在项目描述里还强调了一件事:他没有把这个当成一个单纯的复刻作业来做,而是定位成一次修复和补完。原模组只解决了“怎么去”的问题,他补上了“去了之后能干嘛”的答案。幽灵城从只能注视的幻影,变成了可以行走的实地。这个转变对于GTA3这个游戏来说可能只是添了一个小彩蛋,但对于模组保存这个更宽泛的命题来说,是一个特别结实的注脚——保存不只是把文件存进硬盘,保存是把体验重新还给玩家。

现在回头去看GTA3,那个世界的边界感本身就是这个游戏最有趣的设计之一。自由城看起来是个完整的城市,但R星其实在很多不起眼的角落里放了未完成的区域、调试用的空间、废弃的建模。幽灵城只是其中最出名的一个。这些地方的存在,让这座虚拟城市突然有了一种“后台”的感觉——就像是你在电影院银幕上看到的完美画面,绕到台后才发现还有脚手架和未粉刷的墙。而这种后台感,恰恰是那个年代3D开放世界游戏独有的质感。现在的游戏做得太精致了,地图边界处理得滴水不漏,你几乎感受不到有什么“不该看到的东西”存在。GTA3那个年代不是这样,它的地图边缘是粗糙的、裸露的、可被刺破的,而幽灵城就是那根刺破它的针。

Mod_Saver干完这件事,等于把这根针重新磨利了,递给所有想再去刺一下的玩家。而且这次你不用背Dodo的起飞角度表了,也不用担心走两步掉进虚空了。你走进去,踩在地面上,听到脚步声,撞到墙上会停下——这些最基础的游戏交互反馈,对于等了二十二年的人来说,分量比任何次世代光影特效都重。

我不知道有多少人会真的因为这个模组重新下载GTA3回去逛一圈,但我知道肯定有人会。因为这种“终于可以站上去”的感觉,对某些玩家来说是不可替代的。那不是在看一段过场动画,不是在读一条冷知识,而是用自己的角色,用自己的操作,实实在在地出现在那块原本只属于传说里的地面上。游戏保存做到这一步,基本就是最理想的状态了——东西还在,而且比以前更好用了。