PDFで実装された Doom (1993)
(doompdf.pages.dev)- DoomPDFは、Doom (1993) を PDF 内で実行できるようにした実装で、ゲーム画面と操作ガイドが PDF 文書に含まれている
- 操作は WASD移動 を中心に、
qは esc、zは enter、eは use、spaceは fire に対応する shift+WASDで sprint、mで map、1-7で 武器選択 ができる- 別ページで custom WAD files をアップロードでき、ソースコードは GitHub リポジトリで公開されている
- 実行環境は Chromium ベースのブラウザ に限定されており、他の PDF ビューアでは動作は期待しにくい
PDF 内で実行される Doom
- DoomPDFは PDF 文書形式で提供される Doom (1993) の実行物
- 文書内にキーボード操作ガイドと方向入力表示が含まれている
- 動作環境は Chromium ベースのブラウザ に限定される
操作キーと拡張ファイル
- 基本操作
WASD: 移動q: escz: entere: usespace: fire
- 追加操作
shift+WASD: sprintm: map1-7: weapons
- custom WAD files のアップロード: 別ページで WAD ファイルをアップロード可能
- Source code: DoomPDF のソースコードリポジトリ
1件のコメント
Hacker Newsのコメント
ソース: https://github.com/thomasRinsma/pdfdoom
プレイ可能: https://th0mas.nl/downloads/doom.pdf
それでも、こちらの実装はいろいろな面でよりすっきりしています
EUでは電子署名がDocuSign式の「私はJohn Smithだと誓います」ではなく暗号ベースなので、特に重要だ。PDFには文句を言い続けているが、実際に代替できる形式はない。W3C / WHATWGのようなところがWeb技術ベースで作れるかもしれないが、まだ出ていないし、EPUBは電子書籍配布という狭い用途を解決するだけで、「業務用」の用途は解決できない
それなら専用言語を作るよりJavaScriptに行くほうがよく、JavaScriptと入力、グラフィックのピクセル格子を更新する方法があればDoomを動かせるレベルになる。計算とプログラミング可能性があまりにも安くなって、ごく普通のアプリにも広く入り込んだのは、恐ろしいというより素晴らしいことだと思う
次の段階はBellardのJSLinux([https://bellard.org/jslinux/](https://bellard.org/jslinux/))を入れて、開発環境やオフィススイートまで備えた完全なOSをPDFの中に収めることだ
自分の知らないところで裏でほかに何をしているのか気になった。残念ながらEmacs内のPDFではDoomは動かせなかった。ここで紹介されているものに似た手法をEmacsの標準機能とASCII文字で再実装するか、この記事が2位だったときに1位だったBad Appleのvim記事[1]に似た手法を使うほうが簡単そうだ
[1]: https://news.ycombinator.com/item?id=42674116
現代のLinuxディストリビューションがファイルの実行方法を決める過程を思い出した。数年前にそれを知ってから、自分のマシンで.exeファイルを実行するとwineやmonoで動くようにしようと、あまりにも長く取り組んでいた。面白い練習ではあったが、その価値はなかった
始めるにはzを何度か押し、移動はw/a/s/d、使用はe、発射はspace、zはenter
/XObject <> /Invoke RCEのように見えるだろうDOOM1.WADファイルくらい小さくできるだろうか?4MBだ
ただ、この技術にはほかにどんな用途があるだろう?たとえばiPhoneのような制約の大きいデバイスや、PlayStation・Xbox・キオスクのような管理対象デバイスで、PDFとしてアプリを配布できるだろうか?Adobe Readerを触っていたとき、PDFの中に映画も入れられるし、メニューバーもカスタマイズできるように見えた。思ったよりかなり柔軟な形式のようだ