logo MamytwinkRéseau Mamytwink logo MamytwinkMamytwink.com logo Hearthstone-DecksHearthstone-Decks.com logo Overwatch WorldOverwatch-World.com
7

Blizzard partage quelques commentaires techniques sur la sortie de Dragonflight

Jeudi 08 déc. 2022 à 20h22, par

blizzard partage quelques commentaires techniques sur la sortie de dragonflight

Blizzard vient de poster à l'instant un résumé très intéressant des coulisses du lancement de Dragonflight. Une semaine après le lancement de l'extension, nous découvrons les incidents techniques qui sont survenus au moment de l'arrivée des joueurs sur les îles aux Dragons.

Comme l'indique l'équipe de World of Warcraft, le jeu a déjà 18 ans et il a beaucoup évolué. Cela a conduit les équipes de Blizzard à modifier la façon dont ils déploient le contenu.

C'est une approche très intéssante puisque ce type de communiqué n'a jamais été publié avec autant de détails. N'hésitez pas à consulter le message officiel dans la suite de cet article !

Quelques commentaires techniques sur la sortie de Dragonflight

Blizzard Posté par Blizzard (Source)

Maintenant que la sortie Dragonflight est derrière nous, nous aimerions revenir avec vous sur ces derniers jours d’un point de vue technique. L’objectif est d’expliquer un peu mieux ce que représente une sortie mondiale de ce genre, ce qui peut bien ou mal se passer, les problèmes qui peuvent survenir et les solutions à notre disposition pour les régler.

En interne, on appelle un jour comme lundi dernier un « lancement de contenu », car la sortie d’une extension est un travail de longue haleine et ne se résume pas à une seule date. World of Warcraft est loin d’être un jeu rigide et figé et a beaucoup évolué depuis ses débuts il y a 18 ans, et même au cours des deux dernières années. En conséquence, nous devons modifier notre façon de déployer le contenu au fur et à mesure que le jeu grandit.

Une extension est désormais déployée en plusieurs étapes : tout d’abord, le code est intégré au contenu existant, puis les évènements de prélancement permettent d’ajouter les nouveaux systèmes de jeu et enfin, le jour du « lancement de contenu », les quêtes, zones et donjons deviennent accessibles. Chaque étape est ciblée et nous permet d’isoler les problèmes plus efficacement. Cependant, pour des systèmes aussi complexes, on ne peut pas toujours se préparer à tout.

L’une des nouveautés propres à cette extension consistait en un lancement de contenu déclenché par un évènement chronométré, c’est-à-dire plusieurs modifications apportées au jeu programmées pour être déployées simultanément. Ces changements, s’ils étaient faits manuellement, impliqueraient inévitablement la possibilité d’une erreur humaine, ou le risque qu’une panne interne ou externe vienne contrarier le processus. Un lancement chronométré et automatisé permet de réduire considérablement les risques.

Un autre changement apporté avec Dragonflight a été l’amélioration du chiffrement des données de jeu. Ce changement nous permet d’envoyer des informations cruciales au jeu côté client pour que les cinématiques, les dialogues et les scripts de quêtes fonctionnent correctement et au bon moment, sans jamais rendre les données vulnérables ou accessibles avant l’heure. Nous connaissons la passion de notre communauté pour WoW ; lorsqu’on brûle de découvrir les nouveautés, il peut être tentant de sauter sur le moindre bout d’information et ainsi se gâcher la surprise. Ce nouveau système de chiffrement a pour but d’éviter ce genre de situation, et d’assurer que le contenu soit toujours disponible lorsque le bon moment se présente, et pas avant.

Nous avons identifié que les fortes latences et l’instabilité des serveurs de la semaine passée étaient causées par l’interaction entre ces deux nouveaux systèmes. Le serveur de simulation (celui qui gère vos déplacements et vos actions en jeu) se retrouvait à devoir recalculer plusieurs centaines de fois par seconde ce qui devait être accessible ou non et ce pour chaque simulation. De fait, le système s’est vite saturé avec ces calculs, les simulations ont commencé à s’enliser, et les requêtes d’autres services ont été mises en file d’attente. Pour les joueurs et joueuses, cela se traduit par de la latence et des messages d’erreur de type « Le serveur du monde est arrêté ».

