Categories: 工作・開発

ESP32-S3でDoomを動かす、ディスプレイドライバーを分離した汎用ビルドがGitHubで公開

ESP32-S3向けにDoomライクなゲームを動作させるビルドがGitHubで公開された。開発者のluismi_kode氏がRedditで紹介したもので、ディスプレイドライバーと入力ドライバーをゲームロジックから分離し、特定の開発キットに依存しない設計になっている。

動作環境はESP32-S3(8MB PSRAM)と2.06インチAMOLEDディスプレイ、I2Sオーディオ。luismi_kode氏が開発中のポータブルMakerデバイス「Kode Dot」上で動作する様子が動画で公開されている。コードの特徴はドライバーの分離で、ILI9341やST7789など別のディスプレイコントローラーを使う場合でも、ドライバーファイルを差し替えるだけでエンジン部分に手を加えずに移植できる構造になっている。

ただしRedditのコメント欄では、このビルドが厳密にはDoomではなくWolfenstein 3Dに近い技術で実装されているという指摘が複数寄せられた。オリジナルのDoomは動的照明、可変高さの部屋、テクスチャ付きの床と天井、BSPベースのレンダラーなどを特徴とするが、このビルドはよりシンプルなレイキャスト方式で描画しているという。ESP32向けの本格的なDoomポートとしては、PrBoomを移植したesp32-doomなど別のプロジェクトが存在する。

luismi_kode氏は「既存のESP32向けDoomビルドは特定の開発キットにべったり依存したスパゲッティコードが多かった」とし、自身のハンドヘルド機プロジェクトのベースとして汎用的なコードを書いたと説明している。ソースコードはPlatformIOとArduinoに対応しており、GitHubからダウンロードできる。

関連情報

Reddit投稿(r/esp32)
GitHubリポジトリ

FabScene編集部

FabScene編集部