Accueil > Non classé > Comment fonctionne l’intelligence artificielle d’un jeu vidéo ?

Comment fonctionne l’intelligence artificielle d’un jeu vidéo ?

Catégorie(s) de l'article : Game Design | Non classé
Article écrit par Hugo

Chaque élément mouvant qu’un joueur croise dans un jeu est régit par une intelligence artificielle. Si ces programmes peuvent atteindre de très hauts degrés de complexité, ils restent pourtant composés de parties très simples à aborder.

  • Un terme un peu embelli
  • Qu’est-ce qu’une IA de jeu vidéo ?
  • Comment fonctionne une intelligence artificielle complexe ?
  • Quel genre d’IA prévoir pour mon jeu ?
  • Des points à prévoir lorsqu’on réalise une IA

Un terme un peu embelli

On appelle « intelligence artificielle » (ou IA) un programme informatique capable de simuler une intelligence équivalente ou supérieure à celle d’un humain en certains points. On retrouve ces IA et a algorithmes un peu partout de nos jours sur Internet, notamment avec les moteurs de recherche. Les plus avancées d’entre elles sont capables d’étudier leur entourage et de d’adapter leur comportement en fonction.

Toutefois, en dehors de quelques rares exceptions conçues comme des prouesses techniques (comme OpenAI Five, qui a appris seule à jouer à DOTA 2 et qui a battu bon nombre d’équipes de joueurs professionnels), le jeu vidéo n’utilise techniquement pas d’IA.

Il s’agit principalement d’un terme marketing pour désigner un cousin bien plus simpliste de ces programmes, qui régissent la plupart des éléments mouvants d’un jeu vidéo. Elles sont toutefois importantes et souvent omniprésentes : voici les bases pour les comprendre.

 

Qu’est-ce qu’une IA de jeu vidéo ?

Un jeu vidéo moderne est la plupart du temps composés d’objets, de modèles et zones possédant différentes propriétés : personnage, mur, lac d’eau, porte permettant de changer de zone, etc…

Dans presque tous les jeux, on y retrouve également des objets mouvants qui évoluent dans l’espace de jeu, comme par exemple les PNJ, ennemis et les boss. Afin qu’ils puissent se mouvoir d’eux-mêmes, on leur associe une intelligence artificielle qui variera selon leurs rôles à accomplir.

Une IA n’est ni plus ni moins qu’une association faisant intervenir plusieurs scripts, qui vont décrire les actions que l’objet va prendre. On pourrait s’attendre à ce que des derniers soient incroyablement complexes, mais en réalité de très simples conceptions peuvent parfaitement faire l’affaire dans bien des jeux.

Les ennemis classiques de la série des Mario en 2D sont de parfaits exemples. L’intelligence artificielle d’un goomba peut se résumer très simplement par ceci :

  •         Aller vers la gauche
  •         Si le goomba rencontre un obstacle, faire demi-tour

Il est difficile de réellement parler « d’intelligence » ici. Le programme se contente de s’exécuter sans même réellement remarquer la présence du joueur. Voici néanmoins la base du fonctionnement de toute forme d’intelligence artificielle. Les plus complexes vont simplement avoir bien plus d’actions selon plus de conditions.

 

Comment fonctionne une intelligence artificielle complexe ?

A son cœur, l’IA qu’on retrouve dans la grande majorité des jeux n’est qu’un gigantesque arbre à embranchement. A la fin de chaque branche, on retrouve une ou plusieurs actions simples que l’ordinateur va effectuer, souvent selon un référentiel basé sur le terrain et sa position au joueur.

Dans le cas d’un ennemi par exemple, il peut s’agir d’une action en particulier, d’un sort en ligne droite qui vise la position du personnage du joueur ou un simple ordre pour s’éloigner.

La création d’une intelligence artificielle consiste juste à programmer ces décisions de manière à ce que l’objet en question prenne des décisions cohérentes par rapport à ce qu’il est censé faire, à son environnement et aux actions du joueur.

