# TypeScriptの型だけでDOOMを動かし、言語を極限まで押し広げる試み

事象発生日:2025年2月26日

新たな動画は、DOOMエンジンを純粋にTypeScriptの型だけで動かせると主張し、実用性で知られる言語機能を技術的な離れ業の基盤に変えている。提供されたYouTubeの説明文は短いが、このデモと、それが提起する問いに焦点を絞った記事を書くには十分だ。その問いとは、型レベルプログラミングは、実用性を失ってパフォーマンスアートになるまで、どこまで押し広げられるのか、というものである。

証拠によると、制作者らはDOOMエンジンを「純粋にTypeScriptの型だけで」動作させ、それを「本当に」実現したという。この言い回しは重要だ。結果を、モックアップや編集された映像ではなく、実際に動作するデモとして提示しているからである。説明文の残りの部分からは、このプロジェクトが技術解説と好奇心に駆られた見せ物を組み合わせたものであり、チームがなぜこれを行ったのかについて、さらに動画を公開する予定であることがうかがえる。

抜粋では実装、実行環境、ゲームのどの部分が実際に機能したのかが説明されていないため、記事は技術的な詳細を過大に主張すべきではない。それでも中心的な事実は、それだけで取り上げるに値するほど異例だ。有名なゲームエンジンが、通常のTypeScriptの用途から大きく外れた型レベルでコード化され、実行されたらしい。

この種のデモは通常、2種類の人々を引き付ける。一つは、コンパイル時の仕掛けがどこで破綻するのか、あるいは隠れた表現力をどこで明らかにするのかを見るのを楽しむ言語愛好家だ。もう一つは、ツールが設計者の想定しなかった方法で曲げられ得ることを示すものとして、この試みを見る開発者である。どちらの場合も、要点は、誰かがこの方法で本番システムを出荷すべきだということではなく、言語の限界が予想より広いということにある。

この動画の存在は、ソフトウェア上の制約をパズルに変えるという、インターネットで長く続く伝統も物語っている。DOOMは、その文化的な地位と、異例の環境で動作させる難しさから、こうした実験の格好の対象になってきた。今回の新規性は、媒体が別のデバイスやブラウザー、組み込みシステムではなく、TypeScriptの型である点だ。

記事では、検証された主張と、より広い解釈との間に明確な一線を引くべきだ。検証された主張は、この試みそのものである。解釈は、型システムが驚くような、ときにはばかげた方法で使われ得ることを示している、というものだ。この区別によって、記事の正確性を保ちながら、読者に関心を持つ理由も与えられる。

多くの開発者にとって、実践的な教訓は単純だ。言語機能は、日常的なコードから想像されるよりはるか先まで押し広げられる。それ以外の人々にとって、この結果はただ面白く、印象的で、少し不安を覚えさせるものだ。TypeScriptの型はコードを記述するためのものであり、ゲームエンジンを動かす場所ではない。しかし、少なくともある一本の動画では、どうやらまさにそれを実現した。