DOOM запустили... компилятора языка программирования TypeScript

Программист Дмитри Митропулос запустил DOOM внутри системы типов TypeScript, создав, возможно, самую безумную версию культовой игры.

DOOM запустили внутри компилятора языка программирования
© Ferra.ru

Для этого он разработал виртуальную машину, полностью построенную на типах TypeScript, воссоздав логику 116 инструкций WebAssembly. Каждый тип отвечает за отдельную строку пикселей, а итоговое «разрешение» составляет 320 × 200 в ASCII-формате.

Проект потребовал написания более 12 000 тестов, изучения C, C++, WebAssembly и создания собственных инструментов.

Первоначальная компиляция первого кадра заняла три месяца, а итоговый объем кода достиг 177 ТБ. Даже после оптимизации скорость остается крайне низкой — 0.0000009645 FPS, а сам TypeScript-компилятор потребляет свыше 90 ГБ оперативной памяти.

Митропулос объяснил, что пошел на это ради вызова, когда «перепробовал все другие» задачи на TypeScript.