Dans cet article, nous évoquons les progrès effectués dans l'amélioration du client de League.
Le nettoyage du client continue - League of Legends
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.
Récentes avancées
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.
Récentes corrections de bugs
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 :
- 10.1 - La position du client ne se réinitialise plus à la fin d'une partie.
- 10.1 - Correction d'un problème à cause duquel le logo League à côté du bouton « Jouer » pouvait disparaître.
- 10.1 - [MAC] Correction d'un problème qui faisait parfois planter le client, lorsque vous vous vous reconnectiez à internet suite à une déconnexion de plusieurs minutes.
- 10.1 - Les changements d'arrière-plan de profil s'affichent désormais correctement pour les autres joueurs.
- 10.3 - Les liens cliqués à l'aide de la molette ne font plus planter le client.
- 10.3 - L'icône de la boutique apparaît désormais correctement en surbrillance, lorsque vous la sélectionnez après avoir ouvert un coffre Hextech dans le butin.
- 10.3 - Votre Collection ne se trie plus automatiquement dans l'ordre alphabétique inversé, lorsque vous changez des filtres.
- 10.3 - Le tri par « Paliers franchis » dans votre Collection fonctionne désormais correctement.
- 10.4 - Correction d'un problème à cause duquel le panneau social et la fenêtre de discussion ne fonctionnaient plus en sélection des champions si certaines actions (supprimer un ami, être supprimé ou bloqué) étaient effectuées.
- 10.4 - La recherche de champions fonctionne à nouveau avec des orthographes différentes dans la Collection.
- 10.4 - La recherche de champions dans la Collection n'est désormais plus sensible à la casse.
- 10.4 - Le tri alphabétique des champions dans la Collection est désormais correct.
- 10.4 - Le client n'affiche plus un écran noir après avoir cliqué sur « Rejouer », si le joueur est entré dans une partie pendant qu'il consultait ses offres personnalisées.
- 10.5 - Une barre de défilement inutile a été retirée en bas de la page de champions de la Collection.
- 10.7 - Correction d'un problème à cause duquel le bouton « Envoyer une demande d'ami » ne fonctionnait plus dans les salons personnalisés.
- 10.7 - L'écran d'informations « Voir le planning » n'est désormais plus flou, lorsque vous consultez les tournois à venir dans l'onglet Clash.
- 10.8 - Lorsque vous quittez l'onglet des emotes avec des changements non sauvegardés, le message de sauvegarde apparaît désormais comme prévu.
- 10.8 - Quitter l'écran de fin de partie n'emmène plus le joueur sur sa page de profil.
- 10.8 - Les icones d'invocateur s'affichent désormais correctement lors de la connexion au client.
- 10.9 - Correction d'un problème lors duquel l'icone d'invocateur Sbire bagarreur bleu ne pouvait pas être sélectionnée.
- 10.9 - Les joueurs ne reçoivent plus le mauvais message d'erreur, lorsqu'ils tentent de se connecter alors que League est en maintenance.
- 10.9 - Correction d'un problème qui empêchait l'affichage des noms dans votre liste de joueurs bloqués.
- 10.9 - Divers correctifs pour résoudre des fuites de mémoire causées par une ancienne version d'Ember.
- 10.10 - Correction d'un bug à cause duquel les pages de runes disparaissaient ou apparaissaient comme supprimées lors de la connexion.
- 10.10 - Les pages de runes se ferment désormais automatiquement lorsque vous cliquez sur le bouton « Jouer ».
- 10.10 - Réarranger les pages de runes ne fait plus planter et ne duplique plus les pages de runes.
- 10.10 - Correction d'un problème empêchant les joueurs de modifier des pages de runes.
- 10.11 - Les paramètres « Activer le mode Config. basse » et « Fermer le client pendant la partie » sont désormais correctement sauvegardés lorsque vous fermez la fenêtre des paramètres.
- 10.11 - Correction d'un problème à cause duquel le bouton « Rareté des skins » ne s'affichait pas correctement dans la Collection.
- 10.11 - Correction d'un problème qui empêchait parfois les joueurs d'entrer dans le mode Spectateur.
- 10.12 - Correction de plusieurs problèmes affectant la fonctionnalité des pages de runes en sélection des champions.
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.
Les prochaines étapes
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.