商傳媒|吳承岳/台北報導

經典開放世界遊戲《俠盜獵車手III》(Grand Theft Auto III)在開發後期曾面臨嚴峻的畫面流暢度挑戰,險些只能以每秒 20 張畫面(fps)運行。所幸,遊戲開發團隊最終借鑑了與《古惑狼系列》(Crash Bandicoot)相似的技術原理,成功將畫面幀率提升至每秒 30 張,為玩家帶來更流暢的遊戲體驗。

據《Power Up Gaming》報導,《俠盜獵車手III》的前技術總監 Obbe Vermeij 回憶,遊戲在最終完成開發前數週,仍無法達到預期的流暢度。主要原因出在遊戲引擎的畫面渲染(將遊戲中的虛擬模型轉換成螢幕上看到的圖像)方式不夠高效。當時在遊戲虛構城市自由城(Liberty City)中,即使玩家站在建築物前,遊戲引擎仍會不必要地渲染建築物後方的車輛與其他物體,造成大量運算資源的浪費。Obbe Vermeij 形容:「很長一段時間看起來都像是要卡在 20 fps,我們甚至覺得達不到 30 fps。」

為了解決這個問題,開發團隊實施了一種稱為「遮蔽剔除」(occlusion culling)的技術。這項最佳化技術的核心原理是讓遊戲引擎只繪製玩家能看到的物體,避免浪費運算效能渲染被遮擋的物體。透過將遊戲世界劃分為多個區塊,系統能夠辨識哪些物體被其他物體遮擋而無法被玩家看見,進而跳過這些物體的繪製過程。Obbe Vermeij 指出,這項系統是在遊戲進入「完成開發(went gold)」的最後一個月,甚至最後幾週才緊急實施的。

這種最佳化理念,與另一款經典遊戲《古惑狼系列》的開發商頑皮狗(Naughty Dog)所使用的方法異曲同工。《古惑狼系列》利用其嚴格控制的攝影機路徑,預先計算遊戲場景的視野可見範圍。遊戲中的樹木、懸崖、牆壁和彎道會巧妙地遮蔽住部分關卡區域,讓遊戲能在不渲染所有細節的情況下,呈現出豐富的環境。根據《古惑狼系列》程式設計師 Dave Baggett 的說法,團隊會在開發工作站上預先計算這些攝影機路徑中的可見區域。

儘管兩款遊戲的具體實施方式有所不同——《古惑狼系列》利用受控攝影機路徑,而《俠盜獵車手III》則為其自由探索的開放世界城市採用了基於區塊的系統——但其背後節省運算資源的基本原理是相同的:避免浪費寶貴的畫面渲染時間在玩家看不見的物體上。這些經典遊戲在技術上的突破,至今仍啟發著遊戲開發者進行各種技術實驗,例如目前甚至有玩家社群開發出在《俠盜獵車手:聖安地列斯》(San Andreas)內運行《俠盜獵車手:罪惡城市》(Vice City),而《俠盜獵車手:罪惡城市》又內嵌《俠盜獵車手III》的模組,展現了技術優化如何延續遊戲生命力。