iLenta Меню

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

13 січня 2025, 21:08 | Roter [453]
Хоча 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

© 2012-2025 iLenta. Всі права захищені.
Повна версія

Різне

Apple запропонувала вирішення проблеми з активацією iMessage в iOS 26
Apple запропонувала вирішення проблеми з активацією iMessage в iOS 26
04 жовтня 2025, 21:16 | Bazelas
На цьому тижні Apple опублікувала інструкцію для користувачів iPhone, які зіткнулися з проблемою активації iMessage за номером телефону iOS 26.
Докладніше...
 
З весни 2026 Sony почне поетапне відключення деяких сервісів PlayStation 4
З весни 2026 Sony почне поетапне відключення деяких сервісів PlayStation 4
04 жовтня 2025, 16:06 | Roter
З моменту виходу PlayStation 5 минуло вже 5 років, проте Sony продовжує приділяти увагу попередній консолі PlayStation 4, представленій у 2013 році.
Докладніше...
 
Google випустила Gemini for Home, камери Nest та динаміки Home Speaker
Google випустила Gemini for Home, камери Nest та динаміки Home Speaker
03 жовтня 2025, 22:10 | Bazelas
Google виводить свій штучний інтелект Gemini у сферу розумного будинку, представивши сервіс Gemini for Home.
Докладніше...
 
Microsoft представила Crocs у стилі Windows XP
Microsoft представила Crocs у стилі Windows XP
03 жовтня 2025, 13:08 | Roter
Колекцію доповнили джибітси з Кліппі та логотипом Internet Explorer.
Докладніше...
 
Прокуратура США отримала схвалення суду на дистанційний злам Telegram
Прокуратура США отримала схвалення суду на дистанційний злам Telegram
03 жовтня 2025, 08:07 | Bazelas
Сам месенджер стверджує, що нічого подібного здійснити не вдасться.
Докладніше...
 
Сторінки: 1 2 3 4 5 6
Повна версія
 
© 2012-2025 iLenta. All rights reserved.