Ігри «Тетріс» та 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
Різне