Heureusement, nous avons pu identifier le problème. Les données chiffrées dans l’attente d’un évènement précis censé les débloquer ont exposé une erreur de logique dans le code : une ligne de code mal positionnée donnait au serveur l’instruction de recalculer quelles données chiffrer, alors que rien n’avait changé.

Voici comment notre enquête s’est déroulée. Tout commence à minuit, heure de Paris. Grâces aux tests menés, nous savions déjà que le navire de la Horde arriverait quelques instants avant celui de l’Alliance. La plupart d’entre nous sont également en jeu avec nos personnages sur les quais, aux deux points d’arrivée, avec d’autres fenêtres ouvertes pour afficher des données, des graphiques et divers tableaux. Nous sommes également en contact direct avec nos collègues des équipes d’assistance de tout Blizzard.

Avant le lancement, nous nous sommes préparés à plusieurs scénarios catastrophe et comment les éviter ou les régler rapidement grâce aux phases de test. Nous avions par exemple préparé des portails pour permettre aux joueurs et joueuses de rejoindre les îles aux Dragons au cas où les bateaux ne fonctionneraient pas.

À 00h02, le navire de la Horde arrive comme prévu. Hourra ! Les joueurs et joueuses, nous y compris, s’entassent à bord. Certains et certaines d’entre nous restent à quai, au cas où il faudrait activer les portails. Le bateau part, mais plusieurs passagers et passagères n’arrivent pas à destination, subissent des déconnexions ou se retrouvent coincés.

Nous passons immédiatement les données, graphiques et tableaux en revue. Il n’y pas beaucoup de monde sur les îles aux Dragons. Plusieurs collègues signalent des problèmes avec leurs noms de personnages et leurs royaumes. D’autres remontent des soucis dans la charge processeur et avec le NFS (Network File Storage, le protocole de gestion de fichiers) utilisé par nos serveurs. Nos équipes continuent de surveiller le jeu et de signaler les problèmes.

Après les navires de la Horde, nous observons l’arrivée des navires de l’Alliance. La plupart n’arrivent pas, et les navires de la Horde ne reviennent pas.

Nous commençons à avoir une vue d’ensemble : les navires sont coincés et les serveurs des îles aux Dragons sont plus lents à répondre que prévu. C’est le moment de nous retrousser les manches et de mettre au point des solutions. [Text Wrapping Break][Text Wrapping Break]Ce n’est pas la première fois que les bateaux posent problème. Nous activons les portails, et nous continuons d’enquêter. Notre NFS est très clairement surchargé. Trop de requêtes sont en attente et notre système de coordination des serveurs de simulation déjà saturé commence à lancer des calculs pour toutes les requêtes qui n’aboutissent pas. L’infrastructure est totalement submergée. Pire encore, l’activation des portails n’a fait qu’accentuer le problème, car il est possible de cliquer dessus à répétition, ce qui génère encore plus de requêtes. Nous désactivons les portails.

Nous faisons tout notre possible pour qu’un maximum de joueurs et de joueuses puisse jouer, mais le service ne se comporte pas du tout comme lors des phases de test. Nous procédons par élimination, grâce aux données récoltées pendant ces phases de test.

Il commence à se faire tard, mais une partie de l’équipe continue de travailler à résoudre les problèmes, pendant que les autres vont se reposer afin de pouvoir revenir prendre le relais à la première heure.

Mardi matin, nous avons une bien meilleure vue d’ensemble du problème. Nous savons maintenant que les clients de jeu reçoivent trop d’informations pour la gestion des quêtes. Nous comprendrons plus tard que ce n’est pas la cause initiale du problème. Notre protocole API sollicite beaucoup trop le NFS. Le code qui gère les nouvelles interactions avec les PNJ est anormalement lent. Le service met trop de temps à envoyer aux clients de jeu toutes les modifications de données apportées dans les correctifs. Les joueurs et joueuses qui ont pu rejoindre les îles aux Dragons souffrent à présent d’une latence énorme.

