iLenta Меню

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

13 січня 2025, 21:08 | Roter [473]
Хоча 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. Всі права захищені.
Повна версія

Різне

Представлено компактний, але потужний дрон DJI Neo 2
Представлено компактний, але потужний дрон DJI Neo 2
31 жовтня 2025, 19:08 | Roter
Компанія DJI офіційно представила Neo 2 — компактний, але потужний дрон із помітними покращеннями порівняно з попередником.
Докладніше...
 
Глава Microsoft: TikTok небезпечніше для Xbox, ніж Sony та Nintendo
Глава Microsoft: TikTok небезпечніше для Xbox, ніж Sony та Nintendo
31 жовтня 2025, 08:07 | Roter
Генеральний директор Microsoft Сатья Наделла заявив, що головною загрозою Xbox є не Sony та Nintendo, а TikTok і короткі відео в цілому.
Докладніше...
 
Випущено людиноподібного робота Neo для виконання повсякденних домашніх завдань
Випущено людиноподібного робота Neo для виконання повсякденних домашніх завдань
30 жовтня 2025, 18:06 | Roter
Стартап 1X Technologies, підтримуваний OpenAI, відкрив попереднє замовлення на свого першого людиноподібного робота Neo.
Докладніше...
 
Withings випустила у продаж аналізатор сечі U-Scan
Withings випустила у продаж аналізатор сечі U-Scan
30 жовтня 2025, 15:07 | Bazelas
Компанія заявляє, що пристрій зробить революцію у сфері харчування.
Докладніше...
 
Google буде живити дата-центри від АЕС
Google буде живити дата-центри від АЕС
29 жовтня 2025, 17:08 | Bazelas
Компанія NextEra Energy Inc. оголосила про плани поновлення роботи атомної електростанції Duane Arnold Energy Center в Айові.
Докладніше...
 
Сторінки: 1 2 3 4 5 6
Повна версія
 
© 2012-2025 iLenta. All rights reserved.