数十年にわたる歴史を持つ「Doomが動くか?」ミームは、インターネットで最も古く、そして最も愛されているジョークの一つです。しかし、それはそれ以上のものに成長しました。開発者を目指す人々にとって、通過儀礼のようなものなのです。
最近私のお気に入りのサブレディット、r/itrunsdoom を覗いてみてください。その灯火が今日まで勇敢に受け継がれているのがわかるでしょう。It Runs Doom! のTumblrページが約1年前に更新を停止して以来、Redditコミュニティは10万人を超えるメンバーに成長し、あらゆるものにDoom が移植されたことに対して投稿や反応をしています。電卓、クレジットカード端末はもちろんのこと、任天堂のArmamo、2006年製のRS Media Robot、Pioneer DJのマルチプレイヤーなどもそうです。しかも、これはここ数ヶ月の出来事です。
おすすめ動画
奇妙なDoomの移植版にどっぷりハマるにつれ、このアイデアの出所、そしてもっと重要な点として、なぜ実現可能なのかという疑問が湧いてきた。そもそも、こんな馬鹿げたアイデアを思いついたのは誰だったのだろうか?その真相を解明するには、1990年代のインターネット史の地獄のような年代記を掘り下げ、今日までこの伝統を守り続けている熱血ハッカーたちに話を聞く必要があるだろう。
なぜDoomなのか?
私たちの物語はDoom が発売された 1993年に始まるのではありません 。4年後の1997年から始まります。その年の12月23日、クリスマスの2日前、id SoftwareはDoomのソースコードを公開しました。 オリジナルコードを自ら書いた開発者のジョン・カーマックは、コミュニティに宛てた手紙を書き、その手紙は今もDoomのGitHubページに残っています 。 そう、Zenimaxのような巨大企業がid Softwareを買収した(その後ZenimaxはMicrosoftに買収されました)今日でも、Doom のソースコードは依然として存在しているのです。
「どれくらいの人がこれをプレイするのか、正確には分かりませんが、もし重要なプロジェクトが着手されるなら、コミュニティの協力体制がある程度整うと素晴らしいと思います」とカーマック氏は手紙の中で述べている。「初期のプロジェクトのほとんどは、個別に行われる粗削りなハックになるだろうとは思いますが、来年、複数のプラットフォーム向けに、改良され、後方互換性のあるDoom のバージョンが協調的にネットリリースされるのを見れば、非常に喜ばしいでしょう」。カーマック氏は読者に向けて、いくつかのプロジェクトのアイデアも提供した。
そこから数十年にわたって、非常に緻密で複雑なDoom のソースポートの系譜が続いてきました。昨年には、PrBoomXと呼ばれる別のソースポートのフォークが登場しました。正直なところ、その系譜はこの記事の範囲を超えています。それだけを網羅しようとすると、この記事よりもはるかに長い記事が必要になるでしょう。私は、その奇妙な点について知りたかったのです。
ありがたいことに、事態が奇妙になるのに時間はかかりませんでした。私が見つけることができたDoom の最も古い奇妙なバージョンは、Texas Instruments TI-82グラフ電卓用のもので、1998年4月12日にticalc.orgにアップロードされました。Basicで書かれているので、移植というよりは粗雑なクローンと言えるでしょう。しかし、26年前でさえ、Doomを 本来のプラットフォームではないプラットフォームで動作させることに関心が集まっていたのです。
その後10年ほどは、 これらの奇妙なプラットフォームでDoom が動作している様子を披露する動画はインターネット上にほとんど残っていません。YouTubeがライブ配信を始めたのは2005年ですからね。しかし、カーマック氏が予測したように、「個人で行われた粗雑なハック」は数多く存在したはずです。1998年には、DigitaOSオペレーティングシステムを搭載したカメラがいくつか発売され、数年前にYouTubeチャンネルLGRが紹介したように、これらのカメラでDoom が動作できるようになりました。DigitaOSについては覚えておいてください。次のセクションで改めて取り上げます。
1998年にこれらのカメラでDoom を実際に 動作させた人はいたのでしょうか?私が調べた限りでは分かりませんが、おそらくその答えは時の流れ、あるいは少なくともインターネットの世界に埋もれているのでしょう。しかし、ソースコードが公開され、その後様々なプラットフォームに移植された初期の頃から、少なくとも何らかの実験が行われていたことは明らかです。Doomの正式な移植に関する最も初期の情報源の一つは、2007 年のDoomworldフォーラムの投稿で、投稿者はTI-83電卓でゲームが動作しているYouTube動画(現在は削除されています)へのリンクを貼っていました。
2013 年 10 月、「It Runs Doom!」の Tumblr ページが開設され、ゲームの基本的な移植版を披露した後、作者は ピアノでDoom を演奏するビデオを共有しました。
しかし、Tumblr、Reddit、YouTube、そしてGoogle検索をくまなく探してみた結果、どうしても出てこない動画が1つありました。それは、LGRが TI-83で Doom をプレイした動画です。2017年に公開されたこの動画は700万回以上再生されており、私が調べた限りでは、型破りなデバイスで Doomを プレイしている動画としては、断然最も人気のあるものです。Doomが どんなデバイスでもプレイできるという考えは、ゲームが最初にリリースされた頃から存在し、その後も長年にわたり愛好家たちが温めてきたアイデアです。しかしながら、現代の様々な奇妙なデバイスでDoom をプレイするという熱狂は、少なくとも部分的には、LGRのこのテーマに関する動画に端を発しているようです。
Doom は象徴的なゲームであり、それが移植への熱狂の理由であることは間違いありません。しかし、ゲーム自体にも様々な要素が組み合わさっており、こうした熱狂的なハッキングプロジェクトに最適な候補となっています。
持ち運びに便利な悪魔の殺し屋
Doom がなぜこれほどポータブルだったのか、技術的な詳細に触れる前に、 Doom がこれほど文化的な試金石となっていなければ、こうしたことは何も起こらなかっただろうということを述べておきたい。Doomが 爆発的な人気を誇っていたというのは控えめな表現だ。Doom発売 当時 Microsoft に勤務していた Valve の創業者 Gabe Newell 氏は、 1993 年には Windows よりも多くのコンピューターにDoom が インストールされていたと推定している。たとえそれが誇張表現だとしても、 Doom がセンセーションを巻き起こしたことは否定できない。
1994年、 Doomの 発売からわずか数か月後 、ユニバーサル・ピクチャーズが映画化権を購入しました。ニューウェルは Doom のWindowsへの移植を無償で申し出ました。Intelは Doomを 業務用コンピュータにインストールすることを禁止しました。id Softwareは、このゲームを発表するプレスリリースで、「世界中の企業において、 Doomが生産性を低下させる最大の原因となることは間違いありません」と述べています。

