Doom (1993) implémenté en PDF
(doompdf.pages.dev)- DoomPDF est une implémentation conçue pour exécuter Doom (1993) dans un PDF, avec l’écran du jeu et les indications de contrôle intégrés au document PDF
- Les commandes reposent principalement sur les déplacements WASD :
qcorrespond à esc,zà enter,eà use etspaceà fire shift+WASDpermet de sprinter,md’ouvrir la carte, et1-7de sélectionner les armes- Il est possible d’envoyer des fichiers WAD personnalisés via une page web séparée, et le code source est publié sur GitHub
- L’environnement d’exécution est limité aux navigateurs basés sur Chromium, ce qui rend son fonctionnement peu probable dans d’autres lecteurs PDF
Doom qui s’exécute dans un PDF
- DoomPDF est une version exécutable de Doom (1993) fournie sous la forme d’un document PDF
- Le document inclut les indications de commandes au clavier ainsi que l’affichage des entrées directionnelles
- L’environnement de fonctionnement est limité aux navigateurs basés sur Chromium
Commandes et fichiers d’extension
- Commandes de base
WASD: déplacementq: escz: entere: usespace: fire
- Commandes supplémentaires
shift+WASD: sprintm: map1-7: weapons
- Téléverser des fichiers WAD personnalisés : possibilité d’envoyer des fichiers WAD via une page dédiée
- Source code : dépôt du code source de DoomPDF
1 commentaires
Avis sur Hacker News
Source : https://github.com/thomasRinsma/pdfdoom
Jouable ici : https://th0mas.nl/downloads/doom.pdf
Cela dit, cette implémentation-ci est plus propre à bien des égards
Dans l’UE, c’est particulièrement important, car les signatures électroniques ne sont pas du type DocuSign « je jure que je suis John Smith », mais reposent sur la cryptographie. On se plaint sans cesse de PDF, mais en pratique il n’existe pas de format de remplacement. Des organismes comme le W3C / WHATWG pourraient en créer un basé sur les technologies web, mais il n’existe pas encore, et EPUB ne résout qu’un cas d’usage étroit, la distribution de livres numériques, pas les usages « professionnels »
Dans ce cas, mieux vaut utiliser JavaScript que créer un langage dédié ; et si l’on dispose de JavaScript, d’entrées utilisateur et d’un moyen de mettre à jour une grille de pixels graphiques, on atteint le niveau nécessaire pour faire tourner Doom. Le calcul et la programmabilité sont devenus si bon marché qu’ils se retrouvent largement jusque dans les applications les plus banales ; je trouve ça plutôt génial qu’effrayant
L’étape suivante consiste à y intégrer JSLinux de Bellard (https://bellard.org/jslinux/), pour mettre dans un PDF un système d’exploitation complet avec environnement de développement et suite bureautique
Je me suis demandé ce qu’il faisait encore en coulisses sans que je le sache. Malheureusement, je n’ai pas réussi à faire tourner Doom dans le PDF sous Emacs. Il serait sans doute plus simple de réimplémenter une technique similaire avec les fonctionnalités de base d’Emacs et des caractères ASCII, ou d’utiliser une approche proche de l’article Bad Apple dans vim[1], qui était numéro 1 quand celui-ci était numéro 2
[1] : https://news.ycombinator.com/item?id=42674116
Ça m’a rappelé la façon dont les distributions Linux modernes déterminent comment exécuter un fichier. Après avoir découvert ça il y a quelques années, j’ai passé beaucoup trop de temps à essayer de faire en sorte que les fichiers .exe se lancent avec wine ou mono sur ma machine. C’était un exercice amusant, mais ça n’en valait pas la peine
Pour démarrer, appuyez plusieurs fois sur z ; déplacements avec w/a/s/d, utiliser avec e, tirer avec espace, et z sert d’entrée
/XObject <> /Invoke RCEPeut-on le rendre aussi petit que le fichier DOOM1.WAD ? Il fait 4 Mo
Mais y a-t-il d’autres usages à cette technique ? Par exemple, pourrait-on distribuer des apps sous forme de PDF sur des appareils très verrouillés comme l’iPhone, ou sur des appareils administrés comme PlayStation, Xbox ou des kiosques ? Quand j’ai exploré Adobe Reader, il semblait possible d’intégrer des films dans un PDF et même de personnaliser la barre de menus. C’est un format apparemment bien plus flexible qu’on ne le pense