IT之家 5 月 17 日消息,YouTube 博主 Game Maker's Toolkit 本周(5 月 11 日)发布视频,深入分析 R 星当年如何将《GTA3》装进仅有 32MB 内存的 PS2 游戏机。

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

作为参考,《GTA3》发售于 2001 年,是《GTA》系列 3D 世界观的开山之作,凭借革命性的自由玩法,为现代开放世界游戏树立标杆

而 PS2 游戏机的硬件规格并不算豪华,它虽然拥有容量至少 4.7GB 的 DVD 光驱,但光驱读取速度仅有 5MB/s,完全无法即时加载资源。内存的状况也不算宽裕,尽管总线带宽最高可达 3.2GB/s但容量只有可怜的 32MB

IT之家援引博主观点,R 星在这极其有限的硬件中成功塞入了宽约 4 公里的开放世界,其中的自由市拥有波特兰、斯唐顿岛、海岸之谷三个可探索区域,还带有大量 NPC 行人。

博主首先表示,传统游戏一般会进入某个区域时,将所有模型、纹理、动画、音效等传输到内存,当玩家走到下一个区域时触发加载动画,并将先前的区域从内存擦除并加载新区域。

但这种策略并不适用于《GTA3》,因为该游戏并没有独立的区域,也没有墙壁或门分隔各个区块,玩家可以自由地任意探索自由市,整个波特兰的文件就达到 40-50MB,完全超出 32MB。

随后博主开始研究《GTA3》的源代码,改写部分程序并重新编译出了一个新的游戏执行文件,成功揭示了 R 星的优化秘诀。

具体来说,R 星并没有把整个自由市都塞进内存,而是将自由市化作一个棋盘切成数千个网格,玩家走到哪里,游戏就只显示视觉范围内的模型、人物、资产。系统会悄悄在你前方构建世界,同时悄悄删除身后走过的世界。

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

不过,如果《GTA3》只有这种流式传输机制远远不够,因为这种系统只能保证内存不会溢出,而画面远处的建筑物则会不断闪来闪去。

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

为此,R 星建立了一套扇区检查系统,游戏会自动检查玩家当前区块视野内的模型:离玩家近的区域会被详细渲染而远处的地方只会渲染高楼、桥梁、起重机等看起来明显的物体。而且游戏内部含有多个精度的模型,玩家靠近时可以使用高精度版本,远离时则使用低精度版本,节省内存开销。

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

总的来说,R 星当年用了多种手段,让《GTA3》能够呈现在 PS2。