Il ne suffisait pas que Doom fonctionne sur n'importe quel PC sur Terre : c'est ainsi qu'ils l'ont installé sur leur premier satellite spatial

Au cours des dernières décennies, « Doom » (le mythique jeu de tir à la première personne 1993, créé par ID Software) est devenu non seulement une réussite culturelle et technique, mais aussi un symbole de portabilité logicielle : son open source a été adapté pour fonctionner sur presque tous les matériels, y compris les calculatrices graphiques, les grille-pain et les compteurs de fréquence cardiaque. Bref, sur presque tous les appareils imaginables.

Mais en 2023, « Doom » a littéralement fait un bond hors de ce monde : pour la première fois, le jeu tournait sur un véritable satellite en orbite, à plus de 500 kilomètres de la surface de la Terre. Et cela grâce à la collaboration entre un ingénieur logiciel islandais et l’Agence spatiale européenne (ESA) et un satellite expérimental appelé OPS-SAT.

Le protagoniste : une « dactylographe professionnelle » avec le sens de l'humour

Le principal responsable de cet exploit est Ólafur Waage, un développeur islandais basé en Norvège et, selon sa propre description, « un dactylographe professionnel et créateur de vidéos amusantes ». Waage a raconté à l'occasion comment, en 2023, il avait reçu un message direct sur les réseaux sociaux.

L'expéditeur prétendait être SH Lebre, ingénieur des opérations spatiales à l'ESA. Le texte était si peu plausible que Waage a d’abord cru qu’il s’agissait d’un spam :

« Bonjour, je suis ingénieur à l'ESA. Nous essayons d'exécuter 'Doom' sur le satellite OPS-SAT. Voulez-vous collaborer ? »

Mais c'était réel. Et ce message serait le début d’une expérience inhabituelle.

OPS-SAT : le laboratoire orbital ouvert au public

OPS-SAT, lancé par l'ESA quatre ans plus tôt, n'était pas un satellite ordinaire : sa mission était de servir de « laboratoire flottant » : un environnement en orbite où les scientifiques, les entreprises et les développeurs pouvaient proposer des expériences de logiciels et de contrôle de mission sans mettre en danger les satellites commerciaux.

D'une hauteur de seulement 30 centimètres – un format connu sous le nom de « 3U CubeSat » – OPS-SAT abritait un ordinateur expérimental dix fois plus puissant que n'importe quel autre satellite européen de sa génération. Cet équipement fonctionnait avec un système d'exploitation Ubuntu 18.04 LTS, sur un processeur ARM Cortex-A9 dual-core.

Et cela a ouvert une possibilité sans précédent : utiliser un logiciel presque identique à un logiciel grand public dans un environnement spatial. En fait, le satellite avait déjà réalisé des projets marquants auparavant : depuis le premier modèle de apprentissage automatique formé en orbite à une partie d'échecs et à une opération boursière.

En décembre 2023, cela ajouterait une autre étape : le premier jeu de « Doom » dans l’espace.

Une bouchée de Chocolate Doom

Le défi d'amener Doom dans l'espace n'était pas tant de le faire fonctionner (le code C du jeu est réputé pour sa simplicité et sa compatibilité) mais de l'adapter aux sévères limitations de l'environnement orbital :

  • Il n'y avait pas d'écran.
  • Les communications étaient lentes et sporadiques.
  • Tout échec devait éviter de mettre en danger l’ensemble de la mission.

Waage et l'équipe de l'ESA ont donc choisi une version particulière du jeu : « Chocolate Doom 2.3 », une recréation fidèle du moteur original qui utilisait toujours les bibliothèques SDL 1.2, compatible avec l'environnement satellite.

La mise à jour des logiciels en orbite étant extrêmement complexe, le code devait être minimal et autonome. Une image de test a été préparée dans Docker identique à l'environnement satellite, et une fois le jeu exécuté au sol, elle a été envoyée dans l'espace.

Ainsi, le 28 décembre 2023 (coïncidant presque avec le 30e anniversaire du jeu), « Doom » a quitté la planète pour la première fois. Le résultat n'était pas spectaculaire à regarder – il n'y avait pas de vidéo, juste des lignes d'un fichier journal – mais il était sans équivoque : Perte avait été exécuté dans l'espace.

Jouer sans jouer : les « démos déterministes » de Doom

De toute évidence, personne n’a joué à Doom depuis l’espace. Au lieu d'un joueur humain, le programme a joué des démos préenregistrées, qui ne sont pas des « gameplays » vidéo, mais des fichiers contenant les frappes exactes qu'un joueur aurait effectuées. Doom les exécute de manière déterministe, de sorte que, si tout fonctionne de la même manière, le résultat est identique dans chaque cas.

