Mark Russinovich, le CTO de Microsoft Azure, a publié DoomPaint sur GitHub : Doom tourne désormais dans Microsoft Paint à jusqu’à 35 fps, via un détournement du presse-papiers OLE de Windows.

Doom tourne sur des écouteurs Bluetooth, sur des fichiers Word, depuis un serveur DNS, la liste des supports improbables s’allonge régulièrement depuis trente ans. Mais quand c’est le directeur technique de Microsoft Azure qui s’y colle, et qu’il choisit Microsoft Paint comme écran de jeu, le projet prend une autre dimension. DoomPaint n’est pas qu’un gag de développeur : derrière le clin d’œil au mème, il y a une mécanique précise, et une blague qui ne fonctionne vraiment que si on comprend pourquoi Paint n’a strictement rien à faire dans cette histoire.
Sponsorisé
Vous conservez l’électricité solaire produite en trop pendant la journée pour la réutiliser lorsque vos besoins augmentent.
Sponsorisé
Paint comme moniteur : le presse-papiers OLE détourné image par image
Le principe de DoomPaint repose sur une séparation nette entre exécution et affichage. Le moteur ViZDoom, variante de ZDoom conçue à l’origine pour la recherche en intelligence artificielle, fait tourner le vrai shareware DOOM1. WAD en arrière-plan et calcule chaque image sans rien afficher. Chaque frame est ensuite copiée dans le presse-papiers Windows via le mécanisme OLE, qui permet d’échanger des données complexes entre applications, puis collée dans la zone de travail de Paint comme une « véritable modification de document », selon les propres mots de Russinovich sur le dépôt GitHub du projet.
Paint se contente donc de recevoir et d’afficher. Il ne calcule rien, ne rend rien, n’interprète rien. Russinovich le dit explicitement dans le README : « Paint affiche le jeu mais ne le calcule pas. Paint ne calcule rien. Paint n'a jamais rien calculé. C'est ça, la blague. » C’est précisément là que réside l’astuce : le détournement n’est pas tant technique que conceptuel. On utilise un éditeur de dessin comme simple surface d’affichage passive, en exploitant un mécanisme Windows vieux de plusieurs décennies.
35 FPS au mieux
Selon Tom’s Hardware, la cadence maximale annoncée est de 35 FPS, ce qui reste honnête pour du Doom shareware en 320 × 200 pixels. Une résolution 640 × 400 est également disponible. Russinovich prévient lui-même que les performances peuvent parfois descendre à un niveau qu’il qualifie de « niveau tableur » selon la machine, soit quelque chose de difficilement jouable. Le bas de gamme du tableur comme unité de mesure de fluidité : difficile de faire plus honnête.
Le projet inclut le son et la musique, ce qui n’était pas gagné d’avance vu l’architecture retenue. Les épisodes absents du shareware original seraient couverts par des WAD Freedoom sous licence BSD. Distribué sous licence MIT, DoomPaint est disponible sur GitHub avec toutes les instructions pour le faire tourner. Russinovich, qui a rejoint Microsoft en 2006 et transformé SysInternals en outil de diagnostic incontournable sous Windows, s’est visiblement accordé un détour nostalgique.
DoomPaint ne prétend pas être utile, et c’est sans doute ce qui le rend intéressant. Le projet expose en creux quelque chose de réel : les mécanismes OLE de Windows, vieux de plusieurs décennies, restent suffisamment flexibles pour servir de passerelle entre un moteur de jeu et un éditeur de dessin. Reste à savoir si quelqu’un tentera la prochaine étape logique : faire tourner DoomPaint dans une instance de DoomPaint.