
Un elev de liceu, cunoscut pe GitHub sub pseudonimul ading2210, și-a demonstrat ingeniozitate tehnică implementând celebrul joc DOOM într-un document PDF, scrie IGN. Acest experiment tehnic folosește Javascript implementat parțial de browserele Chromium și reușește să transforme un document aparent static într-o platformă interactivă pentru jocuri. Deși adaptarea este limitată de un format ASCII monocrom cu șase nuanțe și un timp de răspuns de 80 ms per cadru, reușita evidențiază potențialul neexplorat al documentelor PDF.
De-a lungul timpului, jocul DOOM a fost adaptat în moduri creative și neobișnuite, de la rularea pe teletext sau într-un notepad, până la un tractor, iar acum și într-un document PDF, punând în evidență ingeniozitatea dezvoltatorilor.
Cum funcționează DOOM într-un document PDF?
Proiectul, numit DOOMPDF, exploatează capabilitățile JavaScript integrate în formatul PDF. Deși specificațiile complete ale JavaScript pentru PDF sunt implementate doar de Adobe Acrobat, browserele bazate pe Chromium acceptă un subset al acestora, suficient pentru a permite funcționalități interactive. ading2210 a folosit acest subset pentru a transpune codul C al jocului și a-l rula direct într-un document PDF.
Pentru grafica jocului, elevul a utilizat un grid ASCII monocrom cu șase nuanțe, unde fiecare rând de pe ecran este reprezentat de un câmp de text. „Am reușit să obțin o ieșire monocromă cu șase nuanțe, suficientă pentru ca jocul să fie lizibil. „Performanța este destul de slabă, dar jocul este funcțional, cu un timp de răspuns de aproximativ 80ms pe cadru”, a explicat ading2210 pentru The Register.
Și dacă limbajul de până acum e prea tehnic, iată o explicație mai simplă pentru implementarea DOOM într-un document PDF: elevul a adaptat jocul DOOM să funcționeze într-un document PDF folosind un limbaj numit Javascript. În loc de pixeli, a desenat imaginile din joc cu litere și simboluri, iar pentru a verifica dacă totul funcționează, a creat o „fereastră” specială cu mai multe rânduri de text.
Inspirația pentru acest proiect a venit de la TetrisPDF, un port al jocului Tetris în format PDF, creat de Thomas Rinsma. Acesta a a lucrat, de asemenea, la o portare a DOOM în PDF în aceeași perioadă, dar a lăudat versiunea lui ading2210, descriind-o ca fiind „mai îngrijită în multe privințe”. Deși performanța este modestă, proiectul subliniază ingeniozitatea tehnică și posibilitățile ascunse ale formatului PDF.
Implementarea jocului DOOM într-un document PDF reprezintă o inovație tehnică impresionantă, dar în același timp evidențiază vulnerabilitățile acestui format de fișiere. Fiind un format complex, PDF-ul devine o țintă atractivă pentru atacuri malware, motiv pentru care browserele moderne au limitat funcționalitățile JavaScript în PDF-uri din rațiuni de securitate. Deși nu este o metodă ideală de a experimenta clasicul shooter, acest proiect reușește să aducă o perspectivă inedită asupra modului în care utilizăm formatele digitale.