「id SoftwareがMicrosoftやIBMのような企業をいかに時代遅れに見せかけるのか、多くの人が驚嘆し始めた。idはシェアウェア現象を中毒性のあるものに仕立て上げたのだ」と、デイヴィッド・クシュナー著『Masters of Doom』は述べている。「Doomはあまりにも魅力的で、人々はついついフルドーズを飲みたくなってしまう。『ヘロインウェア』と呼ぶ者もいた。フォーブス誌は『Profits from the Underground(地下組織の利益) 』と題した、id SoftwareがいかにしてMicrosoftのような企業を時代遅れにしているのかを熱く描いた記事を掲載した。記事にはこう記されていた。『非上場企業であるid Softwareは財務諸表を公表していないが、同社の利益率について私が調べた限りでは、Microsoftは二流のセメント会社に見えてしまう』」
人気が爆発的な人気を呼んだのは間違いないだろうが、Doomがこれほど多くのプラットフォームで動作するには、3つの重要な要素が必要だった。まず、ソースコードが無料で入手できること。これは正解だ。カーマック氏はこのステップを自ら引き受けることにした。オリジナルの『スーパーマリオブラザーズ』は 現代のほとんどの電子機器で動作させることができたが、ソースコードを見つけるのは至難の業だった。
しかし、ここでもう少し説明が必要な点が2つあります。ソースポートはほぼあらゆるプラットフォームで利用可能である必要があり、最後に、ゲームは1990年代後半の基準から見ても極めて低いソフトウェアおよびハードウェア要件で動作するように記述されている必要があります。
これらの要素をいくつか備えたゲームは他にもいくつかあります。しかし、Doomは、 その驚異的な人気と相まって、これら3つすべてを満たしています。開発元のSick.Codesが私に説明したように、Doomは「地球上で最も移植されたゲームの一つであり、誰かがいつか、どんなにランダムなアーキテクチャ向けにもコンパイルした」のです。
実演してみましょう。
ブラウザでプレイできる Doomのバージョンへのリンクです 。特に変わったことはありませんよね?ブラウザで Doomを プレイする方法は数多くありますが、アドレスバーを見てみると面白いことに気づきます。プレイできるDoom のバージョンはSVGファイルです。ベクターファイルで、Photoshopで読み込むようなファイルです。本来は静止画で、操作できないはずです。しかし、ここでは ブラウザでプレイできるSVGファイルの中でDoomが動いているのです。
もう一つ重要な事実は、1993年当時、3Dグラフィックアクセラレータが高価で入手困難だったため、PCはゲームをプレイするのに理想的なプラットフォームではなかったということです。これらのチップのほとんどは、アーケードゲーム機や家庭用ゲーム機で使用されていました。id Softwareがゲームを開発し、特に以前の『Commander Keen』 や 『Wolfenstein』 のようにシェアウェアとして配布するのであれば、ほぼあらゆるプラットフォームで動作する必要がありました。
Gzalo氏は、寄付されたPCパーツを再生するアルゼンチンのボランティア団体「Cybercirujas」のメンバーです。開発者は、ゴミ箱で見つけたVerifone VX620決済端末でDoom を動作させることに成功しました。
「[Doom]に必要なのは、画像を出力するフレームバッファ(画面にマッピングされるメモリ領域)と、ごく基本的な入力だけです。ソフトウェア的には、ターゲットアーキテクチャ向けにC言語をコンパイルできれば十分です。これは、32ビットプロセッサ向けのプログラムを書く際にほぼ必ずと言っていいほど最初に必要となる要件の一つです」と開発者のGzalo氏は語る。「他の新しいゲームを移植するには、オペレーティングシステム(通常はLinux/Posixなど)とOpenGLをサポートする何らかの手段が必要になることが多いですが、これは実現可能ですが、より多くの作業が必要になります。」
Gzalo 氏は続けて、Doomを実行するためにソフトウェア面で必要なことがいかに少ないかについても説明しました。
「端末のソフトウェアは改変されていません。10年前にこの端末を操作していたブラジルの人物を見つけましたが、開発証明書とアプリケーションに署名する方法をまだ持っていたので、有効な署名済みコードが動作しています」と開発者は私に語った。
ソフトウェア要件を最小限に抑えることは重要ですが、ハードウェア面も同様に重要です。当然のことながら、Doom の動作にはハードウェア面でそれほど多くの要件は必要ありませんでした。当初のシステム要件では、386 CPU(25MHz 以上)と 4MB の RAM が必要でした。ちなみに、80386 は Intel が初めてリリースした x86 32 ビットプロセッサで、1986 年に PC に搭載され始めました 。Doom がほぼ あらゆるプラットフォーム で動作するようにしたのは意図的なことでした。
カーマック氏自身は、かつてはモニターなしで実行し、スクリーンショットだけを保存できるバージョンもあったと語っている。
かなり近いですね。コードは非常に移植性が高く、ヘッドレスで実行してスクリーンショットだけを保存できるバージョンもあったんです。
ジョン・カーマック(@ID_AA_Carmack)2022年3月3日
Doom の基本的なソフトウェアとハードウェアの要件は、 DigitaOSに話を戻します。このOSはC言語で記述されており、サードパーティ製のアプリを開発・リリースすることができました。DigitaOSを搭載して最初にリリースされた2台のカメラ、Kodak DC220とDC260は、どちらもPowerPC 800プロセッサを搭載していました。私の推測では、最大80MHzまで駆動できるMPC860を搭載していたと思われます。LGRによると、DC260に搭載されているチップは少なくとも66MHzまで駆動できるとのことです。
こうして、 Doom を 動かすための要件は満たされました。25MHz で動作する 386 よりもはるかに高性能な CPU、わずかなメモリ、そして C 言語で書かれたコードをコンパイルできるプラットフォームです。時系列を間違えないように言っておきますが、これは 1998 年にはすでに可能でした。後からKodak DC260 でDoom が動くようになったわけではありません。必要な要素はすべて最初から揃っていたのです。
しかし、これはDoom が完璧なプログラムだ からという理由だけではありません 。非常に柔軟性が高く、現代のデバイスへの移植性も高いのですが、重要なのは、ソースコードが誰でも自由に編集できるという事実です。過去30年近くにわたり、 Doom のソースポートは、考え得るほぼすべてのプラットフォーム向けに登場してきました。オリジナルのソースコードではDoom が動作しない場合でも 、数多くのソースポートのいずれかを使えば、ほぼ確実に動作させることができるでしょう。
皆さんお待たせしましたね。SVGについてお話しましょう。SVG はJavaScriptをサポートしているので、 Doomは ベクター ファイル内で実行できます。Doom SVGの開発者によると、ベクターファイルはjs-dos(オープンソースのJavaScriptベースのDOSエミュレータ)を実行し、 Doomの様々なDOSソースポートのいずれかを使用しているだけです。プログラミングの魔法のように見えるかもしれませんが、開発者は「数時間楽しく遊べる」程度に過ぎないと説明しています。まさにその通りです。
Doomが最小限の実行可能なハックになった経緯

