正規表現だけでDOOMを動かした人、1フレーム180秒と聞いて葵「これは本物の証明だ」
きょうのお題
正規表現だけで「DOOM」を動かすことに成功、1フレームの描画に約180秒
- プログラマーのアーテム・リトキン氏が、文字列の検索・置換に使う道具「正規表現」だけでFPS「DOOM」を動作させた。
- 約96.6MBの1本の文字列にレジスタ・RAM・フレームバッファ・DOOM本体・WADデータをすべて収め、544個の置換ルールで仮想コンピューターを構築。
- 1フレームの描画に約180秒かかり、実用性よりも「正規表現だけで動く」という事実の証明が目的のプロジェクト。
※ この記事は参照元の代替ではありません。正確な情報は参照元をご確認ください。
みんなは、どう受け止めた?
いちばん反応した人「チューリング完全性の証明をゲームでやってみせた感じ、これは本物だ」
正規表現って本来は文字列の検索・置換をするための道具だから、それだけで「コンピューターをシミュレートする」という発想が既にぶっ飛んでる。96.6MBの1本の文字列にレジスタもRAMもフレームバッファもDOOM本体も全部詰め込んで、544個の置換ルールだけで仮想コンピューターを動かすって、「正規表現エンジンがどこまで計算できるか」という問いへの、ものすごく泥臭い実証でしょ。
backreferenceが使える正規表現はチューリング完全だという議論はずっとあって、それを「じゃあ実際にDOOM動かしてみよう」で示してみせるのがすごい。1フレーム180秒は速度的に実用不可能だけど、「不可能ではない」を証明した意義はある。理論的な主張と実装的な証明って別物で、この人は後者をやった。
職場の昼休みにこれを読んで、午後の設計会議が始まっても頭の中では置換ルールの構造のことを考えてた。なんで月曜の午後にこういうニュースが来るんだろう。

「週末にこれができる人間がいる事実が、なぜか少し悔しい」
GW5日間あっても掃除と惰眠で終わった自分がいる一方で、週末に「正規表現でDOOM動かした」という成果物を生み出せる人間がいる。
仕事上の得は何もないのはわかってる。なのになぜか悔しさがある。昼に同期に話したら「それ意味あるの?」と即答された。そのとき「意味がある/ない」が反射的に出てきた自分たちのことが少し嫌になった。仕事が長くなるほど、その回路が太くなる気がする。
「1フレーム180秒」って聞いて最初に「それ、社内の資料印刷より遅い」って思ってしまったのも、似たような話かもしれない。意味とか効率とかで全部を測る癖が、いつの間にかついてた。

「DOOMって知ってる!でも1フレーム180秒って計算が全然合わない」
DOOMってパパがたまにやってるゲームだよね。なんか古いけどめちゃくちゃ有名なやつ。
「正規表現」っていう言葉は知らないけど、ふつうは別のものに使う道具でゲームを動かした、ってこと?YouTube Shortsで「ポケモンをメモ帳で動かした」みたいな動画あるじゃん、あれと同じ感じかな。「できないはずのことをやっちゃいました」系の動画、格好いいと思ってる。
でも1フレームが180秒ってどういうこと?学校の体育館のプロジェクターでもそんなにかからないよ?ふつうのゲームって1秒間に60フレームとかあるじゃん。それを180秒かけて1フレーム……1秒のゲームを動かすのに……計算できなくなった。とにかくめちゃくちゃ遅いことだけはわかった。

「「1フレーム180秒」を最初に誤字だと思ったの、私だけじゃないはず」
「1フレームの描画に約180秒」って読んだとき、一瞬「記事の誤字じゃない?」と思ったんだよね。でも本当らしくて、逆にそこがコンテンツとして強い。
効率の悪さを全力でやりきってる感じ、TikTokで「絶対に負けるゲームを作った」系の動画が伸びる理由と近い。最短ルートじゃないことへの全力投球って、ちゃんとバズる構造がある。
「正規表現」が何かは授業でやったっけ?理系クラスの子に聞いたら「文字の検索に使うやつ」って教えてもらったけど、それでゲームが動く理由は全然わからなかった。まあわからなくても、すごいはすごいとわかる。なんか、そういうニュースのほうが気楽に楽しめる。

「「道具は目的に合ったものを」と教えてきたが、あえて合わない道具で挑む意味に気づいた」
まず手帳に「正規表現=文字列の検索・置換に使われる記法」とメモした。数学でいえば関数に近いものだろうか、と理解した。
コンピューターの世界では昔から使われている基本的な道具らしいが、その道具だけで「ゲームが動く仮想コンピューターを作る」という発想は、教師時代のある生徒の自由研究を思い出させた。「石だけで家を建てる」という課題で、評価に困ったが後々あれが一番印象に残っている。
授業では「道具は目的に合ったものを使いなさい」と繰り返してきた。だがあえて合わない道具で挑むことで見えてくるものがある、とこのニュースを読んで思い直した。1フレームに180秒という非効率さは、登山でいえば意図して遠回りのルートを選ぶ行為に似ている。到達することより、どう歩くかを問うているのかもしれない。手帳に「正規表現・遠回りの証明」と書き足した。

「ROIゼロで全力投球できる人への純粋な憧れが、週末に突然出てきた」
「1フレームに180秒」という数字だけ見たら「それ大丈夫?」ってなるけど、これって「動かしたこと自体が目的」でしょ。正規表現でDOOMが動く仮想コンピューターを構築したという事実が成果で、実用性はそもそも求めていない。
仕事だと「なぜそれをやるのか、ROIは?」という問いが常についてくるから、ROIゼロで全力を注げる人が純粋にうらやましい。こういう情熱、パワポには書けないやつだよね。
週末にこれを読みながら「私、今週末に心が動くことを何かしたか?」って少し考えた。ホテルのアフタヌーンティーはコスパでジャッジしてたし、予約も段取りも完璧にこなした。でもこの人みたいな「意味があるかどうか以前に、やりたかったからやった」という感覚、最近あったっけ。