10 January 2022

14 min - lecture

inside ubisoftstudio updates

Ubisoft La Forge – Concevoir une IA de pointe pour créer la nouvelle génération de PNJ des jeux vidéo

Ubisoft La Forge est une initiative de développement et de recherche ouverte qui réunit plusieurs chercheurs et experts d'Ubisoft afin de réduire le fossé entre les recherches académiques et les innovations du monde du jeu vidéo. Ils sont en première ligne du monde académique et expérimentent les dernières techniques et technologies de l'industrie. Leurs équipes dévouées analysent différentes utilisations des dernières technologies, comme l'intelligence artificielle, pour rendre les jeux plus réalistes, plus amusants et rendre leur développement plus efficace.

[UN ] Ubisoft La Forge – Concevoir une IA de pointe pour créer la nouvelle génération de PNJ des jeux vidéo - JoshuaHeadshot

L'apprentissage par renforcement profond fait partie de ces utilisations potentielles. Il s'agit d'un type d'apprentissage automatique qui utilise l'IA pour trouver les solutions les plus efficaces à toutes sortes de problèmes. Afin de lever le voile sur certains mystères et comprendre comment cela leur permet de créer des PNJ plus réalistes, de naviguer dans des mondes de jeu complexes et de concevoir des réactions plus humaines, nous nous sommes entretenus avec Joshua Romoff, expert en données d'Ubisoft La Forge et natif de Montréal, qui a transformé sa passion des jeux vidéo en un doctorat en science des données. Il a récemment pris la parole lors de la conférence Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2021 pour expliquer comment lui et son équipe cherchent à améliorer le déplacement et la navigation des PNJ en utilisant l'apprentissage automatique.

Qu'est-ce que l'apprentissage par renforcement profond et comment cela fonctionne-t-il ?

Joshua Romoff : Il faut d'abord expliquer les termes "agent" et "action". Dans le domaine de l'intelligence artificielle, l'agent désigne généralement le personnage principal qui interagit avec le monde. Pour nos recherches, nous utilisons des bots pour remplir ce rôle. En ce qui concerne l'action, elle désigne l'interaction effectuée. J'aime penser que le joueur est une sorte d'extension de la manette. Chaque commande que le joueur effectue sur la manette entraîne une action.

Maintenant, concentrons-nous sur l'aspect renforcement de l'apprentissage : C'est l'idée d'essayer de renforcer un type de comportement, un peu comme la célèbre expérience des chiens de Pavlov : un chercheur sonne une cloche à l'heure du repas des chiens et les chiens apprennent à associer la cloche avec une récompense. On essaie d'encourager ou de décourager certains types de résultats avec des récompenses ou des sanctions. Nous faisons la même chose avec un agent IA : on donne ou on retire des points selon les actions. Mon travail est de mettre en place des tests et d'identifier les moments où nous donnons ou retirons la récompense. L'objectif de l'IA est d'obtenir le meilleur score possible avec les actions disponibles.

Quant à la partie dite profonde, cela correspond à la manière dont un agent perçoit son monde. On peut comparer ça à un réseau de neurones profonds. Un écran est un objet complexe. Des centaines de milliers de pixels sont affichés en même temps. Alors, comment gérer cet écran et toutes ces données ? Un réseau de neurones profonds prend l'écran, réduit son échelle, analyse ses données, puis intègre ces informations dans sa partie d'apprentissage par renforcement qui effectue ensuite des actions selon les données reçues. C'est ce qu'on appelle un système de bout en bout : tout est contenu et les données naviguent entre ces systèmes, d'un bout à l'autre. Nous faisons ça à chaque image et attribuons des points selon les actions effectuées et l'état de l'environnement à l'arrivée. Nous enchaînons ensuite les itérations pour entraîner l'agent à produire les actions que l'on souhaite qu'il effectue.

Des jeux vous ont-ils inspiré pour votre étude de l'apprentissage par renforcement profond ?

