Open source

À la une

Open Annihilation ressuscite Total Annihilation : le RTS de 1997 tourne maintenant en 8K, à 120 FPS… et même sur Raspberry Pi

Total Annihilation est sorti sous Windows 95 en 1997, à une époque où 64 Mo de RAM ressemblaient déjà à une configuration sérieuse. Vingt-neuf ans plus tard, un développeur a décidé que la meilleure manière de préserver ce monument du RTS n’était pas de bricoler encore Wine et quelques patches, mais de réécrire entièrement son moteur. Open Annihilation vient de passer en version 0.7.2 avec accélération matérielle, multijoueur compatible avec le jeu original, support des mods, résolutions jusqu’en 8K, mouvements interpolés jusqu’à 120 FPS et builds natifs pour Windows, Linux, macOS, Raspberry Pi et même iPhone/iPad. Le projet reste fidèle aux données et aux mécaniques de Total Annihilation 3.1c, au point de pouvoir affronter sur le réseau un PC faisant tourner l’exécutable de 1997. Et comme si ce mélange d’archéologie informatique et de folie douce ne suffisait pas, le moteur fonctionne toujours sur Windows XP avec 256 Mo de RAM.

12 min de lecture 0 commentaire
Open Annihilation ressuscite Total Annihilation : le RTS de 1997 tourne maintenant en 8K, à 120 FPS… et même sur Raspberry Pi

29 ans plus tard, Total Annihilation reçoit un nouveau moteur

Le calendrier est presque trop parfait pour ne pas être volontaire. Total Annihilation est sorti le 27 septembre 1997. Le 27 septembre 2026, exactement vingt-neuf ans plus tard, Steve Gray publiait la première version publique d’Open Annihilation, une réimplémentation libre et multiplateforme du moteur original. Neuf jours et pas moins de seize releases plus tard, la version 0.7.2 est arrivée le 6 octobre avec suffisamment de nouveautés pour transformer ce qui ressemblait encore récemment à un remarquable projet de préservation en véritable moyen moderne de jouer au RTS de Cavedog.

Le principe est proche de ce que font les meilleurs source ports de Doom, Quake ou Tomb Raider, avec une difficulté supplémentaire : le code source original de Total Annihilation n’a pas simplement été repris et recompilé. Open Annihilation est un moteur écrit à nouveau, en C++20 et SDL3, qui reproduit les comportements de la dernière version officielle 3.1c. Il ne contient aucune donnée commerciale du jeu : maps, modèles, scripts d’unités, sons, musique et campagnes sont lus depuis votre propre installation. Le dépôt officiel Open Annihilation accepte les données d’une édition achetée sur GOG ou Steam, mais également celles de la démo gratuite originale de 1997 pour qui souhaite simplement expérimenter le moteur.

Et contrairement à certaines recréations qui profitent de l’occasion pour « moderniser » tout ce qui dépasse, l’objectif ici est largement l’inverse : conserver les règles, les données et même certains comportements historiques du jeu tout en remplaçant la couche technique devenue pénible à faire fonctionner en 2026.

8K dehors, palette 8 bits dedans

Open Annihilation ne cherche donc pas à transformer le champ de bataille en démonstration Unreal Engine avec path tracing et reflets dans chaque carcasse de Peewee. Les graphismes restent volontairement fidèles à l’esthétique du jeu, jusque dans son rendu en palette 8 bits, mais le moteur moderne retire les limitations liées au PC de 1997. La 0.7 apporte l’accélération matérielle complète, avec le GPU chargé du terrain, des unités, des ombres, des effets et du brouillard, ainsi qu’un antialiasing pouvant atteindre 16×. L’affichage accepte désormais pratiquement toutes les résolutions modernes, y compris les écrans ultrawide et jusqu’en 8K, avec la possibilité de dézoomer jusqu’à visualiser l’intégralité d’une carte.

Le framerate mérite une petite précision. Total Annihilation continue fondamentalement à faire évoluer sa simulation à 30 ticks par seconde, ce qui est crucial pour conserver un comportement fidèle et déterministe. Open Annihilation peut néanmoins interpoler l’affichage des unités, projectiles, effets et mouvements de caméra jusqu’à 120 images par seconde. On obtient donc un jeu beaucoup plus fluide visuellement sans accélérer artificiellement la simulation ni refaire tous ses timings. C’est la bonne manière de moderniser ce type de titre : on améliore ce que les yeux voient sans commencer à modifier subtilement le moment où une salve d’artillerie touche sa cible.

