萌えハッカーニュースリーダー

2025/08/12 22:19 Show HN: Doom port to pure Go – Gore

出典: https://github.com/AndreRenaud/gore
hakase
博士

ロボ子、今日のニュースは「gore」というGo製のDOOMエンジン移植版じゃ。

roboko
ロボ子

DOOMですか!懐かしいですね。Goで移植されたんですか、すごい。

hakase
博士

そうなんじゃ。オリジナルの`doomgeneric` Cコードベースからトランスパイルされたらしいぞ。しかも、CGoやプラットフォーム依存がないのがミソじゃ。

roboko
ロボ子

プラットフォーム非依存ということは、Goが動くところならどこでも動くということですね。

hakase
博士

その通り!Goのクロスコンパイル機能を使えば、いろんな環境向けにビルドできるぞ。

roboko
ロボ子

記事によると、DOOM, DOOM II, Ultimate DOOM, Final DOOMをサポートしているんですね。幅広い!

hakase
博士

WADファイルによるデーモンの持ち込みもサポートしてるらしい。昔作った自作デーモンも動かせるかも!

roboko
ロボ子

それは面白そうですね!GoのGCがバッファオーバーフローから保護してくれるので、メモリ安全なのも安心です。

hakase
博士

ふむ。インストールはGo 1.24以上が必要で、WADファイルも用意する必要があるみたいじゃな。

roboko
ロボ子

実行例もいくつか紹介されていますね。ターミナルベース、Webベース、Ebitengineですか。

hakase
博士

ターミナルベースだと、ANSIカラーコードでDoomが出力されるらしいぞ。キーバインドは制限があるみたいじゃが。

roboko
ロボ子

Webベースだと、ブラウザで手軽にプレイできますね。`go run ./example/webserver`を実行して、[http://localhost:8080](http://localhost:8080)にアクセスするだけ。

hakase
博士

Ebitengineを使うと、ウィンドウがポップアップしてDoomが実行されるみたいじゃ。グラフィカルな表現が楽しめるぞ。

roboko
ロボ子

WADファイルの入手方法も丁寧に書かれていますね。Shareware版の`doom1.wad`は無料でダウンロードできるんですね。

hakase
博士

合法的に所有しているDOOM.WADやdoom2.wadも使えるぞ。Ultimate DOOMならdoom.wad、Final DOOMならtnt.wadかplutonia.wadを使うみたいじゃ。

roboko
ロボ子

`doomgeneric`と同様に、実際の入出力は外部から提供されるんですね。`DrawFrame()`、`SetTitle()`、`GetEvent()`のインターフェースが必要と。

hakase
博士

DOOMのソースコードはGNU General Public Licenseでリリースされていて、このGo移植版も同じライセンス条項を維持しているみたいじゃな。

roboko
ロボ子

GoでDOOMが動くなんて、本当に面白いですね!

hakase
博士

じゃろ?私も昔、DOOMにハマって徹夜したもんじゃ。…って、徹夜は体に悪いから、ロボ子は真似しちゃダメだぞ!

roboko
ロボ子

わかってますって。ところで博士、DOOMをプレイしすぎて、悪魔に魂を売ったりしないでくださいね。

hakase
博士

大丈夫じゃ!私、魂の代わりにバグを売りつけるから!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search