JR : Bien sûr. J'ai toujours aimé les jeux en monde ouvert où l'on parcourt notre environnement pour interagir avec des PNJ, comme Far Cry par exemple. Dans ce genre de jeux, j'ai toujours été fasciné par la manière dont les joueurs interagissent avec l'IA des PNJ. C'est un aspect essentiel de l'expérience selon moi. On interagit avec le monde et les PNJ sont une partie importante de cette interaction. J'ai toujours aimé embêter les PNJ et essayer de déboussoler l'IA, histoire de voir jusqu'où je peux les manipuler. Si je suis dans un combat contre un ennemi et que je décide de grimper sur une montagne à proximité, j'aime regarder l'ennemi se prendre la montagne devant moi parce qu'il ne peut pas faire la même chose. J'aime l'observer réagir à différents événements. C'est toujours quelque chose qui m'a motivé dans mon travail : imaginer comment améliorer et entraîner une IA pour qu'elle se comporte comme les humains le font.

En tant que scientifique en recherche et développement, à quoi ressemble votre quotidien ?

JR : En général, je conduis des expériences, je mets la main à la pâte et j'essaie d'entraîner un "agent IA" à effectuer une certaine tâche dans un jeu. Une fois que l'expérience est prête, place à l'observation. J'analyse des graphiques et je fais quelques ajustements pour affiner les résultats. Une autre grosse partie de mon travail consiste à accompagner les doctorants et les étudiants en master. Tous nos étudiants sont payés, mais je travaille avec eux et leurs professeurs pour mettre en place des projets. Généralement, nous avons plusieurs projets d'étudiants en simultané. Non seulement cela aide nos étudiants, mais ça nous permet également d'avancer. C'est évident que je ne peux pas tout coder tout seul. Une fois que nous avons un prototype fonctionnel, nous plaçons la technologie dans un environnement bac à sable, qui est une version simplifiée d'un moteur de jeu existant, et nous observons les résultats de notre travail. Si un projet fonctionne, c'est l'occasion pour le travail d'un étudiant d'apparaître dans les jeux que nous développons. L'étudiant acquiert également de l'expérience sur le développement d'un jeu, c'est pourquoi nous essayons toujours de nous assurer que les projets sur lesquels nous sommes puissent servir aux équipes dans leur production.

Lors de votre conférence AIIDE, vous avez évoqué des tests sur des jeux comme Hyper Scape pour créer des bots "qui ressemblent davantage au joueur". Pouvez-vous nous en dire un peu plus ?

JR : Oui, nous avons fait quelques tests sur Hyper Scape en interne, parce que le jeu s'avère être un bac à sable intéressant pour certaines problématiques que nous essayions de résoudre. Le truc qui est vraiment intéressant avec Hyper Scape, c'est qu'il dispose d'une forte verticalité et qu'il est assez difficile de naviguer dans son environnement 3D. De nombreux outils sont à disposition des joueurs, comme des doubles sauts ou des plateformes de saut qui vous propulsent dans les airs. Tout ça vous permet d'atteindre le sommet des bâtiments. Vous pouvez également combiner ces outils, c'est là que ça devient intéressant pour un testeur ou un développeur de jeu, parce que la carte qu'ils ont créée permet aux joueurs d'aller n'importe où.

D'habitude, les jeux utilisent ce qu'on appelle un mesh de navigation qui est une sorte de carte 2D de toutes les zones traversables dans un monde. Les données permettent ainsi aux bots de savoir où ils vont et comment ils y vont. Mais c'était difficile d'effectuer des tests avec cette méthode, parce que lorsqu'il y a tant d'actions aussi incroyables comme les doubles sauts et les plateformes de saut, sans oublier les sols verticaux qui ne sont pas toujours reliés à des rampes ou des escaliers, les combinaisons font exploser le nombre de possibilités. L'utilisation de l'apprentissage par renforcement profond était pertinente, parce que nous pouvions lancer l'agent dans une boucle d'entraînement, afin qu'il apprenne seul comment passer d'un point A à un point B, sans utiliser de mesh de navigation. C'est pourquoi nous l'avons principalement utilisé pour apprendre ces mouvements à un agent, puis tester la carte pour nous assurer que l'ensemble de la carte est accessible.

[UN ] Ubisoft La Forge – Concevoir une IA de pointe pour créer la nouvelle génération de PNJ des jeux vidéo - Mesh de navigation

Il semble que vous ayez reçu des résultats intéressants concernant certains tests sur d'autres jeux. Vous pouvez nous en parler ?

JR : Je vais vous parler d'un exemple avec un bot que nous avons entraîné dans For Honor. Nous voulions que l'agent défende davantage, alors nous lui avons octroyé une récompense supplémentaire lorsqu'il le faisait. Finalement, l'agent a décidé de ne jamais terminer le combat et continuait de défendre sans s'arrêter. C'est vraiment drôle, parce que l'un des principaux défis qu'on rencontre lorsqu'on entraîne des agents de cette façon, c'est que, peu importe l'environnement dans lequel vous le mettez et l'action que vous essayez de lui inculquer, il va théoriquement apprendre à le faire du mieux possible. Si vous lui donnez une récompense lorsqu'il reste vivant ou qu'il défend, il va continuer de le faire, parce que vous le récompensez. Mais vous ne voulez pas forcément que le bot batte le joueur à chaque fois. Ça ne serait pas drôle, c'est pourquoi il faut également encourager d'autres types de comportements, comme la défense, qui font varier ses actions.

On peut également octroyer ces petites récompenses supplémentaires pour accélérer le processus d'entraînement. C'est facile d'ajouter un petit bonus de défense, puis un autre d'attaque, mais ce n'est pas évident d'agencer et de combiner tous ces bonus. Ça peut donner des comportements très amusants. J'ai un autre exemple avec Hyper Scape et nos tests de navigation. Nous entraînions un agent à se rendre d'un point à un autre aussi vite que possible, mais nous ne lui avions pas encore donné la capacité de sprinter. Il a donc compris que s'il sautait et faisait bouger légèrement la caméra, il pouvait se déplacer un peu plus vite qu'en marchant. C'était vraiment drôle de le voir simplement apprendre à faire des sauts de lapin. Vous pouvez retrouver ces deux exemples dans mon intervention AIIDE.

[UN] Ubisoft La Forge – Concevoir une IA de pointe pour créer la nouvelle génération de PNJ des jeux vidéo - ForHonorDefenseBot

Ces genres de résultats sont-ils quand même pertinents pour vos recherches ?

JR : Ça dépend de notre objectif. S'il s'agit de tester le jeu, comme c'était le cas de nos expériences, ces résultats nous sont très utiles, parce qu'on comprend alors quel est le comportement optimal selon les récompenses octroyées. On peut suivre l'évolution de son apprentissage et comprendre quel comportement aide l'agent à remplir son objectif. On peut découvrir des choses qu'on ne soupçonnait pas et éliminer ainsi quelques bugs pour s'assurer que notre code fonctionne comme prévu.

La nouvelle génération de consoles et les nouvelles fonctionnalités comme le Cloud et les services de streaming ont-elles ouvert le champ des possibilités pour les IA des jeux ?

JR : Totalement. À la base, la recherche en apprentissage profond a commencé dans les années 80-90 et les chercheurs étaient évidemment limités par les ressources informatiques dont ils disposaient. Si vous essayez de faire fonctionner un modèle d'apprentissage profond sur une console vieille génération, ça ne serait pas possible, d'un point de vue informatique. La fréquence d'images ne pourrait pas suivre le mouvement. La puissance informatique dont les gens disposent chez eux a considérablement augmenté. Le matériel lui-même s'est considérablement amélioré et grâce à tout ça et à la quantité de recherches conduites dans ce domaine, nous sommes à un point où nous sommes en capacité de résoudre ces problèmes. Nous disposons de bots extrêmement doués, capables de naviguer dans des cartes incroyablement complexes dans des mondes 3D. On ne doute plus de leur efficacité, ils se comportent de façon plus humaine que n'importe quel codage en dur et ce n'est plus aberrant d'imaginer plusieurs agents fonctionnant simultanément au sein d'un même jeu et effectuant tous ces calculs complexes. Ce n'est plus une question de ce qui pourrait arriver dans dix ans. Les recherches et le matériel sont là depuis un moment et nous ont permis d'atteindre le niveau d'aujourd'hui.

Quelles autres utilisations pourriez-vous imaginer pour ces techniques ?

JR : L'utilisation la plus naturelle, c'est les bots. Et c'est pourquoi nous nous concentrons là-dessus. Mon groupe s'appelle le Smart Bots Groups, autant vous dire qu'on est à fond. On travaille sur des bots utilisés pour tester les jeux, mais on pourrait facilement imaginer que si on entraînait un bot pour naviguer dans un environnement, il pourrait être ensuite être amélioré pour devenir une IA ennemie qui affronte les joueurs.