2022年、Sick.Codesは ジョンディア社のトラクターディスプレイ上でDoomを 動作させる様子を披露しました。これは、1993年からラスベガスで毎年開催されているサイバーセキュリティとハッキングに関するカンファレンス「Def Con 2022」で披露されました。皮肉なことに、この年はDoom が発売された年でもあります。Doomを 動作させるだけでなく 、この移植版では銃の代わりにトラクターが登場し、文字通り悪魔をなぎ倒すことが可能です。ちょっとした移植ですが、Sick.Codesによると動作確認までに数ヶ月かかったとのことです。なぜこれほどの労力がかかったのでしょうか?
修理する権利運動に詳しい方なら、おそらくここで点と点がつながっているでしょう。ディア・アンド・カンパニーが製造したジョンディアの機械は、修理する権利運動の中心であり、決して好ましい状況ではありませんでした。同社は、ロックダウンされたソフトウェアをめぐって、農家と長年にわたる法廷闘争を繰り広げてきました。ディアの直接的な関与なしに機械を修理することはほぼ不可能です。ジョンディアのトラクターディスプレイでDoom を動作させることは、単なる楽しいハックではありません。これは概念実証なのです。
「ジョンディア社の主力農業機械展示で Doomを実行できたということは、彼らが数年かけて何千時間もかけて開発したデバイスを完全にハッキングできたということです」とSick.Codesは語った。「彼らの主力デバイスでDoomを実行できれば、デバイスにあらゆる不正な改造を加えることができます。デバイスを壊すことも、強化することも、サードパーティ製のソフトウェアをインストールすることも、機能を削除したり、有料のはずの機能をインストールしたりすることも可能です。」
@defcon で John Deere トラクター展示 (ジェイルブレイク/ルート化) で Doom をプレイ中 pic.twitter.com/ih0QUTGNuS
— Sick.Codes (@sickcodes) 2022年8月14日
この場合、 Doomは より深く、より重要な取り組みの証です。2年前にこの件を報じたWiredの記事で、開発者はルートアクセスを獲得したことで、マシンに保存されている1.5GBのログにアクセスできたと述べています。これらのログは、ジョンディア社の認定修理技術者のみが利用できるものです。これらのログがあれば、農家や第三者の専門家は、ジョンディア社が直接関与しなくても、ジョンディア社の機器を診断し、場合によっては修理することができます。
「Doom を実行するには、グラフィックス用の SDL2 など、少数のライブラリが必要です。そのため、Doom の実行を想定していないデバイスでゲームを実行できるということは、作業しているデバイスで任意のソフトウェアを実行できることが証明されます」と Sick.Codes は私に語った。
Doom が トラクターのディスプレイで動いているのを見るのは楽しいですし 、その楽しさを奪いたくないのは当然です。しかし、ここで重要なのは、より広い文脈を強調することです。このようなデバイスに他のソフトウェアをインストールすることもできますが、 Doom は この種のハックを披露するのに理想的な候補です。視覚的でインタラクティブであり、非常に特定の目的のために作られたプログラムです。また、注目を集めることも大きな魅力です。ジョンディアのトラクターディスプレイでコマンドラインインターフェースが動いているというニュースが流れるでしょうか?おそらくないでしょう。
このエクスプロイトの開発に何ヶ月もかかったことを軽視するつもりはありませんが、 Doomは 比較的簡単に披露できるプログラムでもあります。Sick.Codesによると、デモにはChocolate Doomを使用したとのことです。これは、可能な限り多様なハードウェアとソフトウェア構成で動作するように設計されたソースポートです。Chocolate DoomのWikiには、ソースポートの移植性について詳しく説明しているページさえあります。もしオリジナルのソースコードがなければ、そしてそのソースコードが何度も移植されていなければ、おそらくこのデモは実現しなかったでしょう。もちろん、今でも可能だったかもしれませんが、実際に実現できたかどうかは誰にもわかりません。
地獄へようこそ

