瘋狂計程車逆向工程實錄:第二部分
這篇文章延續了對經典遊戲瘋狂計程車進行逆向工程的技術探索,重點在於我如何學會不再擔心並愛上這個立方體。
背景
這篇文章是關於《瘋狂計程車》(Crazy Taxi)逆向工程系列的第二部分,作者深入探討了這款經典街機與家用主機遊戲的底層技術細節。討論核心聚焦於遊戲如何處理 3D 空間中的座標系統與紋理映射,特別是開發者在硬體效能受限的年代,如何透過巧妙的數值格式與資料結構來呈現流暢的都市駕駛體驗。
社群觀點
在 Hacker News 的討論中,技術層面的細節引發了關於數值精確度與硬體優化的辯論。針對作者提到的 Qn.m(8.8)定點數格式,有評論者質疑若數值範圍僅介於 0 到 1 之間,使用這種格式是否會造成 8 位元的空間浪費。對此,其他參與者提出這可能是基於記憶體對齊或開發便利性的考量。一種合理的推測是,開發者可能只需要 8 位元的紋理座標,因此僅傳送小數部分,以在當時的硬體限制下達到最高的處理效率。這種對底層實作細節的推敲,反映了早期遊戲開發中,工程師必須在有限的運算資源與視覺表現之間取得極致平衡。
除了技術細節,社群也對《瘋狂計程車》在遊戲史上的地位表達了高度肯定。評論者將其與《莎木》並列為定義 Sega 遊戲哲學的代表作。在那個從 8 位元、16 位元的偽 3D 賽車遊戲轉向全 3D 空間的轉渡期,這款遊戲滿足了玩家對於城市探索的渴望。相較於早期的賽車遊戲往往只能在固定的公路或鄉間小徑行駛,《瘋狂計程車》提供了一個充滿細節、包含地鐵與隧道的高度整合城市地圖。
這種城市設計的豐富度在當時是極具突破性的。有觀點指出,雖然同期的《司機》(Driver)或《暴力摩托 3D》(Road Rash 3D)也嘗試提供自由移動的空間,但《瘋狂計程車》避免了當時常見的建物重複貼上問題,其城市景觀更具多樣性與真實感。儘管更早期的 Amiga 或 ZX Spectrum 平台上曾出現過原始的 3D 駕駛實驗,但那些作品大多缺乏紋理且顯得空曠。相比之下,《瘋狂計程車》在技術與藝術表現上的結合,讓它成為許多玩家心中不可磨滅的經典。此外,社群中也不乏對遊戲難度的懷念,討論者紛紛分享當年挑戰獲得最高等級駕照的熱血回憶,顯示這款遊戲不僅在技術上令人著迷,其核心玩法至今仍讓老玩家津津樂道。