Tetriminos care căde găsesc o nouă viață într-un PDF
WTF?! Un analist de securitate inteligent a dovedit că PDF-urile nu sunt doar pentru documente și formulare plictisitoare. El a reușit să stoarce jocul clasic Tetris într-un fișier PDF de 60 KB care poate rula chiar în browserul tău.
Creația, numită „Pdftris” de către producătorul său Thomas Rinsma, vă permite să jucați jocul de puzzle captivant cu blocuri care cad cu doar un clic. Am pornit-o pe Firefox și, desigur, acei tetriminos se prăbușeau în zona de joc improvizată, ca și cum ar fi fost 1984 din nou.
Pentru comenzi, puteți folosi mouse-ul pentru a face clic pe butoanele de pe ecran, ceea ce nu a fost deloc intuitiv. Din fericire, Rinsma a inclus și comenzile de la tastatură – jucătorii pot muta, roti și arunca tetrimino-urile cu tastele WASD.
Jocul nu are sunet, nici culoare și este blocat rulând într-o fereastră modestă de browser. Dar am susține că acest lucru se adaugă la farmecul retro. Și poate că actualizările viitoare ar putea introduce aceste piese lipsă.
În ceea ce privește modul în care Rinsma a reușit să înghesuie toată această funcționalitate într-un format de fișier destinat documentelor, a fost posibilă folosind domeniul rar explorat al scripturilor PDF, supraalimentat de nimeni altul decât JavaScript.
Iată un joc de lucru cu Tetris într-un PDF. Are chiar și comenzi de la tastatură (prin tastarea WASD într-o casetă de introducere). În plus, după terminarea jocului, îți poți „salva” scorul prin imprimarea paginii ;)https://t.co/YrOInaHOUY
Ar trebui să funcționeze în majoritatea browserelor (construit pentru pdfium/PDF.js). pic.twitter.com/n4CPcitzz9
– Thomas Rinsma (@thomasrinsma) 5 ianuarie 2025
Motoarele PDF care alimentează browsere precum Chrome și Firefox acceptă de fapt un set limitat de comenzi JavaScript. Rinsma și-a dat seama că ar putea exploata asta pentru a crea un joc de bază precum Tetris de la bază.
Aceasta nu a fost chiar o plimbare în parc. Rinsma a trebuit să găsească soluții hacker pentru ca jocul său să fie redat corect în diferite motoare PDF. Soluția sa a fost să folosească funcționalitatea de afișare/ascundere pentru „câmpurile” de adnotare PDF pentru a crea acești pixeli Tetris monocromi emblematici.
Controlul acțiunii a reprezentat o altă provocare. Deși puteți folosi butoanele de pe ecran, Rinsma a activat în mod inteligent comenzile de la tastatură, permițându-vă să introduceți text într-o casetă de introducere a textului de sub joc. Tastarea trimite evenimente de apăsare a tastei pe care jocul le poate interpreta în acțiuni.
Rezultatul este, într-adevăr, destul de „janky”, după propriile cuvinte ale lui Rinsma. Dar asta este un fel de frumusețe a unor lucruri experimentale ca acesta.
Sub capotă, Pdftris este pur și simplu un vechi text ASCII care se ascunde în acel fișier PDF. Îl puteți descărca și deschide codul într-un editor de text pentru a vedea cum funcționează. Sau puteți consulta depozitul GitHub al Rinsma pentru un cod sursă mai lizibil cu comentarii.
Acum, s-ar putea să vă gândiți – dacă Tetris poate rula într-un PDF, cu siguranță cineva nu ar îndrăzni să încerce să stoarce ceva nebun precum Doom într-unul, nu? Ei bine, Rinsma știa că vei avea acest gând. El consideră că ar putea fi într-adevăr posibil „cu trucurile potrivite” dacă este vizat un singur motor PDF.