Doom は史上最も影響力のあるゲームの一つであり、その理由の大部分は開発当時の状況に起因しています。PC向けに高度に最適化されたコードとシェアウェアモデルが融合し、このゲームは爆発的な人気を博しました。1997年にソースコードが公開されると、Modコミュニティは雪だるま式に成長しました。今日、Doomは最大規模かつ最もアクセスしやすいModプラットフォームの一つであるだけでなく、 当初の目的をはるかに超えて生き続けているアプリケーションでもあります。
この物語を書いているうちに懐かしい気持ちになってきました。皆さんもきっと、これを読んだ後に同じように感じているのではないでしょうか。もしそうなら、GZDoomをダウンロードして、長年かけて作られた数々の素晴らしいレベルをプレイしてみることをお勧めします。最初の2作のオリジナルのWADファイルもオンラインでアーカイブされています。もっと深く知りたい方は、MyHouse.WADのドキュメンタリーをまだご覧になっていない方はぜひご覧ください(動画は約1,300万回再生されています)。あるいは、ご自身でレベルをダウンロードしてみるのも良いでしょう。
また、 Doomを 本来あるべきではない場所に移植するという趣旨に賛同したいという方は 、開発者たちが様々なデバイスでのインストール方法をドキュメント化しています。Ikko Activebudsイヤホンへのインストール方法や、VoIP電話へのインストール方法の記事があります。さらに、前述のVX620決済端末への移植方法についても詳しく説明した記事があります。
Doomを どう楽しむか、拡張するか、あるいは完全に変えるかはあなた次第 。地獄で楽しんでください。何十万人ものファンと開発者があなたを待っています。