Screenshot of DoomPDF in a Chrome browser.
Agence web » Actualités du digital » C'est DOOM et Tetris dans un document PDF

C'est DOOM et Tetris dans un document PDF

Vous pourriez considérer les PDF comme des documents statiques, destinés uniquement à des mots, des images et parfois des formulaires. Cependant, les navigateurs modernes peuvent débloquer davantage de fonctionnalités pour les documents PDF, comme le prouvent les nouveaux ports de Tetris et DOOM.

Thomas Rinsma, analyste et développeur en sécurité, a publié une démonstration fonctionnelle du jeu de réflexion classique Tetris, entièrement exécuté au format PDF. Il est jouable dans Google Chrome et d'autres navigateurs basés sur Chromium, ainsi que Mozilla Firefox. Vous pouvez l'essayer avec le fichier PDF sur le site Web de Rinsma.

Le billet de blog explique : « Il est relativement bien connu que les PDF peuvent être assez riches en fonctionnalités lorsqu'ils sont ouverts dans Adobe Acrobat/Reader, avec la prise en charge des scripts pour les formulaires et autres contenus dynamiques. Cependant, il s'avère que PDFium (le lecteur PDF de Chromium) et PDF.js (celui de Firefox) implémentent également un peu de prise en charge des scripts. (…) Les PDF peuvent contenir des champs de saisie de texte, des boutons, des cases à cocher, etc. Les gestionnaires JavaScript peuvent être liés à des événements sur ces widgets (« champs »), et les propriétés de ces champs peuvent être modifiées à partir de JavaScript.

Essentiellement, les fonctions de script destinées à vérifier le contenu des formulaires peuvent être réutilisées pour modifier le contenu du PDF. Le document crée une grille de boutons qui peuvent être affichés ou masqués par programme, agissant comme des pixels. Le jeu est contrôlé via des boutons cliquables ou des touches du clavier saisies dans un champ de texte.

Rinsma a ensuite poussé ce concept un peu plus loin en réalisant un portage du jeu de tir à la première personne DOOM de 1993 au format PDF. Il est basé sur le projet DOOM-ASCII, une version fonctionnelle de DOOM jouable dans des environnements texte uniquement avec des caractères ASCII, compilée pour les navigateurs Web utilisant WebAssembly et Emscripten. Vous pouvez essayer DoomPDF dans votre navigateur Web. Celui-ci ne fonctionne actuellement qu'avec les navigateurs Chrome et Chromium.

Le port DOOM est définitivement lent dans Chrome 134 sur mon Mac Mini M1, mais il fonctionne. Le billet de blog mentionne que l'affichage du jeu est monochrome, et non en couleur comme le projet DOOM-ASCII original, car la couleur des « pixels » du bouton ne peut pas être mise à jour sans les échanger contre d'autres éléments. Rinsma a expliqué : « Même pour, disons, un écran GameBoy (160x144x3), cela représente près de 70 000 champs, ce qui ralentit beaucoup trop les choses. »

Le code source de PDF Tetris et DoomPDF est disponible sur GitHub. Cela ira parfaitement avec le récent portage de DOOM II sur flipper.

★★★★★