Ce qui va permettre à l’IA de « choisir » va être une simple vérification de conditions ou non. On démarre à la base, au tronc de l’arbre, puis à chaque embranchement l’ordinateur va choisir son chemin en fonction des conditions qu’il détecte. On appelle souvent ces conditions des « flags ».

L’IA continue à remonter son arbre de priorité et de vérifier les paramètres, en suivant une sorte de liste de priorités. Si les critères sont remplis, elle effectue l’action associée. Sinon, elle continue son chemin jusqu’à attendre une action qui remplisse toutes ses conditions.

En somme, il s’agit simplement d’un enchaînement logique qui, poussé à un certain point, permet à un ordinateur de prendre des décisions plus ou moins correctes en fonction de la situation.

Si vous cherchez à vous familiariser avec ce principe par le biais d’un autre jeu vidéo, le système des gambits de Final Fantasy 12 permet de reproduire très sommairement le fonctionnent d’une intelligence artificielle. En définissant chaque action en fonction de conditions, il est possible de paramétrer toute son équipe pour qu’elle fonctionne automatiquement après un peu de travail et quelques niveaux.

 

Exemple :

On peut synthétiser le squelette de l’IA d’un ennemi classique de FPS de la manière suivante :

Priorité no1 : Si une grenade est à moins de 5 mètres, stopper toute action et s’écarter de l’explosion.

Priorité no2 : Si je ne suis pas à couvert, me déplacer vers le couvert le plus proche.

Priorité no3 : Si le joueur est statique depuis trop longtemps et qu’aucun coup ne l’a touché durant les 10 dernières secondes, lancer une grenade.

Priorité no4a (j’ai un couvert) : Si je suis à couvert, alterner entre trois secondes à rester caché, puis deux où je sors ma tête et tire vers l’endroit où est le joueur. Puis recommencer.

Priorité n o4b (je n’ai pas de couvert) : Tirer sur l’endroit où se positionne le joueur si sa position est à plus de deux mètres. Faire une attaque au corps à corps si elle est à moins de deux mètres.

 

Une place pour l’aléatoire

Bien entendu les intelligences artificielles tendent aujourd’hui à être plus subtiles et un peu moins prévisibles. Afin de répliquer les hésitations ou les décisions d’un autre humain ou de laisser un peu de place à l’erreur pour le joueur, la plupart des actions des intelligences artificielles sont soumises à des facteurs aléatoires.

L’ennemi du précédent exemple peut ne pas voir la grenade. On peut par exemple le paramétrer pour que, même avec toutes les conditions remplies, il ait une chance de ne pas s’en sortir à temps. S’il vise le joueur, il ne possède qu’un certain pourcentage de chances de le toucher, en fonction de différents facteurs (la distance, la couverture du joueur, s’il est en mouvement…).

La plupart des boss et ennemis de RPG ont une probabilité d’effectuer chaque attaque aléatoirement, ces probabilités évoluant au fil de la bataille vers des attaques plus léthales.

Il s’agit d’une fine ligne sur laquelle se maintenir. Laisser une place à l’aléatoire rend les interactions avec la machine plus vivantes, moins prévisibles et laisse donc de la place pour l’improvisation. Toutefois, il ne faut pas non plus les rendre complètement irrationnelles. L’objectif est de conserver une certaine cohérence dans le comportement d’une IA et de la rendre plus ou moins performante en fonction de la difficulté souhaitée.

 

Quel genre d’IA prévoir pour mon jeu ?

Si les intelligences artificielles sont plutôt faciles à comprendre et à concevoir sur le principe, toute leur subtilité repose dans les paramétrages plus fins, afin pour qu’elles se comportent le plus possible en accord avec le thème du jeu.

 

Pour les jeux plus « arcade » (jeux de plateforme, certains action-adventure, MMO et RPG)

Si votre jeu n’a pas vocation à être une expérience réaliste et se veut purement et simplement comme une expérience de gameplay, il n’est pas nécessaire de prodiguer une intelligence artificielle très complexe à vos personnages. Elle peut en revanche pleinement être utilisée de manière à tester les capacités du joueur ou bien le forcer à varier son style de jeu.

