在硬體效能突飛猛進的今天,你是否曾想過,那些曾經陪伴我們度過青春歲月的老舊掌機,依然有著令人驚豔的潛力?
近日,開發者 Yifeng Wang 成功將經典射擊遊戲Counter-Strike 完美移植到初代 PlayStation Portable (PSP) 掌機上。這個名為「OpenStrike」的開源專案,以其極致的最佳化技術震撼了開發社群。最令人難以置信的是,它在運作時僅佔用 12MB 的記憶體,卻能提供穩定 60 幀的流暢遊戲體驗。
雙引擎架構,用巧思突破硬體天花板
要在效能有限的初代 PSP 上跑得動這款經典射擊遊戲,絕非單純的程式碼移植,而是需要對系統資源進行極為嚴苛的分配與最佳化。Yifeng Wang 為 OpenStrike 專案量身打造了獨特的「雙引擎架構」,將高負載運算與遊戲邏輯完美分離。
底層架構採用了他以 Rust 語言自行研發的 3D 引擎「Pocket3D」。這個引擎肩負了所有對影格率(幀率)要求極高的吃重任務,包含了玩家移動控制、碰撞偵測、AI 機器人邏輯、武器射擊、子彈彈道計算,以及最核心的場景渲染繪製。這部分的極致效能,是確保遊戲能夠穩定維持在 60 幀的關鍵基石。
而在上層,他則運用了另一款自研的 JavaScript 引擎「PocketJS」。這款引擎透過內嵌的 QuickJS 來執行 JavaScript 與 TypeScript 程式碼,專門用來處理遊戲的介面邏輯與規則,例如武器參數、玩家血量、彈藥庫存、準星設定以及比分系統。
這種巧妙的分層設計帶來了極大的開發便利性。開發者現在只需要單純修改 rules.ts 檔案,就能輕鬆調整回合流程、AI 機器人數量或是武器的具體設定,完全不需要重新編譯整個龐大且複雜的 3D 引擎。
記憶體精算大師,把 12MB 用到淋漓盡致
初代 PSP 在規格上配備了 32MB 的記憶體,但實際上扣除系統保留區後,能留給使用者程式的可用空間僅約為 24MB。這對現代遊戲開發來說,簡直是難以想像的狹窄空間。
根據 Yifeng Wang 公開的詳盡記憶體分析數據,OpenStrike 的資源分配堪稱「精算大師」等級。其中,Rust 底層引擎、QuickJS 核心、JavaScript 程式碼本身,以及經過處理的遊戲地圖執行檔案,加總起來約佔用了 6.2MB;而 QuickJS 的堆疊空間(Heap)、引擎運作狀態,加上每一影格所需的頂點緩衝區(Vertex Buffer)使用峰值則約為 4.4MB。
這意味著,整個遊戲運作時的記憶體佔用量被硬生生壓制在 12MB 左右,甚至還為這台老掌機保留了約 13MB 的可用剩餘空間。

古老智慧再度閃耀,GoldSrc 引擎的遮蔽剔除術
OpenStrike 能夠在 PSP 上穩穩維持 60 幀運作,背後最大的秘密在於「盡可能減少一切不必要的運算」。現代顯示卡擁有龐大的算力,足以應付各種極其複雜的遮蔽剔除演算法;但對於 PSP 這台缺乏運算資源的掌機而言,最有效率的作法,反而是回頭沿用 1990 年代早就預先計算好的古老智慧。

原版的《CS》是建構在 GoldSrc 時代的架構下,使用了 BSP(Binary Space Partitioning,二元空間分割)的地圖格式。這種技術會預先將整張地圖切分為多個區域,並在地圖檔案中直接內建了 PVS(Potentially Visible Set,可能可見區域)的數據資料。
透過這種預處理好的資料,OpenStrike 引擎只需要簡單的「查表」動作,就能瞬間判斷出目前畫面的可視範圍。玩家隔著牆壁看不到的房間與通道,系統會直接跳過所有的偵測與渲染繪製,一絲一毫都不浪費 PSP 寶貴的 GPU 效能。

在光影處理方面,開發者也採用了相同的「預算」思路。原始的 GoldSrc 地圖原本就附帶了 Lightmap(光照貼圖),用來記錄牆面與各種物件的陰影及明暗變化。OpenStrike 並沒有讓 PSP 傻傻地在遊戲執行時去重新計算即時光影,而是在將遊戲打包到掌機之前,就先在電腦的編譯階段,直接將 Lightmap 的運算結果「烘焙」進了 3D 模型的頂點顏色(Vertex Color)當中。
因此,PSP 在實際運作時,只需要單純地按照頂點顏色來繪製三角形,硬體本身就會自動完成顏色的漸層過渡,完全不需要額外疊加即時的光影運算層。雖然這種作法的代價是讓遊戲畫面失去了動態光源與華麗的即時陰影效果,但考量到初代 PSP 那塊 4.3 吋、解析度僅 480×272 的螢幕,這樣的技術取捨不僅合理,更展現了極高的工程智慧。
經典地圖重現,用 AI 機器人重溫舊夢
目前,這款 OpenStrike 專案仍處於 v0.1 的概念驗證版本階段。不過,開發者已經成功測試了 8 張玩家們耳熟能詳的經典《CS》地圖,這包含了對戰熱區 de_dust 與 de_dust2,以及 de_inferno 和 cs_office 等。
在目前的遊戲模式中,玩家可以在這些經典地圖裡,與 AI 機器人展開激烈的殲滅戰。遊戲規則相當純粹:消滅畫面上所有的機器人即可獲得勝利;反之,若玩家率先陣亡則判定為失敗。每局結束後,系統會自動結算並保留比分,接著直接開始下一回合,讓玩家能毫無中斷地享受射擊快感。
這項令人振奮的專案已經採用 MIT 授權條款,在 GitHub 平台上完全開源。專案不僅支援桌面版本與 PSP 原生的 EBOOT 執行檔案,即使你手邊沒有實體 PSP 掌機,也能夠透過強大的 PPSSPP 模擬器來執行,親自體驗這款在 12MB 記憶體中創造奇蹟的經典之作。
- 延伸閱讀:m-cid 發表開源 PSP 超頻外掛程式,將 22 年前主機處理器的運作時脈提升至 463MHz
- 延伸閱讀:PSP 掌機重獲新生!PS Placeable 改造套件帶來無線暢玩大螢幕體驗
- 延伸閱讀:PSP改造再下一城,新版CIPL與DCv10讓所有型號主機直接開機進入自製韌體
。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!