Rockstar如何将《侠盗猎车手3》的庞大城市塞进PS2的32MB内存:流媒体和五大优化策略

Game Maker's Toolkit

总结:

《侠盗猎车手3》(GTA3)在PlayStation 2上实现了一个奇迹:将一个4公里宽、总计约130MB的自由城塞入仅32MB的内存芯片中。Rockstar通过以下核心策略和优化解决了这一挑战:

  • 流媒体系统: 游戏将城市划分为数千个小扇区,并根据玩家位置动态加载和卸载当前可见区域的模型和纹理。
  • 细节层次(LOD): 远处物体只加载简化的低多边形模型,靠近时再无缝替换为高细节模型,以减少内存占用并避免突然出现。
  • 内存池优化: 对非城市资产(如车辆和行人AI)进行严格的内存分配管理,例如将可同时加载的车辆类型限制为8种,以确保城市流媒体有足够的空间。
  • 碎片化管理: 实现了定制的内存管理器,通过合并和移动内存块、积极释放内存以及标准化资产文件大小来防止内存碎片化。
  • DVD寻道优化: 重新组织DVD上的资产布局,将相关资产捆绑存放,并复制常用资产到不同位置,以减少光驱寻道时间。
  • 减缓玩家速度: 限制车辆最高速度,在特定区域增加空气阻力,并修改城市布局(例如在主干道放置大型建筑),以防止玩家跑得太快导致游戏无法及时加载世界。 通过这些巧妙的工程技术,Rockstar成功地在有限的硬件上打造了一个沉浸式的开放世界,为后续系列奠定了基础。
    《侠盗猎车手3》中的自由城鸟瞰图,显示其横跨4公里的宽度。
    《侠盗猎车手3》中的自由城鸟瞰图,显示其横跨4公里的宽度。 [ 00:00:40 ]

介绍 [00:00]

《侠盗猎车手3》(GTA3) 在视频游戏史上留下了浓墨重彩的一笔,它不仅奠定了最赚钱系列之一的基础,还开启了开放世界游戏浪潮,并引发了媒体的广泛关注。然而,这款游戏最令人惊叹之处在于,Rockstar North(当时名为DMA Design)如何将一个4公里宽的纽约市缩影——自由城,塞进PlayStation 2(PS2)仅32MB的内存芯片中。

《侠盗猎车手3》中的自由城鸟瞰图,显示其横跨4公里的宽度。
《侠盗猎车手3》中的自由城鸟瞰图,显示其横跨4公里的宽度。 [ 00:00:40 ]

内存工作原理 [00:57]

为了理解GTA3的成就,需要简要了解游戏中的内存工作原理。

自由城解析 [02:13]

GTA3的开放世界设计与传统游戏加载模式不符,因为它没有明确的区域划分或加载门。

流媒体工作原理 [03:40]

游戏的技术主管Adam Fowler提出了一个更具野心的解决方案,即“流媒体”技术。

流媒体演示 [04:40]

通过在PC版GTA3上运行并结合进程监控器以及修改后的游戏源代码,可以直观地看到流媒体的运作。

流媒体技术发展史 [07:13]

GTA3并非首个提出动态加载资产概念的游戏,但它是首个将其应用于稠密城市环境的游戏。

突然出现的问题 [08:47]

这项雄心勃勃的计划带来了五个主要挑战,Rockstar需要逐一解决。

更多内存分配 [10:49]

除了城市流媒体,32MB的内存还需要承载其他重要系统。

内存碎片 [13:28]

动态加载和卸载资产会带来内存碎片化问题。

疯狂寻道DVD [15:34]

DVD的物理特性也带来了挑战。

减缓玩家速度 [17:40]

即使经过所有优化,DVD读取速度仍然是瓶颈。

总结 [21:15]

GTA3的流媒体技术和一系列巧妙优化是其成功的关键。