ニュース

ペイントで動くDoom登場!Ctrl+Zで時を戻せる。Microsoft幹部が制作

 さまざまなデバイスでの動作や移植が試みられている「Doom」だが、新たにWindowsの「ペイント」アプリ上でもプレイが可能になった。Microsoft AzureのCTOを務めるMark Russinovich氏が制作し、GitHubにて公開した「MS Paint Doom」にて実現されている。

 MS Paint Doomは、ペイント上でDoomのプレイを可能にするソフト。Doomエンジンである「ViZDoom」を使ってDoomをヘッドレスで動作させ、描画されたフレームをクリップボード経由でペイント上に貼り付けることで、ゲームプレイを実現している。

 ペイントならではの機能として、Ctrl+Zキーで時間を巻き戻すこと(Undo)ができ、自身が倒されてしまった場合でも復活(Un-die)が可能。また、通常のペイントと同様にファイル→保存の操作でゲーム画面を保存できる。なお、フレームレートが「スプレッドシート級」なのも特徴で、320×200ドットであれば35Hzでの動作ができるという。

 クリップボードからの貼り付けには、Ctrl+Vキーが用いられるほか、フォールバックとして編集メニューを通じたUIオートメーションによる貼り付けをサポート。読み取り中にクリップボードを書き換えるとエラーでゲームがプレイできなくなる問題を防ぐため、MS Paint Doomではクリップボードに「CF_DIB」をNULLハンドルで登録しておき、ペイントが実際に読み取るタイミングで「WM_RENDERFORMAT」メッセージを受けてから実データを渡す、遅延レンダリングの仕組みを採用している。

 キー入力周りは、プレイヤーがゲームを操作したときにペイント側の動作と干渉しないよう、低レベルキーボードフックで入力をキャプチャしている。ただし、Ctrl+Zキーの入力はペイントに渡すことで、巻き戻し機能が呼び出せる設計となっている。

 サウンドについては、効果音はエンジンから直接再生する一方、BGMはViZDoomにゲーム内音楽の再生機能がないため、外部スクリプトでWADファイルからデータを抽出し、MIDIを介して再生している。そのため、ペイントからフォーカスが外れると、BGMは再生が停止する。