LoLTracker

 

Nettoyage du client : avancées, contretemps & découvertes

Banner_Ask_Riot_optimized_9oww147h5zx892qgur7k
...

Nettoyage du client : avancées, contretemps & découvertes - League of Legends

Voici des nouvelles de la campagne du nettoyage du client, avec quelques progrès, mais aussi des contretemps

Il y a quelques mois, nous avons annoncé notre intention de réparer le client de League of Legends, projet que nous avons nommé la « campagne de nettoyage du client ».

Ici, à Riot, nous tenons à vous tenir au courant de nos avancées, même lorsque nous rencontrons des difficultés. En toute honnêteté, nous avons encore beaucoup de travail devant nous, avant d'être totalement satisfaits de la performance du client.

Dans l'article d'aujourd'hui, nous allons parler des avancées que nous avons effectuées. Nous allons également évoquer les quelques contretemps que nous avons rencontrés, mais aussi des prochaines étapes prévues pour les résoudre.


Notre avancée 

Comme nous l'avons dit dans notre premier article sur le client, nous voulons avant tout réduire le temps de mise en route jusqu'à environ 15 secondes, même pour les joueurs du 90e centile. Pour rappel, le temps de mise en route mesure le temps que met le client à se lancer.

Pour atteindre cet objectif, nous avons dit que nous consoliderons et réduirons le nombre de plugins et applications Ember du client. Si ce vocabulaire ne vous parle pas, veuillez noter que les plugins sont des outils qui nous permettent de diviser le code du client en plusieurs sections utiles. Les applications Ember sont des outils qui supervisent notre interface utilisateur.

Jusqu'ici, nos travaux concernant cette zone avancent bien. Vous pourrez voir dans le graphique ci-dessous le nombre total de plugins et applications Ember du client au fil du temps. À chaque patch, nous avons réduit un peu leur nombre. Lors de son lancement, le client doit désormais charger 10 % d'applications Ember en moins et 20 % de plugins en moins, par rapport au début des travaux.

C'est une bonne nouvelle ! Nous avons cependant dû faire face à quelques contretemps dont nous aimerions vous parler.


Quelques contretemps

Lors des premiers patchs de l'année, nous avons remarqué d'importantes améliorations du temps de mise en route, grâce à notre travail sur les plugins.

Cependant, lors du patch 10.3, nous avons remarqué que les temps de mise en route commençaient à aller dans la mauvaise direction et le patch 10.7 représente la plus faible performance des temps de mise en route depuis le début.

Vous pouvez le voir dans le graphique ci-dessous. Pour vous aider à mieux comprendre, veuillez noter que les courbes devraient se rapprocher du côté gauche du graphique (ce qui correspond à des temps de mise en route plus rapides).

Nous pouvons expliquer ce récent inconvénient par la pression anormale que subissent les serveurs de League ces dernières semaines. Pour des raisons relativement évidentes, beaucoup d'entre vous à travers le monde passent plus de temps à la maison. Vous jouez énormément à League, ce qui pèse sur l'infrastructure de notre serveur et entraîne donc des temps de réponse imprévisibles et de plus longues mises en route du client.

Alors que nous augmentons la capacité du serveur pour faire face à cet afflux, nous pourrions commencer à revoir de véritables améliorations des performances du client. Nous étudions également d'autres causes possibles, comme réduire la quantité de code Javascript à charger lors de la mise en route.

Peu importe la raison de ce contretemps, il y a de l'espoir : comme nous l'avons dit dans notre premier article, en améliorant le temps de mise en route et de verrouillage de la sélection des champions (notre prochaine étape), nous allons pouvoir nettoyer et repenser certains aspects fondamentaux de l'architecture du client.

Cela signifie que nous sommes en train de corriger des bugs et traiter des problèmes de l'architecture fondamentale du client qui peuvent vous peser.

Un de ces fameux problèmes architecturaux que nous avons découverts est lié à une fonctionnalité du client appelée Affinity.


Le problème avec Affinity

Affinity est apparu en tant que fonctionnalité, lors de la « mise à jour du client » effectuée il y a quelques années. Il s'agit d'un outil qui nous permet d'identifier les plugins qui doivent être chargés avant la fin de la mise en route.

Nous avons découvert deux problèmes avec Affinity :

  1. Affinity ne fonctionnait pas. À un moment en 2018, Affinity a fini par ne plus fonctionner correctement. Puisqu'Affinity ne fonctionne pas correctement, le client charge donc par défaut tous les plugins existants lors de la mise en route et du chargement de fin de partie.
  2. Même si nous le réparions, Affinity ne résoudrait pas nos problèmes. Nous pensons que même si Affinity fonctionnait comme prévu, il ne priorisait pas assez efficacement le chargement des plugins. Pour résumer, le client a toujours eu cette mauvaise habitude de charger trop de plugins durant sa mise en route.

Nous devons donc remplacer Affinity par un programme plus efficace.

Ces découvertes nous ont surpris, mais ont permis de corroborer une de nos principales hypothèses lorsque nous avons commencé à travailler sur le client : en prenant le temps de fouiller dans les entrailles du client, nous avons pu découvrir des sources principales des problèmes que nous rencontrons.


Prochaines étapes

Maintenant que nous savons qu'Affinity ne fait pas le travail qu'il est censé faire, nous pouvons implémenter une nouvelle solution qui priorise correctement les plugins. Nous pourrons donc améliorer les temps de mise en route pour les joueurs et permettre d'autres travaux importants du client.

Cela n'altère pas fondamentalement notre projet de réparer le client, mais ça pourrait nous ralentir un peu. Dans tous les cas, nous considérons cette découverte comme un élément positif, puisqu'elle nous dégage le chemin pour la suite. Si cela permet de vous offrir de manière globale une expérience plus stable et moins buggée, alors nos efforts n'auront pas été en vain.

Une fois que nous serons satisfaits des temps en mise en route du client, nous entamerons la deuxième phase de la campagne de nettoyage du client : la réduction des temps de réponse lors de la sélection des champions. Pour beaucoup d'entre vous, le travail sur la sélection des champions est certainement la partie la plus intéressante de cette campagne et nous avons également hâte d'y être.

Nous continuerons de vous tenir au courant de notre avancée. Attendez-vous à un autre article comme celui-ci dans les prochains mois. Comme toujours, merci à vous de jouer !

Mise à jour sur le PBE (06/05)
Mise à jour sur le PBE (05/05)
 
You must login to post a comment.
People in conversation:
Loading comment... The comment will be refreshed after 00:00.
  • This commment is unpublished.
    Philidia
    • Administrateur du site
    · 4 years ago
    "À un moment en 2018, Affinity a fini par ne plus fonctionner correctement."

    Franchement, si vous devez retenir une seule chose, c'est ça. Un système clé du client qui gère le chargement des plugins, a cessé de fonctionner pendant deux ans, sans que personne ne s'en aperçoive, ne se dise qu'il y a un truc qui n'allait pas, et ne fasse le moindre contrôle. C'est digne d'une putain de bande d'amateurs doublée par un ramassis d'incompétents, et ça en dit long sur l'attention portée au client jusqu'à présent.

    Le reste c'est beaucoup de bruit pour pas grand chose. La seule chose à en tirer c'est que ça avance pas beaucoup, et que la tâche est titanesque. Et ça me hérisse fortement le poil de voir un article qui tournerait presque le fait d'avoir découvert un truc qui marche pas depuis deux ans comme une prouesse alors que c'est le truc qui donnerait envie à n'importe quel développeur/testeur de se pendre.

    Depuis le temps Riot aurait dû encore tout recommencer. Il y avait l'opportunité de le faire avec l'arrivée de nouveaux jeux, mais on dirait que l'aspect client est vraiment secondaire pour eux. Rien ne peut défendre une telle médiocrité tant il y a de fonctions de bases qui manquent à l'appel.
    • This commment is unpublished.
      Monsieur · 4 years ago
      On dit pas "putain" mais "Maman travaille tard le soir"...
    • This commment is unpublished.
      PeePan · 4 years ago
      C'est exactement ce que je me suis dit en lisant l'article. On a l'impression qu'ils découvrent le machin alors que ça fait quand même de nombreuses années que les joueurs se plaignent du client. Mettre autant de temps pour (au moins) cerner le problème (pas forcément le résoudre) ça fait se poser des questions sur la propreté du code derrière et sur la manière de gérer les devs...
    • This commment is unpublished.
      Agart · 4 years ago
      Rito a le jeu le plus joué au monde, et on arrive encore à voir ce genre de bourde digne des plus grand amateurs en effet. C'est intolérable que le client d'un jeu aussi gros soit aussi mal branlé. Le meme d'une "small indie company" a encore de beaux jours devant lui.
      Et encore j'ai lu l'article anglais il y a quelques jours j'ai eu le temps de digérer.


      Quand je dis que ce sont comme des gamins qui jouent avec leur caca en or c'est pas pour rien
    • This commment is unpublished.
      Pix
      • Super-Tipeur
      · 4 years ago
      Personnellement un truc pareil je l'aurais pas dit.
      C'est risible, déplorable, mais c'est quand même courageux et honnête.

      Le client selon moi c'est un vrai sac de nœud, une accumulation de code pas toujours bien faits, pas toujours harmonisés, pas forcément maintenus, et au bout d'un moment tout remettre en forme c'est plus possible.
      Maintenant avec tout le talent et la bonne volonté du monde le constat est là : pour rattraper les erreurs du passé faudrait tout refaire, et tout refaire c'est du temps c'est de l'argent, pour un bénéfice pauvre et de gros risques.

      Je connais que trop bien ce genre de situation...
  • This commment is unpublished.
    Monsieur · 4 years ago
    J'aime beaucoup cet article dans le sens où ils poursuivent leur communication honnête.

    Le client n'a jamais été une de leur priorité et vu le temps qu'ils ont mis à détecter le problème, je pense pas que ça va le devenir.

    Comme dit Phil, avec l'avènement de nouveaux jeux, ils auraient dû saisir l'occasion de faire un Battlenet like. Un client multiplatforme ou on retrouve nos amis peu importe le jeu de Riot auxquels ils jouent.

    Après, vu ce qu'ils nous on déjà fait subir avec la 1ere version du client, je dirais que je m'y ferai
  • This commment is unpublished.
    Mentes · 4 years ago
    N'ayant ni jouer a LoR ou Valorant je me demandais si c'était le même merdier niveau client?
    • This commment is unpublished.
      Philidia
      • Administrateur du site
      · 4 years ago
      LoR c'est propre, mais c'est plus un jeu lancé qu'un client séparé. Valorant je ne sais pas je n'ai pas pu tester ^^
  • This commment is unpublished.
    Mithambar · 4 years ago
    Alors je suis bien d'accord que c'est indigne d'une entreprise comme Riot games de ne pas avoir un "vrai" launcher, par contre si jamais il passe sur un launcher global mais qu'il oblige du coup à installer leur anticheat de valorant, je vais pas être d'accord.

    J'ai surtout l'impression que Riot veut avancer mais n'a pas le courage de corriger leurs précédentes erreurs et leurs vieux systèmes. Je sais que c'est pas fun mais je trouve que c'est obligatoire avant de lancer des gros projets comme Valorant, LoR, Clash, etc....
    • This commment is unpublished.
      Philidia
      • Administrateur du site
      · 4 years ago
      J'ai vu l'histoire de l'anticheat, mais je voudrais savoir, qu'est ce qui te pose problème avec ce dernier ?
      • This commment is unpublished.
        Mithambar · 4 years ago
        Quand tu installes le jeu, tu n'es pas prévenu sur comment fonctionne l'anticheat, Il tourne en permanence et se lance à l'ouverture de ton ordinateur sans que tu puisses rien y faire sauf le supprimer (installation sur le Kernel-0 si je me trompe pas) et quand tu désinstalles Valorant, bah l'anti cheat reste car il s'agit d'un programme à part. Et pour finir il est inefficace et si jamais il se fait corrompre, ça peut poser problème.
        • This commment is unpublished.
          Philidia
          • Administrateur du site
          · 4 years ago
          Hmmm... Je vais probablement faire un article sur ça. Je pense qu'il y a beaucoup d'incompréhension autour de ça, et qu'il faudrait éclaircir un peu les choses :p
          • This commment is unpublished.
            Mithambar · 4 years ago
            Je veux bien une explication sur la partie technique, dans tous les cas Riot et les explications, c'est pas ça ^^
  • This commment is unpublished.
    Bubu · 4 years ago
    J'y pensais comme ça mais, est ce que tu connais Philidia la politique de turnover de Riot (si il y en a et comment il est géré) parce que si ça se trouve c'est peut être une raison cachée derrière le bordel de code du jeu. Etant donné leur com sur leur manière de recruter je tend a penser que le niveau de turnover n'est aps très élevé dans la compagnie mais faudrai se poser des question plutôt sur l'organisation inter-projet : par ex si des personnes talentueuses ont ete debauches sur LoR Valorant etc alors q'uils s'occupaient de choses importante lors de la rrefonte du client il a quelques année set que ça a donné lieu a des manquements sur le développement de LoL au détriment des autres jeux

    J'dis ça comme ça par pure hypothèse parce que c'quand même assez déprimant de devoir tjrs blamer les développeurs par abus de language mais pas le reste
   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à !