LoLTracker

 

Anivia sauvée par les micropatchs

Anivia sauvée par les micropatchs
 
Un article sur Anivia a été publié, au sujet de l'arrivée des micropatchs en jeu, comment ils fonctionnent, et comment Anivia après la sortie de son skin Reine du festival en a profité.
 
 
Anivia sauvée par les micropatchs 
 
Il y a quelques semaines, Anivia reine du carnaval a fait souffler l'esprit du carnaval sur la Faille. Tout n'était que costumes et fêtes, jusqu'à ce que des rapports de bug sur l'oiseau glacé commencent à arriver. Les équipes QA de Riot confirmèrent rapidement que son ultime n'appliquait pas correctement le debuff qui doublait les dégâts de Gelure. Ce bug était suffisamment disruptif pour requérir une désactivation le temps que nous trouvions une solution, et celle-ci devrait être testée dans la nuit par le QA avant d'être intégrée aux serveurs de jeu. Ce qui nous amenait à vendredi après-midi, au mieux, pour qu'Anivia soit jouable... mais nous ne lançons aucun correctif les vendredis, à moins que le jeu ne soit vraiment inutilisable : le risque de causer par inadvertance un problème majeur durant les heures de pointe du week-end est en effet trop important.
 
Donc, il allait falloir mettre fin à la fête à peine commencée, et sortir Anivia de la Faille jusqu'au lundi. Mais attendez, Anivia n'a pas du tout été désactivée pendant tout le week-end.
 
Alors, qu'est-ce qui nous a permis de sauver le Cryophénix de ce sort funeste ? Pour y répondre, nous devons plonger dans le monde ultra-glamour des serveurs, des clients, des redéploiements et des micropatchs.
 
 
Soyons (un peu) techniques
 
Les données du jeu sont abritées à deux endroits : le client et le serveur. Les données du client sont téléchargées sur votre ordinateur et pour les modifier il faut que vous téléchargiez un patch. Le client contient beaucoup d'informations visuelles et audio, telles que l'apparence de la Faille, les modèles de champions et les voix.
 
Le serveur de jeu, sur lequel vous vous connectez après la sélection des champions, est comme un petit univers qui fait tourner vos parties privées en 5c5 (ou 3c3 ou encore 1c9). Quand nous modifions les serveurs de jeu, il n'y a aucune interruption ou téléchargement. Les serveurs contiennent des informations numériques comme les stats des champions, ainsi que des scripts qui contrôlent le fonctionnement des compétences (mais pas nécessairement leur aspect visuel).
 
Concept pour l'illustration d'Anivia reine du carnaval
 
Pendant longtemps, le seul moyen d'effectuer une modification sur le client ou le serveur était d'envoyer les nouvelles informations sous forme de patchs (déploiements) ou de correctifs (redéploiements). Les redéploiements, qui ciblent le plus souvent les données du serveur, étaient notre principal moyen de résoudre des problèmes importants en direct (problèmes d'équilibrage extrêmes, bugs de champion, etc.) par le passé.
 
Les redéploiements sont risqués et requièrent de passer par un test QA au cours de la nuit, même si la plupart des problèmes sont mineurs et nécessitent uniquement la modification quelques données. Cependant, nous ne pouvons pas redéployer seulement une partie des données, il faut toutes les redéployer. L'ingénieur architecture Brian « Riot Penrif » Bossé le dit : « Passer par un processus de QA lourd et extensif pour procéder à une légère modification peut être un gâchis et c'est parfois très risqué. »
 
Et même après une nuit de tests, nous ne redéployons pas les vendredis à moins d'une urgence extrême (par exemple si les files d'attente en parties classées ne fonctionnent plus ou si le seul champion jouable est Teemo). Une partie de l'architecture de League of Legends a été créée il y a longtemps, avant que nous réalisions la masse de contenu que nous placerions sur ces fondations, et donc certaines de ces dernières ne sont pas aussi fiables que nous le souhaiterions.
 
Un jour, après le redéploiement des données du client, les fichiers exécutables de tous les joueurs de LoL ont été effacés, et personne ne pouvait donc plus lancer League of Legends. Notre Release Manager, Donna « Riot Feithen » Mason, ajoute : « Idéalement, en appuyant sur une touche, nous nous attendons à ce qu'elle réagisse chaque fois de la même façon, mais il arrive que ce ne soit pas le cas. »
 
Nous travaillons toujours à mettre à jour certaines des fondations de League of Legends, mais entre-temps, cela rend parfois les redéploiements imprévisibles. Nous avons tendance à avancer prudemment, surtout avant le week-end, car les redéploiements nous obligent à renvoyer toutes les informations, même si la modification est minime.
 
Nous étions persuadés qu'il devait y avoir un meilleur moyen de résoudre de petites difficultés dont découlaient de grands problèmes.
 
 
Micropatchs, les super-héros furtifs
 
Il y a environ un an, une nouvelle technologie appelée micropatch a tout changé. Contrairement aux redéploiements, les micropatchs peuvent viser des modifications ciblées et spécifiques des données du jeu. Si vous vous représentez le serveur de jeu comme un tableau d'affichage, alors le micropatch est comme une note adhésive apposée sur ce dernier. Les redéploiements reviennent à tout changer, parfois juste pour rectifier une coquille. Avec les micropatchs, le vieux serveur de jeu est toujours là, mais quand une nouvelle partie est chargée, elle tient compte des notes et n'effectue que ces changements spécifiques.
 
« Nous pouvons livrer un micropatch en moins de deux minutes. »
 
