Extensions et mods

Émulation de protocole ViaVersion et désynchronisations

Relu le 6 septembre 2026 2 min de lecture

ViaVersion permet à un client plus récent de rejoindre un jar de serveur plus ancien, et il y parvient en réécrivant les paquets réseau à la volée dans les deux sens. Cette traduction est réellement astucieuse, et c'est aussi exactement la raison pour laquelle certains bugs visuels apparaissent, sans rapport avec le lag.

Traduire un protocole n'est pas la même chose que le parler nativement

Chaque version de Minecraft définit ses propres formats de paquets — quel identifiant numérique signifie quoi, quels champs porte un paquet, comment les données de blocs et d'objets sont encodées. Un serveur et un client sur la même version sont simplement d'accord sur tout cela. ViaVersion se place entre un client plus récent et un serveur plus ancien et réécrit les paquets qui traversent cet écart pour que chaque côté reçoive quelque chose dans le format qu'il attend — ce qui fonctionne bien pour tout ce qui a un équivalent direct des deux côtés, et produit des coutures visibles pour ce qui n'en a pas.

Pourquoi des bugs précis arrivent

SymptômePourquoi la traduction le cause
Des blocs clignotent ou disparaissent brièvementUn état de bloc introduit après la version du serveur n'a pas d'équivalent exact vers lequel traduire, il est donc approximé
Les hitbox paraissent légèrement décaléesLa taille ou les données de collision d'entité ont changé entre versions et sont converties, pas lues nativement
Les extensions anti-triche signalent à tort les joueurs traduitsLes paquets de mouvement portent une précision et un rythme propres à la traduction plutôt qu'à une connexion native, que certaines heuristiques anti-triche n'étaient pas écrites pour attendre
Certaines nouvelles particules ou nouveaux effets ne s'affichent pasIls n'existent pas en tant que concept sur l'ancienne version de serveur vers laquelle on traduit
Ce sont des artefacts de compatibilité, pas des problèmes de performance

Rien de tout cela n'est causé par la charge du serveur, et aucune marge de TPS ne le corrige — c'est une limitation de la couche de traduction entre deux versions de protocole qui n'ont jamais été conçues pour se parler directement. Le correctif est un ajustement de configuration de ViaVersion ou ViaBackwards, ou parfois une mise en liste blanche de la fonctionnalité concernée par version, pas une enquête de performance.

Les exemptions anti-triche doivent être limitées étroitement

Si un anti-triche signale à tort des clients traduits, exempter « quiconque a un ancien protocole » de toutes les vérifications est plus large que le problème réel et ouvre une vraie brèche. La plupart des extensions anti-triche permettent d'exempter des types de vérification précis pour les connexions traduites plutôt que de désactiver entièrement la détection pour elles.