Обычно PDF-файлы используют для хранения текстов и картинок, но оказалось, что они умеют гораздо больше. Благодаря поддержке JavaScript, программисты создали игры, которые запускаются прямо в PDF, сообщает Tom`s Hardware.
Аналитик по безопасности Томас Ринсма смог упаковать в формат PDF классический «Тетрис». Свою версию игры он назвал Pdftris. В нее можно играть прямо в браузере.
Ринсма выяснил, что движки PDF в браузерах (PDFium и PDF.js) поддерживают JavaScript с возможностью ввода-вывода, что позволило создать такую простую игру.
Ринсма рассказал, что ему было сложно заставить «Тетрис» работать правильно в обоих движках. Он использовал метод показа и скрытия полей для создания пикселей и добавил управление с клавиатуры через текстовое поле.
Код игры получился «довольно корявым», но он показывает, насколько мощными и гибкими могут быть PDF-скрипты. Чтобы посмотреть код Pdftris, достаточно скачать PDF-файл (всего 60 КБ) и открыть его в текстовом редакторе. Также на GitHub есть более понятный код с комментариями.
Другой разработчик, под псевдонимом ading2210, создал DoomPDF – версию игры Doom, которая тоже работает в браузере через PDF. Эта игра использует движок PDFium и работает только в браузерах Chromium. Для создания изображения он использует текстовые поля, заполняя их символами ASCII, что позволяет получить 6-цветный монохромный вывод.
Обновление изображения происходит медленно (80 миллисекунд на кадр), но для игры этого достаточно. Также в DoomPDF есть текстовая консоль. Код игры на C также доступен на GitHub.