Pour comprendre comment Artem Lytkin a fait tourner DOOM avec des regexes, il faut d’abord saisir le principe de base : ces expressions ne se contentent pas de chercher du texte. Elles peuvent aussi **exécuter du code**. En théorie, les regexes sont classées parmi les *langages de programmation complets*, capables – à condition d’avoir assez de mémoire et de patience – de réaliser n’importe quelle tâche calculatoire.
Dans son projet, Artem a conçu un **”micro-ordinateur” virtuel** où chaque composant du jeu (mémoire, registres, affichage) est stocké et manipulé sous forme de **motifs textuels**. Résultat : tout le moteur de DOOM, y compris les graphismes et les niveaux, repose sur une structure monolithique de 96,6 Mo. Cette chaîne colossale contient :
– La **RAM virtuelle** du “processeur”, où sont stockées les variables (position du joueur, score, etc.).
– Les **registres CPU**, gérés via des marqueurs textuels comme `[X=120]`.
– Le **framebuffer**, une zone dédiée à l’affichage pixel par pixel.
– Le **code compilé** du moteur, traduit en règles de substitution complexes.
Le principe est simple : le programme en C applique des millions de règles du type *”si ce motif apparaît dans la chaîne, remplace-le par celui-ci et exécute cette opération”*. Après **plus de 10 000 substitutions successives**, le texte évolue… et DOOM progresse, cadre après cadre.
Pour visualiser l’analogie, imaginez un éditeur de texte comme Notepad++ poussé à son extrême : chaque instruction du jeu est une règle de *trouver/remplacer* appliquée en boucle. Le tout fonctionne comme un ordinateur des années 80 sous stéroïdes – mais en version textuelle pure.