En plus des bots, l'apprentissage par renforcement est un cadre de travail très général qui permet de nombreuses utilisations différentes. On pourrait imaginer, par exemple, l'utiliser pour la gestion de serveur. Lorsque vous hébergez des serveurs pour un jeu, un problème peut se poser avec le nombre de serveurs actifs : il peut y en avoir trop ou pas assez selon le nombre de joueurs présents. Théoriquement, on pourrait entraîner un agent pour optimiser la prise de décision séquentielle pour qu'il analyse le nombre de joueurs présents à certains moments de la journée, puis augmente ou diminue le nombre de serveurs en ligne selon les besoins.

Quels sont vos objectifs pour l'avenir de cette technologie ?

JR : L'objectif est de continuer d'imaginer des manières d'injecter plus de réalisme dans les jeux, de rendre les bots ou les PNJ plus humains et de résoudre des problèmes jusqu'alors insolubles. Nous aimerions également proposer cette technologie aux concepteurs de jeux et créer des outils orientés vers le joueur. Cela pourrait devenir un autre outil disponible dans le répertoire des développeurs. Leur permettre de personnaliser ces bots et de leur faire faire ce qu'ils veulent est un peu notre prochaine grosse étape, puisque tous les tests dont j'ai parlé n'ont pas encore été véritablement effectués en ligne ou face à des joueurs. Je pense que la priorité est d'abord de proposer cette technologie aux testeurs de jeu et de l'utiliser pour tester toutes sortes de scénarios différents, des problèmes de performances en passant par les mécaniques de gameplay.

Quelles sont les implications de l'utilisation de l'IA et de l'apprentissage par renforcement profond dans les jeux vidéo ?

JR : Si on utilise simplement cette technologie pour tester des jeux, cela n'arrivera jamais en face du joueur. Il n'y a aucune raison de s'inquiéter autour de certains préjugés qu'ont les gens à propos de l'IA. Certains s'inquiètent de voir moins de gens tester les jeux, mais ce n'est pas vraiment pertinent, car certains tests que nous effectuerons avec ces bots sont totalement différents de ce qui est testé par de véritables humains. L'interaction humaine est encore indispensable. Les gens continueront de tester les éléments les plus importants des jeux, comme les quêtes ou d'autres fonctionnalités amusantes.

En ce qui concerne l'implantation de bots IA dans les jeux, je pense qu'il est très important que nous soyons transparents. Je pense que certaines personnes s'inquiètent de voir apparaître des bots dans des jeux, sans savoir s'il s'agit d'un humain ou non. C'est encore sujet à controverse, c'est pourquoi je pense que nous devons nous montrer totalement transparents et ne pas essayer de duper les joueurs. Je pense que l'autre raison d'apprécier l'IA dans les jeux est liée au fait qu'il s'agit du parfait petit bac à sable. C'est un bon endroit où tester certaines idées et voir ce qu'elles donnent, tout en contenant certains résultats inattendus dans le jeu et en évitant toute répercussion extérieure. Les gens n'ont pas à craindre que mon bot de défense de For Honor finisse par dominer du monde. Il n'existe qu'au sein d'un jeu et c'est assez amusant.

Écoutez l'intégralité de l'intervention de Joshua lors de la conférence AIIDE 2021, découvrez son travail en action et apprenez-en davantage sur l'intelligence artificielle et l'apprentissage par renforcement profond. Pour ne rien manquer des dernières actualités des équipes d'Ubisoft, guettez la page Ubisoft News.

Plus de Ubisoft

7 March 20243 min - lecture

Valiant Hearts: Coming Home and Valiant Hearts: The Collection Out Now for PlayStation, Xbox, Switch and PC

The collection, which includes both The Great War and Coming Home, tells the stories of people in World War I.

En lire plus
18 January 20245 min - lecture

Prince of Persia: The Lost Crown Out Now

Dive into Sargon’s adventure through a time-cursed mythological world starting today.

En lire plus
15 January 20245 min - lecture

Ubisoft+ évolue : Voici ce qui vous attend

Aujourd'hui, parallèlement au début de l'accès anticipé à Prince of Persia: The Lost Crown sur Ubisoft+, les offres d'abonnement Ubisoft changent de nom.

En lire plus
2 November 20234 min - lecture

Ubisoft au Service de l'Éducation : L'Exemple des Micro-Folies

Depuis 2021, Ubisoft collabore avec les Micros-Folies, mettant des contenus numériques au service de la démocratisation de la culture.

En lire plus