Cela rend les micropatchs bien moins risqués et aussi beaucoup plus rapides que les redéploiements. Tout d'abord, les micropatchs sont des ajouts aux données serveur existantes au lieu d'un redéploiement total, donc les modifications auxquelles nous procédons sont bien plus circonscrites. Ensuite, ils sont extrêmement faciles à implémenter et à retirer. Nous pouvons livrer un micropatch en moins de deux minutes, et le retirer tout aussi vite.
 
Pendant un moment, les micropatchs ne servaient qu'à modifier les données numériques. En fait, ils étaient là pour résoudre des problèmes d'équilibrage dont il fallait s'occuper, rapidement. Il n'y avait toujours pas moyen d'effectuer des modifications ciblées sur les scripts qui contrôlent comment fonctionnent les compétences des champions ; par conséquent, les longs redéploiements étaient encore le seul moyen de réparer (la plupart) des bugs, en passant donc par la désactivation.
 
Juste quelques semaines avant le bug incapacitant d'Anivia, la technologie de sauvegarde de champion a été bouclée : nous pouvions désormais utiliser les micropatchs pour procéder à des modifications ciblées des scripts de compétences.
 
 
Faire renaître Anivia
 
Le jour des débuts d'Anivia reine du carnaval, nous avons appris que son ultime présentait un bug pour tous ses skins. Les membres du QA se sont mis au travail, tentant de mettre le doigt sur la source du problème. Le game designer associé, Matthew « PhRoXzOn » Leung-Harrison, qui travaillait sur les changements apportés à Anivia avec le patch 6.23, raconte : « Dès que j'ai vu le bug, j'ai su exactement ce qui clochait. »
 
 
 
Chaque champion de LoL possède un fichier logique contenant les scripts qui contrôlent ses compétences. Il ne contient pas forcément d'information sur les visuels des compétences ou les dégâts qu'elles infligent. Il contrôle plutôt la façon dont elles devraient fonctionner, comme une carte-mère qui relie toutes les informations et les synthétise pour les afficher à l'écran.
 
Suite à une confusion, nous avons envoyé une version défectueuse du fichier logique de l'ultime d'Anivia sur les serveurs live. Par conséquent, son ultime semblait opérationnel : il s'activait en appuyant sur la touche R avec un joli effet de particules, mais ne fonctionnait pas correctement. Tempête glaciale devait appliquer un debuff de deux secondes pour les dégâts doublés de Gelure, mais il n'appliquait qu'un debuff de 0,5 seconde. Pour reprendre les mots du responsable QA Brian « Aotus » Brause : « Vous aviez un super look... mais ne faisiez aucun dégât. »
 
Après avoir identifié le problème, nous avons mis à jour son script logique et passé un certain temps à faire des test QA. La modification a résolu le nouveau bug, mais une recherche plus approfondie a révélé un ancien bug qui remontait au patch 6.23. Heureusement, le processus QA pour les micropatchs est assez rapide, car nous ne faisons que vérifier les résultats d'un changement spécifique. Nous avons fait une deuxième modification, et celle-ci était la bonne : Les deux bugs étaient résolus et la solution prête à être envoyée par micropatch aux joueurs.
 
 
 
Plus la peine de tout désactiver pour le weekend : en quelque heures, Anivia était de nouveau prête à jeter un froid et à faire la fête sur la Faille.
 
 
Les micropatchs sont-ils une solution à tout ?
 
 
Bien que les micropatchs aient été utilisés par le passé pour corriger des problèmes d'équilibrage, c'est la première fois que nous avons modifié un script logique et épargné à un champion le sort cruel de la désactivation grâce aux micropatchs. Cette technologie ne marche pas pour tout, et vous ne nous verrez pas faire un micropatch pour donner une nouvelle aile à Anivia ou pour ajouter des effets spéciaux extra-congelants, mais c'est un moyen rapide et peu risqué de résoudre des problèmes live.
 
Pour l'instant, nous travaillons à trouver un meilleur moyen de communiquer aux joueurs les modifications par micropatch. Actuellement, elles sont ajoutées en haut des notes de patch, mais qui va retourner lire une note de patch longtemps après son implémentation ? Nous avons pensé diffuser les changements majeurs, comme les nerfs et les buffs, dans les messages défilants intégrés au client, mais ils ne sont là que pour vous indiquer un élément hors-service ou instable. Nous espérons que le client mis à jour nous fournira un meilleur moyen de communiquer les modifications par micropatch.
 
 
 
 
Par Bananabandit
 
 
Dossier : La chute des tireurs
Demandez à Riot : pourquoi suis-je nul ?
 
You must login to post a comment.
People in conversation:
Loading comment... The comment will be refreshed after 00:00.
  • This commment is unpublished.
    Pix
    • Super-Tipeur
    · 7 years ago
    [quote]Et même après une nuit de tests, nous ne redéployons pas les vendredis à moins d'une urgence extrême[/quote]
    C'est la règle de base du développeur : jamais de modification le vendredi
    En tout cas on voit sur les notes de patch que depuis, ils enchaînent les petits fix.
   facebook   Discord2   rss   logo twitter   

Derniers articles

LoLTracker ferme ses portes après plus de 10 ans de bons et loyaux services !
Thèmes abordés : Fermeture imminente du site, Project L, pause de fin d'année chez Riot, Riot mobile, et bien plus !...
Analysons les problèmes actuels de Yuumi et notre manière d'aborder sa refonte.
Une nouvelle mise à jour a eu lieu sur le PBE, apportant de l'équilibrage
C'est le dernier patch de l'année, la 12.23B est là !