Et si le PC ne possède pas de GPU approprié ? Le moteur conserve un chemin de rendu CPU. Nous allons rapidement comprendre pourquoi.

Oui, il tourne encore sur Windows XP avec 256 Mo de RAM

L’un des détails les plus délicieux du projet est son obsession pour la compatibilité dans les deux directions. Open Annihilation possède des builds modernes pour macOS Intel et Apple Silicon, Windows actuel et Linux x86-64/ARM, mais son plancher matériel reste complètement absurde en 2026 : Windows XP SP3, un processeur de classe Pentium III et 256 Mo de mémoire. La version 0.6 a justement apporté le build Windows 32 bits et réduit différents coûts de fonctionnement pour permettre au moteur de continuer à tourner sur de très vieilles machines. La documentation officielle indique également des builds pour Raspberry Pi 2, 3, 4, 400 et 5 sous Raspberry Pi OS.

Le travail d’optimisation ne s’est d’ailleurs pas résumé à une compilation -O3 suivie d’une prière. La série 0.6 annonce jusqu’à 45 % de performances supplémentaires sur un seul cœur dans certaines grosses batailles, tout en répartissant le rendu sur les cœurs disponibles lorsque le matériel est plus moderne. Le projet a également supprimé sa dépendance à FFmpeg en implémentant directement les besoins nécessaires aux vidéos et à la musique du jeu, réduisant la taille des paquets d’environ un cinquième selon les notes du développeur.

Le résultat est assez cocasse : le même moteur peut exploiter un Mac Apple Silicon moderne à haute résolution et tourner sur une machine dont la quantité totale de RAM est inférieure à celle qu’un navigateur moderne utilise parfois pour afficher trois onglets.

Le plus impressionnant : il joue en réseau avec Total Annihilation… version 1997

Voilà probablement la fonction qui fait réellement basculer Open Annihilation de « joli projet rétro » à « travail d’orfèvre légèrement inquiétant ». Le moteur réimplémente le protocole réseau du Total Annihilation original. Une machine utilisant Open Annihilation peut donc héberger ou rejoindre une partie TCP/IP avec d’autres utilisateurs Open Annihilation, mais aussi jouer contre un exemplaire non modifié de Total Annihilation 3.1c. Oui : un PC moderne sous Linux peut, en principe, affronter une machine utilisant encore le client Windows historique.

Cela impose des contraintes beaucoup plus dures qu’une simple compatibilité visuelle. Dans un RTS déterministe, chaque machine doit arriver exactement au même résultat en exécutant la simulation. Si un calcul d’angle ou de trajectoire diffère légèrement entre ARM et x86, une unité peut finir par toucher une cible sur un ordinateur mais pas sur l’autre, puis l’état de la partie diverge progressivement jusqu’à produire deux guerres parallèles. La branche 0.7 a donc remplacé plusieurs calculs sensibles par de l’arithmétique entière déterministe, afin que x86, ARM, 32 bits et 64 bits obtiennent le même résultat. Les mouvements d’avions et les trajectoires des missiles ont eux aussi été rapprochés du comportement observé dans la version 3.1c.

À ce niveau-là, ce n’est plus du rétro-gaming.

C’est de la conservation numérique avec une calculette.

Les mods historiques reviennent sans injecter du code dans un exécutable de 1997

Total Annihilation possède également une longue histoire de mods. Le problème est que nombre de modifications historiques reposaient sur des hacks développés autour de l’exécutable original : patches mémoire, wrappers DirectDraw, modifications très spécifiques du moteur ou autres techniques particulièrement créatives. Open Annihilation a donc construit un système plus propre où un mod peut décrire ses différences par rapport à la version 3.1c dans un profil.

Le moteur connaît actuellement environ 90 “standard hacks” documentés que ces profils peuvent activer. Les mods peuvent être emballés dans un fichier .oamod, installés simplement et changés sans redémarrer le moteur. Les cartes et unités communautaires utilisant directement les formats historiques sont elles aussi utilisables. La version 0.7 documente cette nouvelle architecture des mods , et plusieurs profils destinés aux grands mods historiques sont encore en cours de préparation.

