newsence
來源篩選

Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust

Hacker News

Iron Wolf is a pixel-perfect and mod-friendly recreation of Wolfenstein 3D written in Rust, supporting both local SDL execution and a web-based version.

newsence

Show HN: Iron-Wolf – 以 Rust 語言重製的《德軍總部 3D》原始碼移植版

Hacker News
7 天前

AI 生成摘要

Iron Wolf 是一個用 Rust 語言編寫、追求像素級完美還原且對模組友好的《德軍總部 3D》重製項目,支援本地 SDL 執行以及網頁瀏覽器版本。

背景

開發者 Ragnaroek 在 Hacker News 上展示了名為 Iron Wolf 的開源專案,這是一個使用 Rust 語言重新實現的《德軍總部 3D》(Wolfenstein 3D)原始碼移植版。該專案的目標是達成像素級的完美還原,並提供一個對模組開發友好的環境,目前已支援透過 SDL 運行共享軟體版本,並提供 WebAssembly 版本讓玩家直接在瀏覽器中體驗。

社群觀點

社群對這項專案展現了高度興趣,但也針對技術細節與程式碼風格展開了深入討論。在技術實作方面,不少使用者回報 Web 版本在 Chromium 與 Firefox 瀏覽器上會出現嚴重的閃爍問題,甚至會頻繁跳出主角 B.J. Blazkowicz 的頭像畫面,這顯示在 WASM 移植上仍有優化空間。此外,資深玩家也幽默地提醒開發者,目前似乎尚未加入老玩家耳熟能詳的經典密技「M-L-I」。

關於程式碼的「純度」與風格,社群內出現了有趣的技術辯論。有開發者指出,Iron Wolf 的原始碼看起來像是從 C 語言自動轉換或直接翻譯過來的,而非道地的 Rust 寫法。例如在處理物件搜尋時,程式碼仍使用傳統的迴圈與可變變數,而非 Rust 慣用的疊代器與閉包語法。對此,原作者 Ragnaroek 大方承認,目前的程式碼確實為了貼近原始 C 語言邏輯而寫得非常直接。這引發了關於「慣用 Rust」(Idiomatic Rust)的討論,有留言者表示希望能協助將程式碼「風水化」,使其更符合 Rust 的設計哲學,這也反映出 Rust 社群對於程式碼美學與安全性的追求。

除了技術層面,討論串也延伸到了遊戲的歷史與文化意義。部分留言者討論了這款經典遊戲在現代社會可能面臨的政治爭議,特別是其二戰背景與對納粹符號的使用。有人提到這款遊戲曾長期在德國被禁,直到 2018 年才解禁;也有觀點認為,雖然《德軍總部》系列以消滅納粹為核心,但在某種程度上也無意間參與了對該歷史時期的過度渲染。不過,多數老玩家仍將其視為純粹的奇幻射擊遊戲,並對這份童年回憶的現代重製表示支持。

延伸閱讀

在討論過程中,社群成員分享了數個相關的技術實作與資源。包括同樣使用 Rust 移植的《毀滅戰士》專案 Iron Doom,以及另一個由 Fabian Greffrath 開發、基於 Wolf4SDL 的 WASM 移植版本。此外,還有開發者分享了不參考原始 C 語言代碼、嘗試從零開始用 Rust 重新實作《德軍總部》邏輯的實驗性專案。對於想在網頁上體驗更多經典遊戲的玩家,留言中也推薦了 HN Arcade 平台作為參考。