自 1996 年以來,Nintendo 64 一直享有盛譽:遊戲出色,但迷霧糟糕。那層遮蔽 20 英尺外一切的灰色牆壁並非風格選擇。這是一個硬體限制,所有在此平台上開發的遊戲開發者最終都會遇到,而大多數人都接受了。30 年來,沒有人想出如何在規模上繞過它。
開發者 James Lambert 剛剛做到了。
N64 迷霧問題,終於解釋
Lambert 曾開發過在實際 N64 硬體上運行的 Portal 64(一個降級版遊戲),以及一個支援 VR 的 Super Mario 64 romhack,現在他將注意力轉向了一個名為 Junkrunner 64 的遊戲開發競賽專案。該遊戲運行在實際的 N64 硬體和包括 Ares 在內的精確模擬器上,並擁有一個在該平台上出乎所有人意料的功能:繪製距離 可媲美 The Elder Scrolls V: Skyrim,這是 Bethesda 於 2011 年推出的開放世界 RPG,其運行硬體比 N64 晚了 15 年。
Lambert 在他的分解影片中說:「你可以站在地圖的一角,看到另一邊。」當他疊加尺寸比較時,Junkrunner 64 的地圖完全超越了同平台上的 The Legend of Zelda: Ocarina of Time 的世界。在規模上最接近的對比是什麼?Skyrim。
導致 N64 迷霧的技術罪魁禍首是所謂的 Z-fighting。該主機的 Z-buffer,用於追蹤物體的深度以便它們以正確的順序渲染,其精確度不足以處理遠距離的幾何圖形。當物體離攝影機越遠,N64 就會失去對哪個物體更近的追蹤,物體就會開始以錯誤的順序渲染。遠處的山脈會渲染在較近的山坡之上。迷霧是每個開發者採用的解決方案,因為它在問題變得可見之前就將其隱藏了。
Lambert 實際上是如何解決的
事情是這樣的:Lambert 找到的解決方案之所以優雅,正是因為它反映了現代引擎使用的技術,只是針對 1996 年的硬體進行了調整。
Lambert 解釋說:「解決方案是我只是將世界繪製兩次。首先,我將所有遠處的物體繪製出來,並將其縮小約 100 倍,然後我進行一次單獨的繪製,將所有近處的物體繪製出來。」世界被劃分為多個細節層級 (LOD) 的圖塊。遠處的圖塊以低細節渲染,當玩家靠近時,高細節版本會取代它們。在任何圖塊開始渲染之前,引擎都會檢查它是否在玩家的視野範圍內。如果不在,則完全跳過。
結果是一個從後往前構建的分層世界,低細節的幾何圖形填滿了地平線,高細節的圖塊則在前景接管,無需迷霧牆來隱藏接縫。
資訊
Lambert 的 Junkrunner 64 ROM 可在 GitHub 上下載,任何想在 N64 模擬器上嘗試的玩家都可以下載。合作夥伴 Pyroxene 負責實際的地圖構建,為開放世界的每個區塊構建了多個 LOD 變體。一切組裝完成後,Pyroxene 確認該遊戲在硬體上達到了「良好,有時甚至是出色」的幀率。對於一款運行著 Skyrim 大小世界的 30 年老主機來說,這可不是小事。

懸浮車加速時速可達 180 英里
打造一個值得探索的龐大地圖
構建開放世界只是問題的一半。Lambert 認識到,僅僅規模大並不能讓一款遊戲值得玩。「這個巨大的地圖真的很酷,但如果裡面沒有東西可做,而且移動速度很慢,它實際上會讓遊戲變得更糟,」他說。
移動的解決方案是玩家的懸浮車,完全升級並加速時可達約 180 英里/小時的速度。探索的解決方案則更為周全:地圖一開始是完全隱藏的,玩家在世界中移動時會一點一點地揭示它。這是一個設計選擇,讓探索具有實際的意義,這是許多地圖上充滿圖標的現代開放世界遊戲已經悄悄放棄的東西。
Lambert 已經明確表示 Junkrunner 64 是一個遊戲開發競賽專案,不太可能自行擴展成更大的東西。重要的是技術的下一步發展。這裡開發的技術將直接用於 Lambert 之前宣布的更大規模的 N64 專案,這是一款 Magicka 風格的合作遊戲,現在將擁有一個適當的開放世界引擎來構建。
對於任何在 N64 迷霧中瞇著眼,想知道硬體到底能做什麼的人來說,這就是答案。請關注 Lambert 的下一個專案,並查看最新的遊戲新聞,以獲取更多來自復古開發場景的故事。請務必查看更多內容:







