By Philidia on lundi 24 décembre 2018
Category: News

Récapitulatif de mort : Un problème d'entretien

 
Se faire tuer par un flash, par une compétence inconnue, etc... Est une chose que vous avez sûrement déjà constatée dans le récapitulatif de mort en jeu. Ce système est souvent la cible de moquerie, du fait des bêtises qu'il a tendance à montrer aux joueurs. Alors, pourquoi n'a-t-il pas encore été refait ? Début de réponse avec Reinboom...
 
Récapitulatif de mort : Un problème d'entretien
 
Il semble y avoir beaucoup de théories sur la raison de la difficulté à résoudre le problème du récapitulatif de mort. De la complexité du système aux fondations instables du jeu, combinées aux questions comme "Comment le jeu inflige des dégâts corrects ?", les théories ne manquent pas. Pourtant, le problème est bien plus simple. Le récapitulatif de mort rencontre autant de problèmes à cause de sa maintenance, issue de la manière dont il a été conçu.
 
Pour comprendre ça, il faut se plonger dans le fonctionnement des scripts du jeu. La large majorité de la logique du gameplay (Qui sont les choses qu'on peut attribuer spécifiquement à des éléments du jeu) est dirigée par des scripts réalisés par divers concepteurs de jeu. Ces scripts peuvent "seulement" exécuter les fonctions en place sur le serveur de jeu. Seulement étant à relativiser, dans la mesure où elles sont très nombreuses.
 
Le plus basique de ces scripts est l'attaque de base d'un champion. Le script pourrait ressembler à ça :
 
Execute: GetTotalAttackDamage - ptp.AttackDamage = from Attacker ApplyDamage - Deal ptp.AttackDamage to Target from Attacker (PHYSICAL, Basic Attacks : { OnHit, LifeSteal, ... })
 
Ce genre de texte ne peut jamais être vraiment une représentation correcte d'un script dans la mesure où Riot utilise un éditeur spécialisé.
 
Chacune de ces déclarations est un bloc, et tout ce qui est après sont des paramètres. Les blocs peuvent être très simples (Comme avec des "If"), ou très complexes, avec beaucoup d'options, comme le "ApplyDamage" dans cet exemple.
 
Avec un script comme celui-là, il n'y a pas beaucoup de possibilités d'avoir une erreur. On spécifie des dégâts, des comportements pour ces dégâts, de qui ils sont et à qui ils sont destinés. "ApplyDamage" enclenche une série d'événements qui permet à d'autres éléments de jeu de modifier ces dégâts. Mais pour l'essentiel, c'est très simple, avec la plupart des systèmes qui ne sont pas dans le script du concepteur mais dans le code.
 
Et cela a du sens. Les dégâts ne rencontrent pas de problèmes de maintenance parce qu'il est simple d'en infliger. Et si le récapitulatif de mort n'avait besoin que de ça pour fonctionner, alors ça serait parfait. Mais ce n'est évidemment pas le cas. Il manque quelque chose de vital dans le script pour le récapitulatif de mort : Qu'est-ce qui a fait des dégâts ? Pas qui, pas combien, mais quelle compétence, quel objet, quel buff, ou quelle rune a initié ces dégâts.
 
C'est là tout le problème de la maintenance de ce système. La solution qui a été retenue pour le récapitulatif de mort il y a très longtemps (Plus de 7 ans !) était juste de fournir plus d'informations. Le jeu s'est alors enrichi d'une information "Exécution" lorsqu'une compétence achève un champion, et le concepteur devait récupérer cette compétence à travers tout le reste pour que la source soit la bonne. Cela fonctionne, mais seulement quand les compétences sont simples, comme la désintégration (A/Q) d'Annie. Et ce genre de compétence ne représente qu'une petite partie des compétences du jeu. La plupart des compétences démarrent en tant que copie d'une autre compétence plus simple, qui est modifiée selon les besoins. C'est souvent pendant ces premières étapes de conception que les vieilles informations du récapitulatif de mort qui ont été renseignées dans un "ApplyDamage" sont embarquées avec lui. Et comme la compétence finale fonctionne parfaitement pour tous les systèmes sauf le récapitulatif de mort, ce dernier est en général oublié, ce qui aboutit à ces résultats étranges.
 
 
Il y a d'autres problèmes avec le récapitulatif de mort, mais ils sont plus simples. Si une nouvelle compétence est écrite, et qu'un concepteur ne renseigne pas la partie récapitulatif de mort, alors cela reste vide. L'interface du récapitulatif affichera alors souvent du vide en conséquence, avec des icônes d'attaque de base qui n'apparaissent pas tout le temps, ou avec de vieilles données. Parfois cela finit juste avec le nom de la compétence "parent" utilisée, et comme les nouvelles sont souvent issues de copies d'anciennes compétences simples, comme le flash, on obtient des résultats bizarres, en particulier en combinant cela aux autres problématiques, et c'est ce qui fait que vous avez parfois dans votre récapitulatif une compétence avec l'icône du flash qui serait celle vous ayant achevé. Aucun de ces problèmes n'est complexe cependant. Ils résultent plutôt d'une volonté de ne pas vouloir dépenser trop de temps dans un système qui devrait idéalement être remplacé. C'est ainsi que le système se retrouve avec peu de correctifs, même "en surface".
 
Leave Comments