Cela produit une situation presque idéale pour la préservation : les données créées il y a vingt ou vingt-cinq ans ne sont pas simplement converties dans un nouveau format puis abandonnées. Le moteur essaie au contraire de comprendre ce qu’elles attendaient du jeu original.

Les sauvegardes et replays de l’époque ne sont pas oubliés

Le projet sait lire les sauvegardes au format historique et les deux extensions officielles, The Core Contingency et Battle Tactics, à partir des fichiers appartenant à l’utilisateur. Les campagnes ARM et CORE ainsi que le mode escarmouche contre les IA originales font également partie du périmètre actuel. Total Annihilation: Kingdoms est en revanche encore indiqué comme prévu sur la feuille de route, et non comme supporté aujourd’hui.

Encore plus sympathique pour les archivistes obsessionnels : Open Annihilation sait lire les anciens enregistrements .tad produits par le Demo Recorder historique et peut enregistrer ses propres parties réseau dans ce même format. La documentation GitHub explique directement comment relire ces enregistrements . Un replay multijoueur conservé sur un vieux disque dur peut donc retrouver une seconde vie presque trois décennies après la partie.

C’est typiquement le genre de fonction qui ne fera jamais exploser les statistiques Twitch, mais qui distingue un véritable projet de préservation d’un simple remake HD.

Et évidemment, quelqu’un l’a mis sur Steam Deck, iPhone et iPad

Les builds deviennent particulièrement amusants dès qu’on sort du PC traditionnel. Le Steam Deck possède déjà un support expérimental, avec des contrôles adaptés au Game Mode. Le Raspberry Pi possède ses propres paquets Linux ARM. Open Annihilation peut également être compilé pour iPhone et iPad, avec une interface tactile dédiée. Attention toutefois : il n’existe actuellement aucune version distribuée sur l’App Store ; il faut compiler et installer l’application depuis Xcode.

Sous macOS, le projet est déjà beaucoup plus accueillant. Les applications sont désormais signées et notarifiées par Apple, et Mac Source Ports référence la version 0.7.2 pour Intel et Apple Silicon . C’est un détail appréciable pour un jeu créé à l’époque où le Mac utilisait encore des PowerPC et où expliquer la notarisation d’une application aurait probablement ressemblé à la description d’un impôt du Moyen Âge.

Le véritable tour de force est finalement que toutes ces machines sont censées exécuter la même simulation déterministe. Mettre le jeu sur Raspberry Pi est amusant ; permettre à des architectures différentes de reproduire suffisamment précisément un moteur de RTS de 1997 pour partager une partie l’est nettement plus.

Total Annihilation mérite particulièrement ce genre de préservation

Tout ce travail aurait moins d’intérêt si le jeu ressuscité était uniquement une curiosité historique. Total Annihilation reste cependant l’un des RTS les plus influents des années 1990. PC Gamer rappelle dans son histoire du jeu de stratégie à quel point son économie en flux continu, son Commander polyvalent et son infrastructure ont bouleversé les habitudes du genre. Un autre retour consacré à la création de Total Annihilation souligne son utilisation poussée de la 3D, l’échelle des affrontements, la physique des projectiles et ses méthodes de contrôle avancées.

Là où beaucoup de RTS de cette période utilisent essentiellement des projectiles comme des animations se dirigeant vers une cible, Total Annihilation simule réellement des tirs dont les trajectoires peuvent dépendre du terrain. Son économie basée sur des flux continus de métal et d’énergie plutôt que sur une succession d’achats instantanés influencera directement Supreme Commander, également conçu par Chris Taylor. La masse d’unités, les affrontements terrestres, aériens et navals ainsi que la possibilité de programmer de longues chaînes d’ordres restent étonnamment modernes.

Dit autrement : ce n’est pas uniquement « un vieux RTS qui tourne à nouveau ».

C’est l’une des branches importantes de l’arbre généalogique de la stratégie PC qui vient de recevoir un moteur neuf.

Un nouveau Boneyards doit aussi ramener le matchmaking

