2001年的游戏开发者面对的是一个近乎不可能的任务:把一座完整的虚拟城市,塞进只有32MB内存的游戏机。R星做到了,而且做得极其漂亮。
《GTA3》的自由市宽约4公里,包含波特兰、斯唐顿岛、海岸之谷三个区域,还有大量NPC行人。仅波特兰一个区域的文件就达到40-50MB,远超PS2那可怜的32MB内存上限。更棘手的是,PS2的DVD光驱读取速度只有5MB/s,根本无法即时加载资源。
打开网易新闻 查看精彩图片
传统游戏的做法是分区加载——进入新区域时触发加载动画,擦除旧数据、写入新数据。但《GTA3》没有墙壁或门分隔区块,玩家可以自由穿越整座城市。这种设计彻底堵死了常规路线。
YouTube博主Game Maker's Toolkit通过改写源代码、重新编译执行文件,还原了R星的解决方案。核心策略是"棋盘切割":把自由市切成数千个网格,玩家走到哪里,系统只加载视觉范围内的模型、人物和资产。前方世界悄悄构建,身后世界悄悄删除。
但这还不够。纯流式传输会导致远处建筑不断闪烁。R星为此建立了扇区检查系统:自动判断玩家视野内的模型优先级——近处详细渲染,远处只保留高楼、桥梁、起重机等明显地标。同一物体还准备了多精度版本,靠近时切换高精度,远离时降级处理。
这些手段叠加,才让一座完整的城市在32MB内存里流畅运转。二十多年后回看,这不仅是技术妥协,更定义了开放世界游戏的底层逻辑:不是塞给玩家整个世界,而是只呈现他此刻需要看见的部分。
热门跟贴