彼らはDoomをPDFファイルで実行できるようにしただけだ

Table of Contents

彼らはDoomをPDFファイルで実行できるようにしただけだ

PDFファイル形式をいかに巧みに操り、最も印象的な作品に仕上げられるか、競争が繰り広げられています。30年以上も前のシューティングゲーム『DOOM』が、これまで予想外の場所に移植されてきたことを考えると、PDFファイルで登場するのは必然と言えるでしょう。

PDF(Portable Document Format)は、文書を表示するソフトウェア、ハードウェア、オペレーティングシステムに依存しない方法で文書を表示するために開発されました。これは間違いなく優れたシステムですが、マルウェア作成者がその複雑さを悪用することが知られています。

idのDoomをPDFで

id Software の Doom の PDF 版 – クリックして拡大

しかし、ある人にとっては悪ふざけの機会でも、別の人にとってはプログラミング能力のデモンストレーションとなり、そこで登場するのが DoomPDF です。これは PDF から実行される古典的な一人称視点シューティング ゲームの移植版で、ドキュメントの表示に使用される PDF エンジンが PDF ファイル形式の Javascript 実装を少なくとも部分的にサポートしていることが前提となっています。

Reg はPDF を Chromium ブラウザで実行し、純粋に研究目的で、90 年代の騒乱のモノクロ レンダリングが私たちの記憶どおりに機能することを確認するために、おそらく必要以上に時間を費やしました。

作者であるGithubユーザーading2210によると、PDFにおけるJavaScriptの完全な仕様はAdobe Acrobatのみが実装しており、Chromiumなどのブラウザはセキュリティ上の懸念からAPIサーフェスのサブセットを実装しているとのことです。しかし、意欲とスキルがあれば、あらゆるインタラクティブ機能を実現するのに十分な機能が揃っています。

仕組みとしては、C コード (この場合は id Software の Doom のポータブル版) を JavaScript にコンパイルして PDF で実行できる。キー入力を取得してフレームバッファーを出力に使用できる。これは作者が課題として挙げた点である。

Doom の 320 x 200 解像度では、個々のテキスト フィールドをピクセルとして使用することは実際には不可能でした (筆者は数年前に LED ストリップと Raspberry Pi を使用してフレームをレンダリングしようとしましたが、これについては言わない方がよいでしょう)。代わりに、この移植版では画面上の行ごとに個別のテキスト フィールドを使用し、その内容をさまざまな ASCII 文字に設定します。

「この方法で6色のモノクロ出力を得ることができました。ゲーム内で文字が読める程度には十分です。この方法のパフォーマンスはかなり低いですが、すべてのテキストを更新するのには1フレームあたり約80ミリ秒かかるため、プレイには十分です」と開発者は述べています。

  • GoogleはGenAIモデルをトレーニングし、Doomのゲームエンジンをほぼリアルタイムでシミュレートする
  • Doomを実行できるもののリストにバクテリアを追加
  • CAPTCHAがDoomを実行 - 悪夢モード
  • Doom Eternal : リブートの続編は雑然としているが、我々はただ引き裂き、破壊するためにここにいるだけだ

フレーム レートはハードコア ゲーマーを泣かせるかもしれませんが、Knee-Deep in the Dead をプレイするには十分な速さです。

作者は、トーマス・リンスマ氏のpdftrisにインスピレーションを受けたと述べています。pdftrisはその名の通り、PDF形式のテトリスです。リンスマ氏自身もDoomをPDF形式で再現しようと試みており、DoomPDFを「素晴らしい作品だ!」と称賛しています。

これは実に素晴らしい作品であり、素晴らしい創意工夫の例です。また、PDFは必ずしも静的なものではないことを、良い面でも悪い面でも、浮き彫りにしています。

たとえ 90 年代のピクセルベースのアクションを午後中楽しめると謳っていても、PDF を開くときは注意してください。®

Discover More