Mercredi matin, le hasard joue en notre faveur : en fouillant le code en question, nous découvrons des interactions inhabituelles avec le système de chiffrement. Nous commençons à nous demander si le système de chiffrement ne serait pas à l’origine de tous ces problèmes. Et en effet, cela se révèle être exact. La lenteur du système de chiffrement explique tous les autres problèmes de transfert de données, de NFS, de surcharge processeur et de latence. Une fois la source du problème identifiée, l’auteur du système en question est en mesure de rapidement corriger les erreurs.

Cependant, implémenter un correctif dans un code utilisé par tellement du services différents ne se fait pas d’une simple pression sur un bouton. Il va maintenant falloir transférer tous les personnages vers de nouvelles simulations pour qu’elles s’effectuent en tenant compte des correctifs. Nous nous précipitons d’ailleurs un peu trop, ce qui génère une charge supplémentaire sur un autre service. Un redémarrage des serveurs va s’imposer, mais nous le repoussons pour l’appliquer en heure creuse et ne pas ajouter à la contrariété des joueurs et joueuses. Une fois le correctif en place, les performances et la stabilité ont été grandement améliorées.

Il n’a pas été aisé d’identifier le problème et de le corriger, mais notre équipe s’est montrée très réactive et appliquée, et a pu déployer un correctif aussi vite que possible. En ingénierie logicielle, l’objectif n’est pas de jamais faire d’erreur, mais d’essayer de réduire au maximum les chances qu’elles se produisent, d’être capable de les identifier rapidement lorsqu’elles se produisent, d’avoir les bons outils à disposition…

… et une incroyable équipe prête à surmonter tous les obstacles.

– L’équipe technique de World of Warcraft

Avatar de Melody

À propos de l'auteur : Melody

Contacter

Melody, la touche féminine de Mamytwink.com. Elle a rejoint la rédaction durant l'été 2012 et égaie depuis les lecteurs du site par sa douceur et sa poésie. Outre ses nombreux guides, elle n'hésite pas à mettre en avant par le biais de ses news la créativité de la communauté.

Retour aux news

Commentaires (7)

Tous les commentaires Top commentaires

plouf331
  • 48 messages

+
+1
Il y a plus de lore dans les bureaux que dans DF.
n'empêche l'ambiance sur le quai avec le bateau qui n'arrive pas, ça reste quand même un bon souvenir.
Razzah
  • 70 messages

+
+6
énorme la tentative de flex
je crois qu'ils ont oublié que le jeu existait depuis 18 ans et que c'était leur 9ème sortie d'extensions
41loupie
  • 7 messages

+
+2
Citation de Razzahénorme la tentative de flex
je crois qu'ils ont oublié que le jeu existait depuis 18 ans et que c'était leur 9ème sortie d'extensions

Je crois que tu as oublié qu'on est dans un monde qui évolue. Techniquement et même fonctionnellement, les sorties d'extension ne se font plus de la même façon.
Quand on se rend compte de la complexité de la chose je trouve que ça s'est pas si mal passé. Tu imagines, une sortie mondial, la quantité de serveurs, de fibre, de câble, de petits boitier électronique, de composant électronique, la quantité de connexion simultanées, d'informations à sauvegarde en temps réel de manière fiable ? C'est une performance vraiment énorme, alors oui, il y a eu du grippage dans les rouages, perso, je n'ai jamais vu une sortie de ce genre d'envergure s'en sortir à 100% selon la théorie.
Mou
  • 14 messages

+
+4
C'est plutôt intéressant d'avoir des explications précises sur la sortie d'une extension en interne, finalement nous on n'y pense pas assez. Une petite tentative de se rapprocher de la communauté, en plus d'être assez sympa à lire, ça fait plaisir.
Valkiar
  • 17 messages

+
+4
En soi, on sait qu'au bout de 18 ans, les serveurs ont du mal le jour du lancement.
Je n'ai pas fait la sortie de DF à minuit mais le mardi soir vers 17h, ben franchement, c'était bien : peu de latence, pas de bug apparemment...
Et l'excuse que Blizzard devrait investir dans des serveurs pour ne plus avoir de problème au lancement... Pk investir autant pour seulement 2-3 jours tout les deux ans ? Osef. Le lancement de DF était propre.
datarian
  • 258 messages

