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

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

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

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

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

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

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

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