Et c’est précisément dans ce déterminisme que réside l’intérêt de l’expérience : dans l’espace, les circuits électroniques sont exposés aux rayons cosmiques et aux particules de haute énergie. Lorsqu’une de ces particules atteint la mémoire d’un processeur ou d’une puce, elle peut modifier un seul bit : un 0 devient un 1, ou vice versa. Cela appelle un 'peu de retournement'.

Cela signifie que si quelque chose change, par exemple si un peu de mémoire est modifié pendant l'exécution, le résultat final du jeu ne sera plus le même. Vous pouvez le détecter en comparant les fichiers de sortie (par exemple, combien d'ennemis le joueur a tués ou combien d'objets il a trouvé).

Le plan était donc le suivant :

  • Exécutez le jeu sur le satellite, exposé aux rayonnements spatiaux.
  • Comparez les résultats successifs avec ceux du test effectué sur Terre : s'il y avait des différences, ce serait la preuve d'un peu de retournement réel causé par le rayonnement cosmique.

En bref : un détecteur de rayonnement déguisé en jeu vidéo. Mais cela n'a pas fonctionné : aucune altération détectable n'a été observée dans les exécutions du jeu pendant que le satellite était opérationnel. À chaque instant, Doom a produit exactement les mêmes résultats que sur Terre.

Les raisons sont principalement au nombre de trois :

  1. Probabilité extrêmement faible : peu de retournement par le rayonnement cosmique ne se produisent pas constamment et la durée d'exécution de Doom sur le satellite était très limitée (quelques minutes seulement par session). La probabilité qu’une particule frappe juste pendant cet intervalle était très faible.
  2. Matériel protégé : même si OPS-SAT disposait d'un processeur ARM plus moderne que les satellites traditionnels, il s'agissait toujours d'un appareil conçu pour l'environnement spatial. Son matériel et sa mémoire intégraient déjà des mécanismes de correction d'erreurs afin que le peu de retournement pourrait être corrigé automatiquement avant d’affecter le programme.
  3. Taille de l'expérience : Waage l'a expliqué avec humour et graphique : la taille de Doom dans la mémoire du satellite était minuscule par rapport à l'espace total disponible. Ainsi, la « zone vulnérable » où une partie pouvait être corrompue était petite.

De l'expérimentation scientifique au graphisme

Une fois l’expérience de rayonnement terminée, l’équipe a recherché quelque chose de plus visuel. Le satellite disposait d’une caméra haute définition capable de capturer des images de la Terre. Ensuite, Lebre a mis sur la table une curieuse idée :

« Et si nous remplacions le ciel martien de Doom par une vraie photo de la Terre prise par le satellite lui-même ? »

L'exécution a été un véritable défi artistique et technique : le moteur Doom original ne gère que 256 couleurs, les développeurs ont donc dû réduire les vraies photographies à cette palette sans trop perdre en qualité. Pour ce faire, ils ont utilisé des techniques qui regroupent des couleurs similaires et génèrent des versions simplifiées de l’image.

Waage est ensuite allé plus loin : il a modifié la propre palette du jeu pour l'adapter aux tonalités du satellite, faisant en sorte que le ciel bleu de la planète s'intègre naturellement aux graphismes rétro du jeu.

Finalement, le 24 mars 2024, Doom a de nouveau couru dans l’espace, montrant cette fois – du moins dans les captures d’écran téléchargées – la Terre au lieu de Mars.

Mais les images, en réalité, n’ont pas été faciles à obtenir. Chaque capture nécessitait que le satellite réoriente sa caméra vers la Terre, une procédure connue sous le nom de pointage au nadir. Ce mouvement a augmenté la résistance atmosphérique et a donc accéléré la descente orbitale de l’appareil. Voici comment Waage l'a expliqué :

« Chaque fois que « Doom » prenait une photo de la Terre, le satellite se rapprochait un peu plus de sa propre fin. C'était littéralement « la Doom » du satellite. »

Les images finales, certaines avec des nuages ​​et des océans et d'autres montrant uniquement le noir de l'espace, sont devenues les premières captures d'écran d'un jeu vidéo généré en orbite.

Au revoir, OPS-SAT. Bonjour, OPS-SAT Volt

Le satellite OPS-SAT a été lancé en mai 2024, après avoir terminé sa mission et épuisé son orbite. L'ESA a invité davantage de développeurs à participer à son prochain satellite expérimental, OPS-SAT VOLT, prévu pour 2026, axé sur les communications quantiques.

Et bien sûr, Waage a déjà fait une suggestion :

« Et si maintenant nous essayions tremblement de terre? »

Par | YouTube

Newsletter

Rejoignez notre newsletter pour des astuces chaque semaine