+
+0
En parlant du côté technique, je trouve que depuis le lancement du pré patch, le jeu est mal optimisé : chutes de fps fréquentes, fuites de mémoires, pléthore de petits bugs avec la nouvelle UI...
A part un « on bosse dessus » lâché il y’a 3 semaines/1 mois, on n’a aucune nouvelle.
Le jeu n’est pas injouable, mais je trouve que ça entache un peu l’expérience de jeu.
+
+0
Et bien le bonjour !
Petit commentaire, mon premier si je ne m'abuse. Cela prouve à quel point la nouvelle extension était et reste si importante pour moi. Pourtant je suis Mamytwink depuis ses débuts.

Présent à la première seconde et ce depuis plusieurs heures juste au lancement de l'extension.
Serveur Kirin Tor, mon ami et moi même premiers sur les îles au Dragon (C'était ultra risible de sortir du Bateau Horde et de se retourner pour ne voir personne à part nous et se dire "Mais... Où ils sont tous bon sang ?")
Aucun problème, que ce soit côté FPS, côté latence, côté temps de chargement ou même les performances en général, cependant notre deuxième ami lui n'est jamais arrivé au bout du temps de chargement du Bateau... un simple reload du jeux et le voici, premiers pas sur la terre légendaire des dragons.

Depuis le constat est là, une nette amélioration côté visuel et ambiance, de nouvelles mécaniques agréables, une nouvelle interface, de nouvelles choses, bref un plaisir.
Et c'est là où on se rend compte du chemin fait.
Personnellement, et c'est réellement un point de vue personnel, Vanilla-BC-WOTLK à jamais dans mon coeur, Cata-MOP jamais fait, trop de changement pour peu de résultat... Incapacité personnelle à faire WOD mais qui restait agréable à regarder de loin... Retour à la fin de Legion, un calvaire de farm, n'a jamais été arrangé par l'arrivée de BFA, destructeur de temps de jeux, suivis de prêt par Shadowland, anéantisseur de tout espoir pour Wow....
Et d'un seul coup... DragonFlight arrive, Miracle... L'espoir renait, sans cette extension et ce qu'elle est... Wow était terminé pour moi.

Voilà le ressenti que j'ai, le ressenti de beaucoup je penses en vue de la quantité d'amis et de vieilles connaissances qui reviennent et surtout, restent...
Il était temps.

Côté Technique, un message incroyable, ils m'ont fait vivre une aventure avec ce post, alors qu'on parle juste des problèmes lors de la sortie.
Et c'est aussi incroyable d'un point de vue communication car après tout, on se contente de se connecter, jouer et râler quand ça marche pas ou mal... Mais derrière, il y a énormément de monde qui travail ! Et certains en non-stop, avec des problèmes majeurs !

En tant que développeur IRL, j'affirme que ce n'est pas simple, j'affirme qu'avec une telle ampleur c'est encore moins simple ! Nous parlons bien d'un MMO et qui je le rappel tourne 24/24 7j/7 et pas un énième jeux FPS qui rencontre les mêmes soucis alors que clairement il n'y a pas lieu...

Oui 9ème extension et 18 ans d'expérience, mais devons-nous rappeler qu'il s'agit là du MMO qui a bouleversé la caste et l'a même façonné ? Qui la dirige toujours alors que nombre de ses concurrents, opposants, alliés se sont effondrés ?

Les temps ont été difficile, le passage sous la coupe Activision et le reste n'a certainement pas aidé, mais je penses qu'aujourd'hui avec DragonFlight, si ils continuent sur cette lancée, si ils partagent encore les raisons des problèmes, si ils continuent de nous régaler, Wow restera ce qu'il a toujours été et ce qu'il est, le Leader du domaine. Roi des Rois...

Ajouter votre réaction

Afin de poster une réaction, vous devez être connecté !

Connexion
Inscription

Retour aux news