Si le joueur repose trop sur un personnage de son équipe en particulier, lui lancer un sort de prison peut l’encourager à en changer. Des ennemis volants dans Mario poussent le joueur à faire un choix entre esquiver leurs projectiles ou tenter quelques acrobaties pour s’en débarrasser complètement.

 

Pour les jeux plus réalistes (FPS, action-adventure, simulations, infiltration)

Si votre jeu cherche à émuler la réalité (ou à défaut, dans le cas de robots, zombies ou aliens, à reproduire des comportements réalistes), il peut être utile de s’intéresser plus en détail aux IA. Il est dans ces cas préférables de paramétrer l’IA pour qu’elle ait un comportement raisonnable par rapport à ce qu’elle est censée représenter.

On attend d’un ennemi du genre bandit qu’il soit agressif, qu’il utilise quelques subterfuges pour prendre le dessus (embuscades, aveuglement…) ou même qu’il fuit s’il voit que le combat est perdu d’avance. Un PNJ rencontré dans une ville va quant à lui suivre un certain chemin, en s’arrêtant à l’occasion pour parler à des passants, porter ou actionner quelque chose.

Ces comportements n’ont pas nécessairement besoin d’être très poussés, ils doivent simplement se contenter d’être cohérents avec ce à quoi on pourrait s’attendre d’eux sans trop s’y intéresser.

 

Dans un jeu compétitif (RTS, VS Fighter, jeu de stratégie)

En plus des éléments habituels, si le joueur joue ce genre de jeu compétitif seul, l’intelligence artificielle prendra la place d’un de ses adversaires. Il s’agit d’un cas particulier car ces IA possèdent alors des possibilités très similaires à celles du joueur (adaptées pour son camps/personnage, évidemment).

Il s’agit probablement des IA les plus difficiles à créer, car il faut leur apprendre à jouer au jeu de différentes manières (très mal pour les difficultés faciles et de façon presque parfaite au niveau expert). Elle ne doit pas avoir accès à des éléments de gameplay inaccessibles pour le joueur (sauf cas spéciaux, comme une sorte de boss).

Afin de rendre cette tâche plus facile, on aura tendance à associer à chaque personnage jouable sa propre IA, qui possède une sorte de « personnalité », de manière de jouer spécifique. Si le personnage est agressif, l’ordinateur tentera un playstyle plus risqué. S’il est défensif, il ne bougera de sa base que lorsqu’il aura un avantage indéniable.

 

Des points à prévoir lorsqu’on réalise une IA

 

Est-elle suffisamment prévisible et s’adapte-t-elle à mon jeu ?

Comme dit précédemment, une intelligence artificielle n’a de sens que si elle n’est pas totalement aléatoire. A termes, un joueur doit pouvoir apprendre ses subtilités, son fonctionnement général et savoir à quoi s’attendre. Assimiler le comportement des ordinateurs jours directement dans la courbe d’apprentissage d’un jeu : il doit y avoir une logique que cet exercice soit satisfaisant.

A moins qu’un changement soit justifié au travers de la diégèse du jeu (nouvel ennemi, nouvelle transformation, changement de camps etc…), il vaut mieux éviter tout changement drastique dans son évolution.

 

Vaut-elle le coup d’y investir des ressources ?

Coder et développer une intelligence artificielle est un processus chronophage. Il est coûteux en termes de temps, et parfois, en termes de ressources processeur utilisées par le jeu final.

Créer une IA incroyablement complexe n’est que rarement nécessaire. Avant de vous lancer dans son développement, demandez-vous si elle est véritablement nécessaire ou si vous n’avez pas moyen d’utiliser une autre mécanique de gameplay tout aussi intéressante.

Un ennemi de platformer par exemple ne nécessite aucune arrière-pensée et peut être entièrement considéré comme un outil de jeu sans besoin de s’y attarder. Mieux vaut concentrer ces efforts sur le développement du comportement du compagnon suivant partout le joueur, comme Elizabeth de Bioshock par exemple.

 

Gare aux bugs

Plus on passe de temps à jouer avec une intelligence artificielle, plus on se rend compte qu’elle n’a pas grand-chose d’intelligent. Ces programmes sont en effet souvent très simples, soumis à des logiques mathématiques brutes qui auront du mal à s’adapter logiquement à tous les paramètres d’une session de jeu.

Les IA sont donc connues pour être le théâtre de très nombreux bugs et erreurs, dont les résultats varient entre l’hilarité et l’énervement en fonction de ce qu’elles engendrent. N’hésitez pas à la tester sous de nombreuses conditions.

Un exemple assez fameux peut-être vu avec Gandhi, le leader de l’Inde dans Civilization 1. Fidèle à sa représentation réelle, l’IA qui incarne Gandhi est l’une des plus pacifiste du jeu. Sa propension à déclarer une guerre violente est la plus faible du jeu, 1 sur une échelle allant jusqu’à 10.

Si faible que lorsque l’ordinateur adopte par défaut vers le milieu de partie une doctrine qui baisse de nouveau son agression, ce chiffre baisse de nouveau et passe dans les négatifs. Cependant, à cause une erreur de programmation (underflow), cette valeur repassait en réalité à l’autre côté de la bouche, pour aller jusqu’à 10.

Un ordinateur jouant Gandhi commençait ainsi typiquement chaque partie comme un voisin amical, avant de soudainement se transformer en un chef de guerre fou, larguant des bombes atomiques sur quiconque croisait son chemin.

Ce concours de circonstance plu cependant beaucoup aux développeurs, qui conservèrent cette anomalie dans tous les autres Civilization. Gandhi reste un pacifiste, mais cela ne l’empêche pas de rechercher la technologie nucléaire le plus vite possible pour apporter du poids à ses paroles.

 

Tous les joueurs ne commencent donc pas strictement sur un pied d’égalité. Toutefois, il est possible de paramétrer un jeu pour que tous les personnages aient, entre les mains de joueurs compétents, grossièrement les mêmes chances de victoire.

Cette méthode est extrêmement populaire car elle permet de rendre un jeu beaucoup plus riche, complexe et imprévisible. Elle permet aussi aux joueurs de choisir quel type de gameplay leur convient le mieux en fonction de leurs préférences.

Exemples : League of Legends, Overwatch, Team Fortress 2, World of Warcraft, Street Fighter

 

Quelle démarche pour équilibrer l’incomparable ?

Les jeux avec des gameplays asymétriques sont souvent bien plus difficiles à équilibrer que leurs équivalents plus stables. C’est bien la raison pour laquelle la plupart des titres compétitifs utilisant ce principe aujourd’hui patchent régulièrement leurs jeux pour affiner ces paramètres.

Le but premier lorsqu’on veut équilibrer un aspect du jeu reste de respecter autant que possible son « game feel » l’esprit de comment un personnage, un rôle ou une faction est censé être joué. Si un personnage est conçu pour être très mobile, voire insaisissable, il est important de ne pas lui retirer ce qui le rend unique.

De manière générale, l’option la plus simple consiste à rendre donner à chaque option des forces et faiblesses très marquées. Aucune n’est universellement bonne mais elles se spécialisent vers un style de jeu et des stratégies différentes, afin combler leurs manques ou d’exploiter leurs avantages.

L’astuce est donc de ne créer que des personnages puissants, voire dominants dans certains aspects, tout en donnant aux joueurs des options de counterplay pour pouvoir leur résister.

 

Les catégories de jeux multijoueur

Il existe plusieurs moyens de concevoir un jeu impliquant plusieurs joueurs. Chaque catégorie prodigue un certain type d’expérience, de dynamique entre les joueurs et a besoin de différentes formes d’équilibrage

 

Les jeux coopératifs (ou coop)

Dans un jeu coopératif, les joueurs sont unis face un front commun. Ils jouent tous dans la même équipe et possèdent le même but, qui revient la plupart du temps à lutter contre l’ordinateur.

Il s’agit du cas où la notion d’équilibrage peut être plus laxiste, moins sujette à conflit. Le fait d’avoir des capacités puissantes n’est pas réellement un problème car elles seront toutes utilisées pour faciliter la tâche du groupe.

Là où les développeurs interviennent ici est de faire en sorte que tous les membres du groupe aient un rôle et une importance, afin de renforcer les interactions entre les joueurs. Cela peut par exemple facilement s’effectuer en spécialisant les différents personnages, en les rendant capables d’actions que les autres ne peuvent pas effectuer, ou moins bien.

La « trinité » des rôles de la plupart des MMORPG, mise en place par World of Warcraft, en est un bon exemple. Pour affronter des défis plus ardus, les groupes se décomposent en trois grands rôles, qui dépendent de la classe et de l’équipement des personnages :

  • Les tanks, des aventuriers en armure lourde et avec des capacités défensives qui vont attirer les ennemis sur eux plutôt que sur leurs compagnons.
  • Les soigneurs, qui se focalisent sur garder le groupe en vie, retirer les poisons et les avertir des dangers.
  • Les DPS (damage per second), qui font le gros des dégâts et possèdent des capacités plus explosives pour rapidement démolir leurs ennemis.

 

Jeux compétitifs

Les jeux compétitifs, à l’inverse, se concentrent sur l’affrontement direct entre les joueurs (bien qu’il arrive que des intelligences artificielles ou le hasard interviennent pour pimenter les parties). Il peut varier d’un duel entre 2 personnes, comme dans un VS Fighter, à une mêlée générale de plusieurs centaines de joueurs où il ne peut en rester qu’un, comme dans le Battle royale.

Le but ici du designer ici est de faire en sorte que, parmi la grande diversité de possibilités laissées au joueur, chaque option soit à la fois unique, intéressante à jouer, mais aie surtout des chances de victoires équivalentes à celles de ses adversaires.

Un jeu compétitif est considéré « équilibré » quand tous ses personnages ont, sur un très grand échantillon mélangeant tous les niveaux et les matchups, environ 50% de chance de victoire.

C’est un équilibre souvent très délicat, qui dépend beaucoup des capacités des joueurs impliqués. A un niveau plus élevé, comme dans l’Esport, un personnage qui gagne 52% du temps sera surreprésenté et un autre à 55% ou plus sera dominant.

Les jeux compétitifs sont toutefois conçus pour être équilibrés et amusants qu’à la condition qu’ils réunissent des joueurs de niveau équivalent. Aujourd’hui, la grande majorité des jeux multijoueur en ligne possèdent un système de matchmaking efficace afin de déterminer le niveau moyen d’un joueur (souvent en utilisant un dérivé du système Elo) et leur trouver un adversaire approprié.

 

Les jeux équipe VS équipe

Enfin, on retrouve une forme plus récente du jeu vidéo compétitif, mettant deux équipes l’une face à l’autre. Ces jeux tendent à plus grande échelle combinent des aspects du jeu coopératif et compétitifs, forçant les joueurs à s’organiser pour battre leurs adversaires.

Pour fonctionner, il est généralement nécessaire de rendre la victoire d’un des deux camps basée plus ou moins directement sur plusieurs facteurs et conditions. Pour pouvoir y répondre, les rouages d’une équipe doivent travailler ensemble, séparer leurs tâches pour être plus efficaces que l’équipe adversaire.

Exemple

League of Legends est un exemple solide de ce fonctionnement. Chaque joueur de ces équipes de 5 se voit associé un rôle bien défini, aiguillé par la classe de son personnage.

Traditionnellement, le top laner se charge d’être l’initiateur, résistant et capable d’engager l’équipe ennemie. Le jungler va enchaîner les attaques surprises depuis à sa position dissimulée. Le midlaner est joué par un personnage offensif qui profite de sa position centrale pour aider ses alliés. Enfin, à la botlane on retrouve le carry, qui fera la majorité des dégâts aux tours (ce qui fait gagner la partie) et le support, un personnage défensif qui est chargé de le maintenir son équipe en vie.

Chaque rôle est essentiel dans l’équipe et pénalise l’ensemble s’il traîne derrière ou est mal joué. Cette stratégie s’écrase ensuite contre celle de l’équipe adverse, qui peut très bien utiliser une composition différente pour gagner un effet de surprise.

 

 

Le Metagame

 

Tout joueur désire normalement gagner. Cela est encore plus vrai dans le cas de jeux plus compétitifs.

