Bungie a été contraint de déployer une version précédente des serveurs de Destiny 2 à cause d’un important bug effaceur d’objets. Un enchaînement malheureux d’événements.
“Tout ça ne s’est jamais produit”
Destiny 2, c’est un peu comme World of Warcraft : on s’y fait un peu chier parfois, mais qu’est-ce qu’on est attaché à sa progression. Forcément, quand les joueurs ont découvert mardi dernier que de la monnaie et des objets importants ont disparu de leur inventaire, des suicides ont été sérieusement envisagés. Après avoir cherché l’origine du problème, Bungie s’est rendu compte que le souci était bien pire que prévu et a dû procéder à un rollback drastique des serveurs sur une fenêtre de 2 heures.
En fait, il s’avère que la chaîne d’événements qui a amené le jeu à un tel état est assez cocasse et particulièrement imprévisible. L’équipe de développement a donc décidé d’expliquer un peu plus en détail ce qu’il s’est passé :
L'équipe de développement a décidé de vous expliquer longuement ce qui s'est passé ce soir et il y a deux semaines, et pourquoi cela est arrivé. https://t.co/RAFUCCPDO5
— Papa Ep (@Epyonzilla) February 12, 2020
Il y a plusieurs mois, les joueurs ont signalé que le tri du journal des quêtes ne fonctionnait pas correctement, et nous voulions y remédier. L’équipe a enquêté et a découvert que le processus de nettoyage réinitialisait l’horodatage d’un sous-ensemble de quêtes, ce qui rompait le tri chronologique.
Nous avons décidé de résoudre ce problème en désactivant le comportement de réinitialisation d’horodatage pour les quêtes. Ce correctif était conceptuellement raisonnable, mais, à travers des effets secondaires subtils, il a fini par trop endiguer le processus de nettoyage.
Le résultat net a été que le jeu a calculé un cap de quantité incorrecte pour les objets empilés (tels que les devises et les matériaux), ce qui a entraîné la perte des éléments supérieurs au cap. Nous savions que ce code était important et, selon notre processus habituel, deux experts dans le domaine ont [testé] le code pour ce changement, mais malheureusement, nous n’avons pas repéré le bug.
Quand Bungie a voulu déployer mardi dernier la mise à jour 2.7.1.1 qui devait lancer l’event de la Saint-Valentin, les serveurs ont refusé de démarrer correctement, causant un léger contretemps. Mais c’était surtout l’élément déclencheur du problème rencontré par les joueurs mardi dernier :
À notre insu, ce plantage a eu pour conséquence que ces WorldServers n’ont pas appliqué le correctif de corruption de données de personnage précédent. Cela signifiait qu’un petit pourcentage de WorldServers exécutaient l’ancien code et le bug qui corrompait les données de personnages.
C’est encore la preuve que développer un jeu vidéo, c’est compliqué, surtout quand ton AAA comprend des centaines de millions de lignes de code où les erreurs en cascades peuvent tout casser sans crier gare.
Merci Kotaku pour l’éclaircissement.
Destiny 2 est disponible sur PC, Xbox One et PS4.