DOOM запустили на PDF
0
Энтузиаст с ником ading2210 смог запустить легендарный шутер DOOM внутри PDF-файла. Для этого он воспользовался возможностью обработки JavaScript PDF-движком, который используется в браузерах на базе проекта Chromium. В качестве базы послужил код проект doomgeneric — специальной реализации движка DOOM с минимальными зависимостями для облегчения портирования и запуска на различных платформах. Чтобы встроить игру внутрь PDF, ее код сначала был скомпилирован в подмножество JavaScript, предназначенное для выполнения с высокой производительностью (asm.js). Интерфейс игры и пользовательский ввод реализованы с помощью текстовых полей и кнопок — стандартных объектов, которые поддерживает PDF-движок. Каждая строка экрана представляет собой отдельное текстовое поле, содержимое которого заполняется различными ASCII-символами. Это позволило добиться монохромного изображения с шестью оттенками. Обновление всех текстовых строк занимает около 80 миллисекунд на один кадр. Также автор добавил в документ консоль из 25 текстовых полей, с помощью которых на экран выводится дополнительная техническая информация. Файл с игрой и исходный код доступны на GitHub.