Pour peu qu’un jeu, surtout multijoueur, gagne en popularité, il se développera alors organiquement ce qu’on appelle un « metagame ». Il s’agit comme son nom l’indique d’un « jeu en dehors du jeu », ou plus spécifiquement, un jeu pour trouver la meilleure manière de jouer au jeu.

Ce metagame est entièrement construit et géré par les joueurs, mais il est influencé par la manière dont le jeu est conçu. Loin d’être fixe, ce dernier évolue, à la fois lorsqu’un jeu est modifié, qu’on y ajoute du contenu ou qu’on l’équilibre, mais aussi naturellement en fonction des innovations trouvées par ces communautés.

Super Smash Bros Melee est un cas ou cela est très visible. Ce jeu qui approche de ses 19 ans aujourd’hui est sorti sur Gamecube, et n’a donc jamais reçu de patch modifiant l’équilibre de son jeu. Pourtant, la tier list (une liste qui détermine le niveau de puissance global de ses personnages) n’a eu de cesse d’évoluer au fur et à mesure que les joueurs professionnels ont affiné leurs compétences et stratégies.

Rondoudou était à l’origine considéré comme un combattant médiocre. Aujourd’hui, il s’agit du personnage emblématique de Hungrybox, le plus grand champion actuel sur ce jeu encore très souvent joué compétitivement.

 

Les counterplays

Il peut être très difficile d’anticiper quelle forme prendra le metagame de son jeu d’un point de vue de développeur. En revanche, ils disposent aujourd’hui de nombreux outils qui leur permettent d’examiner ces communautés et d’avoir accès à des données sur leurs jeux.

Il est donc recommandé de véritablement adapter vos jeux en fonction des retours et des stratégies utilisées par les joueurs plutôt que par une estimation interne, souvent erronée. Si un aspect apparaît comme véritablement dominant, surreprésenté ou marquant pour les joueurs, il est probablement temps d’introduire plusieurs formes de counterplay.

Les counterplay sont des actions accessibles pour la plupart des joueurs afin leur permettre de lutter directement contre les actions d’autres joueurs. Idéalement, toutes les mécaniques d’un jeu doivent être accompagnées d’une forme de contre qui force les deux joueurs à effectuer des choix intéressants.

Par exemple, l’invisibilité est une capacité très puissante dans DOTA 2, mais pour y répondre, les joueurs ont à leur tour la capacité d’acheter des poudres de détection afin d’attraper ces héros souvent très fragiles. Les héros invisibles peuvent ainsi jouer plus prudemment contre un joueur aux sens aiguisés, mais ce dernier va devoir investir de nombreuses pièces d’or pour continuer à ce rythme.

Le metagame lui-même peut ainsi être décomposé en une succession élaborée de counterplays. Personnage A domine, ce qui pousse beaucoup de joueurs à l’incarner. Personnage B possède un léger avantage sur personnage A, ce qui entraîne à son tour une nouvelle vague de joueurs B. Le processus se répète avec un personnage C et ainsi de suite jusqu’à atteindre un point d’équilibre.

Savoir influencer plus ou moins subtilement dans cet écosystème fragile est la marque des grands game designers. L’équilibrage reste un des aspects les plus spécifique et étroit du jeu vidéo, et très peu de studios, même renommés, parviennent à trouver une formule appropriée à leurs jeux. Il n’y a pas d’autre solution que de tester continuellement son jeu et de voir comment sa playerbase réagit.

 

Si vous souhaitez intégrer les métiers liés au monde du gaming et de la création vidéoludique, Campus des Ecoles vous propose des formations spécialement dédiées aux métiers du numérique.

Vous voulez intervenir dans le Game Design et diriger les mondes que vous créez ? Vous trouverez votre bonheur ici.

Le domaine du dessin et de la modélisation vous intéresse plus ? Vous pourrez faire prendre vie à vos créations en suivant une formation de Game artist.

Je m'informe gratuitement et sans engagement
Je m'informe gratuitement et sans engagements !

Ou appelez nous dès maintenant au :
02 30 30 20 26