TypeScriptの型システムだけでDOOMを動かす
(youtu.be)- 純粋なTypeScriptの型システムだけでDOOMの実行に成功
- 合計3兆5,000億行、177TBのコード
- 最初のフレームの生成に12日を要した
- そのために、純粋なTypeScriptの型システムだけでWASM仮想マシンを実装
- したがって、DOOMだけでなく他のプログラムも実行可能
- GitHubリポジトリ: MichiganTypeScript/typescript-types-only-wasm-runtime
技術的な課題と解決策
- 規模の問題
- 最適化前のコード規模は1.25PBで、初期計算には3か月が必要だった
- 最適化により、それぞれ177TBと12日まで削減
- TypeScriptコンパイラの制限
- スタック深度や再帰制限などを克服するためにコンパイラを改変
- ゲームリソースのエンコード
- マップ、テクスチャ、敵AI、物理エンジンなど、すべてのゲーム要素を型としてエンコード
- 型レベルのGarbage Collector、L1 CPUキャッシュ、Dead-Code Elimination、リアルタイムMemory Compactor、グローバルスタックなどを実装する必要があった
- エンジン全体は文字列リテラル形式の2の補数だけで実装されている
今後の予定
- 続編として詳細な分析動画を公開予定
- 開発中に制作したものの公開できていないShortsも60本以上ある
- 関連する予告ツイート
6件のコメント
うわ、1.25PBやばい
これは好奇心を装った狂気か……す、すごすぎる……
なんてこった……GOAT
すごい…
"最適化前のコード規模は1.25PB" すごすぎる…
まずGNで見てきて……だけでした……。ものすごくすごいと思います。