Когда документ перестаёт быть просто страницей

PDF обычно воспринимают как зафиксированную раскладку текста и изображений. Но формат умеет содержать не только содержимое страниц: в документ можно встроить JavaScript — небольшой код, который выполняется в совместимой программе для просмотра PDF. Он может реагировать на действия читателя, менять поля формы и обновлять элементы интерфейса.

Так появляется основа для необычного применения: PDF становится не самой игрой, а оболочкой, внутри которой код поддерживает её работу. Экран можно разметить элементами документа, а скрипт — использовать для обработки ввода и обновления изображения. Если в PDF помещены и необходимые игровые данные, некоторые просмотрщики способны запускать даже версию Doom.

Почему это работает не везде

Главное ограничение — не столько сам документ, сколько программа, которая его открывает. Просмотрщики PDF по-разному поддерживают JavaScript и интерактивные функции; в некоторых случаях выполнение скриптов отключено или ограничено ради безопасности. Поэтому один и тот же файл может оказаться игрой в одном приложении и обычным документом — в другом.

Есть и инженерный компромисс: PDF не создавался как универсальная игровая платформа. Разработчику приходится приспосабливать игровую логику к возможностям документа и его просмотрщика. Но в этом и состоит необычность примера: файл, предназначенный для обмена страницами, может содержать код, принимать команды и менять своё состояние — то есть вести себя как маленькая программа.