Le multijoueur direct fonctionne déjà, mais le projet prépare en parallèle Core Prime, une reconstruction du service Boneyards utilisé autrefois autour de Total Annihilation pour organiser les parties et la compétition. Le nouveau service doit proposer matchmaking, ladders et jeu compétitif ; son lancement est annoncé pour les prochaines semaines, et les inscriptions anticipées sont déjà ouvertes. Il faut donc bien distinguer les deux choses : le multijoueur TCP/IP est disponible aujourd’hui, tandis que le nouveau service en ligne centralisé n’est pas encore officiellement lancé.

C’est probablement la dernière pièce nécessaire pour rendre l’expérience beaucoup moins archéologique. Une fois le jeu installé, devoir envoyer son adresse IP à quatre personnes sur Discord aurait certes un charme délicieusement 1999, mais on peut accepter que certaines traditions restent au musée.

700 000 lignes pour éviter que Windows 95 gagne par forfait

Open Annihilation annonce désormais plus de 700 000 lignes de C++20, ce qui donne une idée de l’échelle prise par le projet. Son développeur principal, Steve Gray, n’arrive d’ailleurs pas complètement de nulle part : il fréquente la communauté Total Annihilation depuis plus de vingt-cinq ans et fut notamment propriétaire du fan-site Planet Annihilation. L’ensemble est publié sous GNU GPLv3, avec une suite de tests comparant le comportement du moteur aux données d’une installation du jeu.

C’est peut-être cela qui rend Open Annihilation aussi séduisant. Beaucoup de remasters commerciaux essaient de préserver l’apparence d’un ancien jeu tout en remplaçant l’environnement qui l’entoure. Ici, le but est presque inverse : conserver les anciennes données, les vieilles sauvegardes, les mods, les replays et même le protocole réseau, puis construire dessous une nouvelle fondation suffisamment portable pour continuer à fonctionner lorsque Windows 95 ne sera plus qu’une question de quiz.

Et cette fondation accepte aujourd’hui un écran 8K, un Steam Deck ou un Raspberry Pi.

Pas mal pour un jeu dont la configuration minimale d’origine parlait en mégaoctets.

Le rétro-gaming a davantage besoin de ce genre de projets que de simples remasters

Open Annihilation montre aussi ce que l’open source peut apporter à la conservation des jeux vidéo. Tant que l’exécutable original fonctionne à travers une couche de compatibilité, tout va bien. Puis une API disparaît, un pilote change, une architecture processeur devient minoritaire ou l’on découvre que le DRM dépendait d’un composant arrêté depuis quinze ans. Un remaster propriétaire peut régler le problème pendant quelques années, jusqu’au jour où sa propre plateforme devient obsolète.

Un moteur libre fournit une sortie beaucoup plus durable. S’il cesse de fonctionner sur Linux 9.0 en 2040, quelqu’un pourra encore ouvrir le code et comprendre pourquoi. Si une nouvelle architecture apparaît, le portage reste possible. Si le développeur principal part faire autre chose, le projet ne disparaît pas nécessairement avec lui.

Open Annihilation est encore très jeune et les seize versions publiées en neuf jours montrent bien qu’il reste en pleine phase de maturation. Le support Steam Deck est expérimental, l’expérience mobile doit encore progresser et certains mods attendent leurs profils. Il ne faut pas confondre rythme de développement spectaculaire et produit définitivement terminé.

Mais le plus difficile est déjà là : un moteur libre est capable de reprendre les données du jeu de 1997, lancer ses campagnes, utiliser ses sauvegardes et ses mods, parler à son protocole réseau et reproduire sa simulation sur plusieurs architectures modernes.

Et si vous souhaitez vérifier jusqu’où l’absurdité temporelle peut aller, il reste une expérience toute simple.

Installez Open Annihilation sur un Raspberry Pi.

Trouvez un Pentium III sous Windows XP.

Lancez une partie multijoueur.

Puis essayez d’expliquer à quelqu’un que les deux ordinateurs sont séparés par environ vingt-cinq années d’évolution matérielle… mais qu’ils sont parfaitement d’accord sur la trajectoire du missile qui vient de détruire votre Commander.

Sources & références

Tags

Communauté

Commentaires

La discussion est ouverte

Aucun commentaire pour le moment. Soyez le premier à réagir.

Publication après modération