自1996年以来,任天堂64(N64)一直享有盛誉:游戏出色,但雾气弥漫。那层遮挡住20英尺以外一切事物的灰色墙壁并非风格选择。它是一个硬件限制,平台上的每位开发者最终都会遇到,而大多数人都接受了。30年来,没有人找到大规模绕过它的方法。
开发者James Lambert刚刚做到了。
N64的雾气问题,终于得到解释
Lambert曾开发了在实际N64硬件上运行的《Portal 64》(一款复刻游戏)以及支持VR的《Super Mario 64》romhack。现在,他将注意力转向了一个名为《Junkrunner 64》的游戏制作节项目。该游戏可在实际N64硬件和包括Ares在内的精确模拟器上运行,并实现了平台上无人预料到的功能:一个堪比《上古卷轴V:天际》的绘制距离。Bethesda于2011年推出的这款开放世界RPG,其硬件比N64晚发布了15年。
“你可以站在地图的一角,看到另一边,”Lambert在他的分解视频中说道。当他进行尺寸对比时,《Junkrunner 64》的地图在同一平台上完全碾压了《塞尔达传说:时之笛》的世界。在规模上最接近的等同物是什么?《天际》。
导致N64所有雾气问题的技术罪魁祸首被称为Z-fighting。该主机Z缓冲器负责跟踪物体的深度,以便按正确顺序渲染,但其精度不足以处理远距离的几何图形。当物体远离摄像机时,N64会丢失哪个物体更近的信息,物体开始以错误的顺序绘制。远处的山会渲染在近处的山坡之上。雾气是每位开发者都采取的修复方法,因为它在问题变得可见之前就将其隐藏了。
Lambert是如何解决的
事情是这样的:Lambert找到的解决方案之所以优雅,正是因为它借鉴了现代引擎使用的技术,只是针对1996年的硬件进行了调整。
“解决方案是我将世界绘制两次,”Lambert解释道。“首先,我将所有远处的物体绘制出来,并缩小约100倍,然后我进行第二次绘制,将所有近处的物体绘制出来。”世界被划分为多个细节层次(LOD)的图块。远处的图块以低细节渲染,当玩家靠近时,高细节版本会取代它们。在任何图块渲染之前,引擎会检查它是否在玩家的视野范围内。如果不在,则完全跳过。
结果是一个从后到前构建的分层世界,低细节几何图形填充地平线,高细节图块在前台接管,无需雾墙来隐藏接缝。
信息
Lambert的《Junkrunner 64》ROM可在GitHub上下载,任何想在N64模拟器上尝试的玩家都可以下载。
合作者Pyroxene负责实际的地图构建,为开放世界的每个部分构建了多个LOD变体。一切组装完成后,Pyroxene确认该游戏在硬件上达到了“良好,有时甚至是出色”的帧率。对于一台运行《天际》大小世界的30年前的console来说,这绝非易事。

悬浮摩托在加速时达到180英里/小时
打造一个值得探索的宏大地图
构建开放世界只是问题的一半。Lambert认识到,规模本身并不能让一个游戏值得玩。“这个巨大的地图真的很酷,但如果里面什么都没有,而且移动速度很慢,它实际上会让游戏变得更糟,”他说。
移动的解决方案是玩家的悬浮摩托,在完全升级并加速时,速度可达180英里/小时。探索的解决方案则更为周全:地图一开始完全隐藏,玩家在世界中移动时会一点一点地揭示它。这是一个让探索具有实际意义的设计选择,许多地图图标杂乱的现代开放世界游戏已经悄然放弃了这一点。
Lambert明确表示,《Junkrunner 64》是一个游戏制作节项目,不太可能独立扩展成更大的作品。重要的是这项技术将走向何方。这里开发的技术将直接应用于Lambert之前宣布的更大的N64项目,一个类似《Magicka》的合作游戏,现在将拥有一个合适的开放世界引擎来构建。
对于那些在N64的雾气中眯着眼睛,想知道硬件到底有多大潜力的玩家来说,这就是答案。请关注Lambert的下一个项目,并查看最新的游戏新闻,了解更多关于复古开发场景的故事。请务必查看更多内容:







