Про проєкт Мобільна версія Статті партнерів Реклама Крипта E-bike
Xiaomi Apple Samsung Google Huawei Oppo Vivo Realme Microsoft AnTuTu
iLenta

Ігри «Тетріс» та Doom випустили у форматі PDF

13 січня 2025, 21:08 | Roter [452]
Хоча PDF-файли зазвичай асоціюються зі статичними документами, вони підтримують JavaScript. Цим і скористалися хитромудрі програмісти.
Ігри «Тетріс» та Doom випустили у форматі PDF

Аналітик з безпеки Томас Рінсма запакував класичну гру «Тетріс» у формат PDF та назвав розробку Pdftris, повідомляє видання Tom`s Hardware. У головоломку з падаючими блоками можна грати у більшості браузерів. Інший розробник проробив те саме, але з грою Doom.

Про Pdftris відомо небагато, тому що на сторінці GitHub немає опису. Але Рінсма охоче спілкувався з користувачами на Hacker News та розповідав про розробку. Ідея зробити гру в незвичайному форматі спала йому на думку після того, як він зрозумів, що PDF-движки сучасних браузерів (PDFium і PDF.js) підтримують JavaScript з достатнім набором функцій вводу-виводу для створення простого проєкту на кшталт «Тетріса».

Аналітик з безпеки розповів, що йому було нелегко змусити свій «Тетріс» правильно працювати в обох двигунах. Але він знайшов рішення: «Показ і приховування полів анотацій добре підходить для створення монохромних пікселів». Крім того, Рінсма додав можливість керування з клавіатури через текстове поле під грою.

Розробник скромно визнає, що код його «Тетріса» у PDF «досить кострубатий». Однак він вважає, що це показує, наскільки потужними та гнучкими можуть бути скрипти у PDF. Щоб подивитися, що всередині Pdftris, не потрібні складні програми. Необхідно просто завантажити PDF-файл розміром 60 КБ і відкрити його у звичайному текстовому редакторі – це текст у кодуванні ASCII. Також є зрозуміліший вихідний код із коментарями. Він доступний на сторінці проєкту на GitHub.

Тим часом розробник під псевдонімом ading2210 створив проєкт DoomPDF — версію гри Doom, яка теж працює прямо в браузері через PDF-файл. Код гри написано на C та розміщено на GitHub. Цей проєкт працює тільки в браузерах Chromium завдяки движку PDFium.

PDF-движок Chromium підтримує текстові поля та кнопки, проте створення швидкого та якісного буфера кадру виявилося складним завданням. Замість відображення кожного пікселя окремим текстовим полем (що було б неефективним при роздільній здатності Doom 320×200), використовується одне текстове поле на рядок екрана, що заповнюється символами ASCII. Це дозволило досягти 6-колірного монохромного виведення.

Цей спосіб малювання досить повільний — оновлення тексту займає приблизно 80 мілісекунд на кадр. Але для гри цього достатньо. Також була зроблена текстова консоль, що прокручується, з 25 текстових полів.

Джерело: tomshardware

YouTube Telegram
Коментарі

ОГЛЯДИ

НОВИНИ ТА ПОДІЇ

ПРИСТРОЇ ТА АКСЕСУАРИ

ІНСТРУКЦІЇ, ПОРАДИ ТА СЕКРЕТИ

КРИПТОВАЛЮТИ

Ads
Ads
Ads