Le codage delta permet à Old Light de gérer des galaxies à 100 joueurs dans un onglet

Un onglet de navigateur ouvert pendant des jours ne devrait pas se réveiller pour retransmettre une galaxie de 10 000 étoiles en entier. Pourtant, c’est ce qui se passe dans de nombreux jeux de stratégie en temps réel lorsque le serveur envoie l’état complet du monde à chaque modification. Old Light, un jeu 4X en navigateur, évite ce problème en transmettant des « correctifs » compacts — une application classique du codage delta.
Comment un correctif fait avancer la galaxie
Lorsque qu’un joueur construit une base stellaire ou qu’un adversaire explore un secteur, le serveur n’envoie pas la galaxie entière. Il émet plutôt un message WorldDelta listant uniquement ce qui a changé : les joueurs qui ont rejoint ou quitté la partie, les lignes mises à jour des joueurs, les secteurs dont les données de carte publique sont obsolètes, ou encore les mouvements du marché ou des négociations. Chaque entrée contient le nouvel état absolu — score, composition de la flotte, trésorerie — et non des différences incrémentielles. Le client fusionne ces valeurs absolues dans sa copie locale, ne redessinant que les lignes de roster, les éléments de l’interface ou les hexagones concernés. Comme chaque valeur représente l’état final, un message dupliqué laisse le client inchangé, et une omission peut être corrigée par la mise à jour suivante sans risque de corruption.
Un même événement, des vues différentes
Le codage delta entre en conflit avec la dissimulation d’informations dans Old Light. Bien que la propriété des étoiles soit publique, les rouages internes d’un empire — bâtiments, revenus, flottes — ne sont visibles que par son propriétaire (jusqu’à ce qu’un rival les découvre par exploration). Une simple modification dans votre empire génère donc deux correctifs distincts : l’un dépourvu de détails sensibles pour les spectateurs anonymes, l’autre révélant l’intégralité des données pour vous et tout rival ayant exploré votre territoire. Le serveur diffuse le même message squelettique à chaque connexion, mais chaque client l’interprète à travers son propre filtre de connaissances.
Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

