32MB 内存撑起整座自由市:揭秘 PS2 版《GTA3》神级优化

文章报道了 Game Maker's Toolkit 对 PS2 版《GTA3》如何在仅有 32MB 内存与低速光驱上实现约 4 公里开放世界的剖析。核心在于流式加载与分格(棋盘)式世界划分:仅在玩家视野内构建与保留资源,并在前方预加载、身后删除;结合扇区检查决定渲染细节级别、仅在远处保留明显地标物,以及多精度模型(LOD)随距离切换以节省内存,从而避免了直接加载整座城市导致内存溢出的问题。

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。

版权声明:本站文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

评论加载中...