LoLTracker

 

Dev Blog : créer un bot plus humain

Dev Blog : créer un bot plus humain
 
Les blogs dev sont des articles créé par Riot, afin d'expliquer quelque chose qui a été réalisé sur le jeu de manière approfondie, de la bouche de ceux qui l'ont conçu. Aujourd'hui, Riot s'attaque aux bots et à leur intelligence artificielle, suite aux modifications faites récemment
 
Cet article a son intérêt. Vous y apprendrez plus sur la manière de penser d'un bot, et vous verrez que cela peut parfois être plus complexe que ce qu'on ne pourrait penser :)
 
 
Bonjour à tous !
 
Bienvenue dans ce nouvel article du blog des développeurs de League of Legends. Cette fois, nous abandonnons l'équipe dédiée au gameplay pour nous intéresser aux bots qui, croyez-le ou non, sont présents dans un grand nombre de parties de League of Legends. Étant donné que nous avons récemment effectué quelques changements visant à les rendre plus humains, nous nous sommes dit que vous pourriez être intéressés par l'histoire de cette mise à jour.
 
Comme toujours, nous attendons vos commentaires avec impatience pour nous aider à améliorer ce blog. Mais dans l'immédiat, découvrons comment créer un bot plus humain ! C'est l'un des responsables de cette mise à jour, RoamingNumeral, Design Analyst, qui va tout nous dire sur l'amélioration des bots. C'est parti !
 
Pwyff
 
 
Pourquoi avons-nous mis à jour les bots ?
 
Les matchs contre les bots représentent une bonne partie des matchs joués, même chez les joueurs de niveau 30. Cela fait beaucoup d'heures passées en compagnie de nos amis robotiques, et nous pensions pouvoir rendre ces heures plus attrayantes.
 
Nous avons interrogé les joueurs des modes Coop vs IA et PvP pour savoir ce qu'ils pensent des bots. L'une des réponses les plus claires était qu'ils souhaitaient des bots plus « humains », des bots qui seraient moins prévisibles et qui se concentreraient sur les mêmes choses que les joueurs (last-hit, combos, etc.). De façon plus surprenante, en revanche, ils étaient moins nombreux à vouloir des bots plus forts. En fonction de ces données, nous avons décidé que le principal objectif de notre mise à jour serait de rendre les bots plus humains, d'autant que ces changements allaient également rendre plus intéressants des bots de niveau supérieur.
 
Les joueurs nous ont également dit que, d'après eux, les bots n'avaient pas l'air de tenir compte de la force et du danger de la même façon que la plupart des joueurs. Il s'avère qu'ils avaient raison.
 
 
Améliorer l'évaluation des menaces
 
Nous appelons « évaluation des menaces » les systèmes que les bots utilisent pour déterminer leur force et celle des ennemis. Toutes les décisions des bots au cours de la partie reposent sur ces systèmes.
 
Nos systèmes précédents utilisaient une méthode très courante dans les jeux, surtout dans les FPS : le bot regarde le nombre de dégâts qu'il a récemment subis et s'en sert pour déterminer la menace future. Dans un FPS, c'est tout à fait logique. Si un bot quitte un couvert et subit des dégâts, il va sûrement continuer de subir des dégâts s'il reste là, donc il est préférable qu'il recule.
 
League of Legends fonctionne de façon un peu différente. Si Veigar lance tous ses sorts sur un bot et si ce bot survit, le bot n'a aucune raison de s'enfuir. Au contraire, c'est le moment ou jamais d'écraser ce misérable petit @$!#!. Le potentiel offensif de Veigar est pratiquement nul quand toutes ses compétences sont en phase de récupération, alors pourquoi ne pas en profiter pour lui donner quelques coups (voire beaucoup de coups) pendant qu'il est vulnérable ?
 
Nos nouveaux systèmes tentent de gérer ces situations en tenant compte non seulement des PV, mais aussi du nombre de sorts disponibles dont disposent le bot et les ennemis proches. Dans l'ensemble, nous avons constaté de nettes améliorations en ce qui concerne l'évaluation des menaces par les bots (malheureusement pour Veigar).
 
Cela dit, une meilleure évaluation des menaces n'est pas la seule chose dont ont besoin les bots. League of Legends a été conçu pour être joué par des humains, et non par des bots, ce qui engendre des problèmes assez intéressants. Par exemple, le jeu ne connaît pas l'effet d'un sort avant que celui-ci n'ait été lancé. Quand Morgana lance Chaînes spirituelles, un script s'enclenche et vérifie constamment si quelqu'un a brisé une chaîne. Quand le sort se termine, le script dit « Eh, toi ! Tu es étourdi et tu subis des dégâts. » à tous ceux qui n'ont pas brisé leur chaîne. Avant que Morgana n'utilise son ultime, le jeu ne savait pas que le sort Chaînes spirituelles infligeait des dégâts et étourdissait.
 
Cela vous paraît évident, pourtant, car les humains peuvent lire les bulles d'aide et anticiper. Dans cette situation, le système peut se permettre de découvrir les effets d'un sort pendant son exécution. Mais cela représente toutefois un énorme problème pour les bots, car ils ne peuvent pas lire et n'apprennent pas de leurs expériences.
 
Par conséquent, cette mise à jour contient quelques estimations un peu vagues pour calculer les dégâts que peuvent infliger les champions. Les bots continueront parfois de foncer bêtement dans le tas ou de fuir un combat qu'ils pourraient gagner, car ils ne sauront pas calculer parfaitement les dégâts... Tout comme les joueurs, en somme. :P
 
 
Pourquoi les bots ne junglent pas et ne sautent pas les murs ?
 
C'est assez simple : les bots ne savent pas où sont les murs, ni même ce que sont les murs (ils n'ont vraiment pas de chance, hein ?).
 
Le problème est globalement le même que pour les sorts : League of Legends a été conçu pour être joué par des humains. Un humain comprend facilement pourquoi un chemin tourne subitement à gauche ou à droite : c'est parce qu'il y a un mur droit devant ! Un bot, en revanche, se contente de suivre son « autopathing ». Il ne sait pas où se trouve exactement le mur et il ne connaît pas l'épaisseur du mur ; il ne sait même pas si l'obstacle est un mur. Pour lui, il pourrait aussi bien s'agir d'un tas de sbires. Les bots empruntent naïvement le chemin le plus court indiqué par leur système de pathing pour aller d'un point à un autre.
 
Sauter par-dessus un mur avec Saut éclair ou toute autre compétence est donc extrêmement difficile pour un bot. Comme il ne connaît pas l'épaisseur du mur et ne sait pas comment aller là où il est plus mince, c'est pratiquement impossible à mettre en place. Il faudrait apporter de nombreux changements aux systèmes relatifs au terrain pour que ces comportements soient possibles dans un avenir (très, très) lointain.
 
Pareil pour le jungling. L'une des principales conditions pour jungler est de savoir choisir les itinéraires qui sont sûrs ou optimaux pour des raisons autres que la distance. Sans d'abord modifier nos systèmes relatifs au pathing et au terrain, nous ne pouvons pas créer un bot jungler (ou alors ça serait un sac de 300 PO sur pattes, servi sur un plateau).
 
Nous sommes d'accord avec vous, ce serait génial que les bots puissent sauter par-dessus les murs et jungler, et à l'avenir, nous aimerions chercher les meilleurs moyens d'apprendre cela aux bots. Mais pour l'instant, nous avons choisi de nous concentrer sur d'autres comportements, ceux qui aideront les bots à mieux affronter les joueurs.
 
 
Esquiver les compétences de tir 
 
L'une des différences les plus marquantes entre les joueurs et nos précédents bots, c'était leur réaction face aux compétences de tir. Dans la plupart des situations, les joueurs essaient d'esquiver les tirs, alors que les bots acceptent souvent sans broncher de prendre les tirs en pleine face. Comme ce comportement n'est pas très humain, nous voulions apprendre aux bots à esquiver. Nous avons cependant rencontré une petite difficulté (quelle surprise !) : les bots ne peuvent pas « voir » les compétences de tir.
 
Voici comment Bot Annie voit le Javelot de Nidalee :
 
botannie1
 
L'une des différences les plus marquantes entre les joueurs et nos précédents bots, c'était leur réaction face aux compétences de tir. Dans la plupart des situations, les joueurs essaient d'esquiver les tirs, alors que les bots acceptent souvent sans broncher de prendre les tirs en pleine face. Comme ce comportement n'est pas très humain, nous voulions apprendre aux bots à esquiver. Nous avons cependant rencontré une petite difficulté (quelle surprise !) : les bots ne peuvent pas « voir » les compétences de tir. Voici comment Bot Annie voit le Javelot de Nidalee :
 
botannie2
 
Grâce à ce changement, les bots peuvent désormais essayer d'esquiver les compétences de tir... mais ce n'est pas parfait. Exemple : la Lance de glace d'Anivia n'entre pas en récupération tant qu'elle n'arrive pas en bout de course ou tant qu'elle n'est pas réactivée, donc les bots ne savent pas si ce sort a été lancé. L'Orbe d'illusion d'Ahri fait un aller retour, et les bots peuvent esquiver l'orbe à l'aller mais pas au retour. Il y a d'autres compétences que ce système ne gère pas encore parfaitement, mais esquiver certains tirs est toujours mieux que ne rien esquiver du tout !
 
 
Mettre à jour les combos et les builds des bots
 
En dehors des changements précédents, plus compliqués, il restait plein d'autres choses que nous pouvions faire pour humaniser les bots, comme mettre à jour les combos de sorts et les builds d'objets. Il suffisait juste d'y consacrer du temps. Notre cher Riot Afic, de l'assurance qualité, nous a ici beaucoup aidés grâce à ses connaissances de niveau Diamant. Les bots mis à jour utilisent désormais bien plus souvent des combos similaires à ce que font les joueurs aujourd'hui et achètent des objets beaucoup plus logiques.
 
Petite remarque à ce sujet : Bot Annie peut maintenant enchaîner le Saut éclair-étourdissement-Tibbers. Prévoyez des sous-vêtements de rechange.
 
 
Des bots plus humains
 
Sans surprise, des bots qui essaient de tenir compte de variables plus nombreuses nécessitent plus d'efforts informatiques. Les ingénieurs de notre équipe, RiotAaronMike et RiotWooTang, ont fait un excellent boulot et ont réussi à optimiser notre code de façon à ce que nous puissions sortir cette mise à jour sans surcharger le serveur.
 
L'un des avantages de rendre les bots plus efficaces et plus humains, c'est que nous pouvons ainsi réduire de manière contextuelle la fréquence à laquelle ils scannent l'environnement et réagissent. Pour les bots débutants, la fréquence des scans est désormais 1/3 de la précédente ; pour les bots intermédiaires, la fréquence des scans varie entre 50% et 100% de la précédente, selon le degré de menace qui plane sur eux. Dans aucun de ces cas on ne peut véritablement parler de « lenteur », mais les scans ne s'enchaînent plus aussi vite qu'avant, ce qui permet de réduire le nombre de réactions surhumaines et irréalistes.
 
Ces changements, ainsi que des myriades d'autres changements invisibles, ont créé des bots que nous estimons plus humains. Ils n'auront pas le niveau des joueurs Diamant (ni peut-être celui des joueurs Argent), mais ce n'est pas notre objectif actuel. Lors des prochaines étapes, nous allons voir ce que nous pouvons faire avec ces bots pour offrir une meilleure expérience aux joueurs qui font leurs premières parties en Coop vs IA. Vous en saurez plus sur ce nouveau projet prochainement !
 
RoamingNumeral
 
Yorick : La refonte n'arrivera pas avant longtemps
Mise à jour de l'IA des bots
 
You must login to post a comment.
People in conversation:
Loading comment... The comment will be refreshed after 00:00.
  • This commment is unpublished.
    TheEdouardu77 · 10 years ago
    Je sens que les parties perso vont vachement s'améliorés maintenant
  • This commment is unpublished.
    Ershad · 10 years ago
    Bonne initiative car les bots étaient nul donc quand on testait un nouveau champion qu'on vient juste d'acheter et qu'on carry la game on se dit "c'est bon je sais le joué go en normal (ou en ranked selon la situation) "et c'est la qu'on se met a feed l'équipe adverse ,maintenant on sera un peu plus si on a une maitrise du champion ou pas ,vivement les bots jungler .
   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à !