Найти в Дзене
Герман Геншин

Это DOOM и Tetris в формате PDF

Сначала PDFs могут показаться статичными документами, созданными лишь для текста, изображений и иногда форм. Тем не менее, современные браузеры способны раскрыть больше возможностей для PDF-документов, как показывает новый запуск Tetris и DOOM. Форматирование Тома Ринсмы, аналитика по безопасности и разработчика, продемонстрировало работоспособность классической игры Tetris, полностью выполненной в PDF. Игру можно запустить в Google Chrome и других браузерах на основе Chromium, а также в Mozilla Firefox. Попробовать её можно, загрузив PDF-файл на сайте Ринсмы. В блоге говорится: “Известно, что PDFs могут иметь множество функций при открытии в Adobe Acrobat/Reader, поддерживая сценарии для форм и другого динамичного контента. Однако оба PDFium (читалка PDF для Chromium) и PDF.js (для Firefox) также реализуют немного поддержки сценариев. […] PDFs могут содержать текстовые поля ввода, кнопки, флажки и т. д. С помощью JavaScript можно связать обработчики с событиями этих элементов («полей

Сначала PDFs могут показаться статичными документами, созданными лишь для текста, изображений и иногда форм. Тем не менее, современные браузеры способны раскрыть больше возможностей для PDF-документов, как показывает новый запуск Tetris и DOOM.

Форматирование Тома Ринсмы, аналитика по безопасности и разработчика, продемонстрировало работоспособность классической игры Tetris, полностью выполненной в PDF. Игру можно запустить в Google Chrome и других браузерах на основе Chromium, а также в Mozilla Firefox. Попробовать её можно, загрузив PDF-файл на сайте Ринсмы.

-2

В блоге говорится: “Известно, что PDFs могут иметь множество функций при открытии в Adobe Acrobat/Reader, поддерживая сценарии для форм и другого динамичного контента. Однако оба PDFium (читалка PDF для Chromium) и PDF.js (для Firefox) также реализуют немного поддержки сценариев. […] PDFs могут содержать текстовые поля ввода, кнопки, флажки и т. д. С помощью JavaScript можно связать обработчики с событиями этих элементов («полей»), а также изменять свойства этих полей из JavaScript.”

По сути, функции сценариев, предназначенные для проверки содержимого форм, можно адаптировать для изменения содержимого PDF. Документ создает сетку кнопок, которые можно программно показывать или скрывать, действуя как пиксели. Управление игрой осуществляется через кликабельные кнопки или клавиши, вводимые в текстовое поле.

Ринсма продвинул эту концепцию еще дальше, завершив порт первой игры от первого лица DOOM из 1993 года в PDF. Он основан на проекте DOOM-ASCII — работающей версии DOOM, доступной в текстовых средах с ASCII-символами, собранной для веб-браузеров с использованием WebAssembly и Emscripten. Вы можете попробовать DoomPDF в своем веб-браузере — он работает только в Chrome и браузерах на базе Chromium прямо сейчас.

-3

Порт DOOM определенно медленный в Chrome 134 на моем M1 Mac Mini, но он работает. В блоге упоминается, что визуализация игры монохромная, а не цветная, как в оригинальном проекте DOOM-ASCII, поскольку цвет «пикселей» кнопок нельзя обновить, не заменяя их другими элементами. Ринсма пояснил: “Даже для экрана GameBoy (160x144x3) это почти 70K полей, что сильно замедляет процесс.”

Исходный код для PDF Tetris и DoomPDF доступен на GitHub. Это отлично дополнит недавний порт DOOM II на игральной автомате.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Любите активный отдых на природе? Подписывайтесь на канал Поход лайфхак в Яндекс Дзен — кладезь полезных советов для любителей активного отдыха!

Вы также можете читать наши материалы в: