Aucune image   Pack Mission Bonus
Téléchargement

Fiche détaillée

Patch 4.5 : Maj des Bots

Ecrit par Coxie, le 16-04-2014

Le patch 4.5 déployé dernièrement a subit hier une petite modification portant plus particulièrement sur l'IA des bots. Leur comportement devrait désormais être "plus humain et plus naturel". Reste à voir sur le terrain.

Le pourquoi du changement est expliqué en détail dans l'article qui suit en provenance du site officiel.


Citation

Nous avons apporté quelques améliorations aux bots afin d'en faire des adversaires plus humains. Exemple : au moment d'évaluer les menaces, les bots se demanderont désormais si les sorts de l'adversaire sont en phase de récupération, et ils pourront aussi (parfois) esquiver les compétences de tir.

Cliquez ici pour en savoir plus sur les objectifs de ces changements et sur les moyens techniques mis en œuvre.

  • L'évaluation de la force des ennemis et des alliés a été améliorée.
  • La compréhension des tourelles (mécanique et puissance) a été améliorée.
  • Les comportements en cas de menace importante ont été améliorés.
  • Les décisions de changement de voie ont été améliorées.
  • Le last-hit avec les attaques auto. (pour farmer mais aussi pour pusher) a été amélioré.
  • Les comportements sur les voies (harceler ou farmer, etc.) ressemblent désormais plus à ceux d'un humain.
  • Les bots essaient désormais d'esquiver les compétences de tir.
  • Les bots débutants achètent désormais les objets conseillés, et les bots intermédiaires peuvent s'équiper de façon plus avancée.
  • Les bots scannent désormais les environs à une fréquence qui varie selon la difficulté choisie et selon le niveau de menace dans la partie.

Citation

Dev Blog : créer un bot plus humain
Par RoamingNumeral

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 !

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.

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 :

Bot Annie en ligne...
Scan en cours...
Cible : Nidalee
Mes PV : élevés
A de la cible disponible : oui
Action : farmer non-stop
-------------------
Scan en cours...
Cible : Nidalee
Mes PV : élevés
A de la cible disponible : NON
Action : farmer encore un peu
-------------------
Scan en cours...
Cible : Nidalee
Mes PV : BAS
PV de la cible : élevés
A de la cible disponible : NON
Action : WTF !! OÙ SONT PASSÉS MES PV ?! NIDALEE OP, RITO PLS !(Je m'enfuis.)
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 :

Bot Annie en ligne...
Scan en cours...
Cible : Nidalee
Mes PV : élevés
A de la cible disponible : oui
Action : farmer
-------------------
Scan en cours...
Cible : Nidalee
Mes PV : élevés
A de la cible disponible : NON
[UTILISATION DE SORT DÉTECTÉE]
Le sort est une compétence de tir : OUI
La cible est tournée vers moi : OUI
Action : ESQUIVE DE NINJA
-------------------
Scan en cours...
Cible : Nidalee
Mes PV : élevés
A de la cible disponible : NON
Action : SORTEZ LES VENTILOS ET LES GLAÇONS, ÇA VA CHAUFFER ! (J'attaque.)

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 !

0 commentaire

© 2010 Riot Games Inc. All rights reserved.
League of Legends and Riot Games Inc. are trademarks or registered trademarks of Riot Games, Inc.
Copyright © 2011 Univers Virtuels pour le contenu du site.
Design : Coxie, Template: Cypher, Code: JB