Plus tôt dans l'année, nous vous avons promis de vous parler tous les deux mois de notre travail en coulisses pour améliorer la performance du client de League of Legends.
Aujourd'hui, il s'agit du troisième article de la série. (Voir le premier article ici et le second ici.)
Pour résumer, nous continuons d'avancer sur notre objectif de nettoyer le code qui régit le client. Nous en avons également profité pour résoudre quelques bugs pénibles dont vous pourrez consulter la liste ci-dessous. Malgré tous les progrès effectués, il y a encore beaucoup de travail. La campagne de nettoyage continue.
Comme nous l'avons dit dans notre premier article sur le client, nous pensons que le meilleur moyen de résoudre les problèmes de performances du client est de consolider et réduire le nombre de plug-ins et applications Ember utilisés par le client.
Pour ceux qui ne le savent pas, les plug-ins sont des outils qui nous permettent de diviser le code du client en plusieurs sections utiles. Les applications Ember servent à faire fonctionner l'interface utilisateur du client.
Nous avons continué d'avancer vers cet objectif. Le graphique ci-dessous montre le nombre total de plug-ins et applications Ember au fil du temps.
En regardant le graphique ci-dessus, vous vous dites probablement : « d'accord, mais en quoi ça améliore les performances du client ? » La réponse en termes techniques serait compliquée, mais pour faire simple, moins de plug-ins et d'applications Ember signifie un code de client plus efficace. Un code plus léger entraîne une meilleure performance et facilite la gestion du client au quotidien.
Une de nos principales manières de mesurer l'impact de notre travail est de surveiller le temps que met le client à se lancer. Ci-dessous, vous trouverez un graphique montrant le suivi de cette mesure au fil du temps :
Comme vous pouvez le voir, le temps de mise en route est relativement stable depuis plusieurs mois. Pour nous, il s'agit d'une petite réussite, vu les risques inhérents à notre travail. Si nous ne faisons pas attention, nous pourrions causer de nouveaux problèmes en recâblant des plug-ins et en traitant d'énormes morceaux de code.
Nous espérons voir une nouvelle amélioration des temps de mise en route au cours des prochains patchs, maintenant que nous avons mis en place une nouvelle solution qui nous permet d'identifier plus intelligemment les plug-ins à charger au lancement du client. (Voir notre dernier article sur le client pour une discussion détaillée à ce sujet, dans la section nommée « Le problème avec Affinity »).
Pour l'instant, nous prévoyons de continuer le travail de consolidation sur plusieurs mois, puisque nous pensons que réduire le nombre de plug-ins et d'applications Ember peut être véritablement bénéfique sur le long terme. En nettoyant le code dans son ensemble, il sera plus simple par la suite de corriger bugs, plantages et fuites de mémoire.
En parlant de bugs et de plantages, parlons des récents correctifs mis en place.
Ces derniers mois, l'équipe du client a pu corriger énormément de bugs. À partir du patch 10.13, les corrections de bugs auront droit à leur propre section dans les notes de patch de League.
En attendant, voici une liste de quelques bugs du client résolus par l'équipe dans chaque patch depuis le début de l'année :
La liste est terminée ! Si vous avez repéré un bug que vous aimeriez signaler, n'hésitez pas à nous envoyer un ticket via ce formulaire. Vous pouvez également toujours nous envoyer vos retours en cliquant sur le bouton « Signaler un bug » en bas à droite de votre client.
Tout au long de ce travail sur le client, nous n'avons cesse de nous poser une question fondamentale : est-ce que le client de League est digne de nos joueurs ?
La réponse est évidemment non. Du moins, pas encore.
Il y a encore des bugs à corriger, des plantages à empêcher et de gros problèmes architecturaux à résoudre. Le labeur que nous avons entrepris cette année se poursuivra jusqu'à ce que nous puissions répondre à cette question d'un « oui » franc.
Cela prendra du temps, mais soyez sûrs que nous continuerons de vous donner des nouvelles de nos avancées. Pour les prochains patchs, nous comptons continuer de consolider les plug-ins et les applications Ember tout en éliminant quelques bugs au passage. D'ici le prochain article, nous espérons être prêts pour une nouvelle phase de notre campagne lors de laquelle nous nous concentrerons sur l'amélioration de la réactivité de la sélection des champions.
Comme toujours, merci à vous de jouer et nous reviendrons avec un nouvel article sur le client dans deux mois.