Certains d'entre vous sont déjà familiers avec les raisons d'une telle réponse : l'écrasante majorité des jeux ayant recours à ce qu'on qualifie d'IA dans notre industrie, n'utilise en fait que des techniques et méthodes très différentes de celles que d'autres industries qualifient, elles, d'IA. En d'autres termes, la désignation intelligence artificielle dans le jeu vidéo regroupe un ensemble d'éléments qui n'ont pas grand chose à voir avec ce que les chercheurs, les militaires, les fabricants de voitures autopilotées, et d'autres, appellent de l'intelligence artificielle.

Et si l'audience a éclaté de rire, c'est bien entendu parce que ces spécialistes en sont pleinement conscients - c'est un secret de Polichinelle.

Petit tour d'horizon

Dans le contexte du jeu vidéo, ce qu'on qualifie d'IA est souvent constitué d'approches conditionnelles binaires, dont les conditions sont non seulement très limitées en nombre, mais aussi et surtout très maîtrisées, encadrées, par la volonté d'un Game Design.

Pour vous donner un exemple, prenons Metal Gear Solid (ou d'autres jeux d'infiltration) et ses "états d'alerte" : Normal, En Alerte, En Evasion. Les personnages déclenchent simplement un groupe de comportements en fonction de l'état d'alerte. Le jeu les fait transitionner d'un état à un autre en fonction de règles très simples : le personnage du joueur a-t-il produit du bruit à proximité ? S'est-il fait voir ? Etc. Grossièrement résumé, voici comment ça marche du point de vue design :

Normal En Alerte En Evasion
  • Les gardes suivent leurs patrouilles prédéfinies (par le Level Design)
  • Leurs sens attendent un stimulus (son, vision)
  • Si un garde, ou une caméra, détecte le joueur, le statut passe en Alerte.
  • Les gardes se déplacent à présent de manière à conserver leur perception du joueur
  • Les gardes attaquent le joueur lorsqu'ils ont une ligne de tir
  • Une fois le temps écoulé sans réussir à rétablir le contact avec le joueur, le statut passe en Evasion.
  • Les gardes se déplacent à présent de manière à fouiller les cachettes, à trouver le joueur
  • S'ils le trouvent, on repasse en statut d'Alerte.
  • S'ils ne le trouvent pas à l'issue du décompte, on repasse en statut Normal.

Cette approche par "statuts", extrêmement commune dans le jeu vidéo, utilise ce qu'on appelle des Finite State Machines (FSMs, ou "machine à états finis" en traduction littérale). C'est à dire que l'élément régi par la FSM ne peut pas être dans plus d'un seul Statut à la fois. Des règles précises gouvernent le passage de l'élément d'un statut à un autre. Et chaque statut gouverne le comportement de l'élément (dans l'exemple présent, les comportements accessibles à un garde en fonction du statut de la FSM "Etat d'Alerte").

L'autre technique ultra répandue dans l'IA de jeu vidéo, et souvent complémentaire des FSMs, ce sont les Behavior Trees (ou "Arbres de Comportement"). Ceux-ci servent à l'IA à prendre des décisions en évaluant différentes conditions, et sont parcourus depuis la "racine" du Behavior Tree, suivant les branches adéquates à chaque noeud, jusqu'à trouver tout à la fin la "feuille" correspondant à la décision à prendre compte-tenu de toutes les évaluations qui ont eu lieu avant.


Exemple simplifié d'un Behavior Tree de garde pour le Statut Normal (celui-ci se lit de gauche à droite).

En utilisant simplement ces deux approches, il est d'ores et déjà possible de réaliser des comportements très complexes (comme en témoignent déjà de nombreux jeux reposant sur ces approches). Mais bien entendu, plus il y a de FSMs et de Behavior Trees à évaluer, plus ceux-ci sont complexes et interconnectés, et plus ils doivent tourner en parallèle, plus cela demande de ressources qui ne seront pas consacrées au reste du jeu. D'autant plus lorsque le jeu en question doit gérer un grand nombre de personnages reposant sur de tels systèmes. Par ailleurs, face à une même situation, les agents (les personnages individuellement régis par leurs "IA") réagiront toujours de la même façon, ce qui peut poser des problèmes de répétitivité, surtout pour les joueurs sachant rapidement distinguer les motifs comportementaux que ne manquent pas de générer ces approches.

D'autres techniques s'ajoutent à ces deux mamelles de l'IA de jeu vidéo, qui sont amenées à perdre leur omniprésence à mesure que leur efficacité pêche et que d'autres approches deviennent technologiquement viables ; le GOAP (Goal Oriented Action Planning, lien en anglais), par exemple, permet d'échaper à certaines des rigidités inhérentes aux Behavior Trees, en partant du but recherché pour établir la meilleure séquence d'actions pouvant permettre à l'IA d'y parvenir (cette technique fut utilisée notamment dans l'excellent F.E.A.R., salué à l'époque pour son IA). Ou encore, les IA Utilitaires, qui attribuent des poids/scores à des comportements en permanence en fonction d'une myriade d'inputs, pour choisir ceux pesant le plus lourd/obtenant le meilleur score (typiquement, les jeux Sims reposent sur ce genre d'approche).

Emergence, Procédural, Systémique

A contrario de la nécessité pour les designers de prévoir toute situation pouvant arriver dans leur jeu (ce qui est en soi un défi impossible dans un jeu moderne, complexe et ouvert), il y a le design systémique, qui a dominé largement le développement de jeux ces dernières années. On se contente de poser des règles, de définir ce que les objets ont comme propriétés, comment celles-ci changent en fonction d'autres facteurs, puis on laisse l'IA se débrouiller avec les règles établies en lui laissant ce "mou".

L'exemple récent (mais guère innovant en soi) le plus parlant est peut-être celui de Zelda : Breath of the Wild. Par exemple, lorsqu'un Moblin planté devant un steak en train de cuire voit Link, l'IA lui fait aller chercher l'arme la plus proche pour pouvoir l'attaquer. Mais au lieu de définir l'objet qu'il doit aller chercher, les designers ont combiné un ensemble de règles pour que l'IA puisse évaluer différemment quelle décision prendre sur ce simple comportement (quel est l'objet le plus proche ? À quelle distance se trouve Link ? etc.). Résultat, il est tout à fait possible qu'il se saisisse d'un autre ennemi plus petit, comme un Bokoblin - parce que les propriétés du Bokoblin peuvent satisfaire les conditions qui feront considérer à l'IA que c'est la meilleure option dans une situation donnée. Je n'ai pas vu le code de l'IA dans Breath of the Wild, mais je doute qu'un comportement précis ait été écrit pour permettre ce cas de figure.


Pas de caillou ou d'arc à proximité... ok, viens là, toi !

C'est ça l'émergence : des situations, non prévues par les développeurs, qui "émergent" naturellement en fonction des systèmes qu'ils ont créés.

Si vous avez joué à ce Zelda, vous aurez pourtant remarqué que certaines choses n'arrivent jamais : par exemple, les monstres ne fuient jamais. En effet, même si elle a laissé la place à de l'émergence, l'IA du jeu reste cadrée suivant des principes traditionnels, et pour une bonne raison, qui peut se résumer simplement aux choix de Game Design - à la nécessité de maîtriser et de cadrer le contexte du jeu pour fournir une expérience voulue.

Mais, toutes autant qu'elles sont, ces méthodes et approches reposent toujours sur une forme plus ou moins avancée de structure conditionnelle, qui dans les grandes lignes n'est pas en mesure d'apprendre suffisamment pour changer sa propre structure. Si les designers n'ont pas créé et "branché" un comportement, celui-ci ne peut pas être adopté par l'IA. Elle se contente de suivre des instructions. Elle ne peut pas se créer de nouveaux comportements, s'adapter, bref... être intelligente. Elle n'apprend pas de ses expériences.

Loin du débat vraie/fausse IA

Il ne s'agit pas de placer une échelle de valeur sur ces définitions différentes de l'IA, de dire qu'il y a tromperie quelque part, ou que c'est une erreur de la part de l'industrie du jeu vidéo que de continuer à qualifier ces techniques et méthodes d'IA. Ce n'est en tout cas certainement pas mon propos.

Tout ce qu'a développé le jeu vidéo depuis 40 ans dans ce registre l'a été avec des objectifs et des contraintes très différents de ceux des autres industries et de la recherche, travaillant sur ce qu'on qualifie souvent de "vraie" IA. D'abord, dans le jeu vidéo, les réactions de la machine ont toujours dû, dans la majorité des genres, avoir lieu en (semi) temps réel - pire, elles devaient être en mesure d'être réévaluées plusieurs fois par "frame" (image). Avec des jeux entre 30 et 60 images/secondes, il est facile d'apprécier le défi que cela représente en termes de rapidité d'exécution, quand la même machine doit aussi gérer de la physique, des effets spéciaux, ou simplement un graphisme de jeu AAA.

Ensuite, ces réactions n'avaient pas pour principal objectif d'être à proprement parler intelligentes ; elles devaient d'abord servir le jeu, donc l'expérience du joueur. C'est à dire lui permettre de toujours pouvoir la surmonter et, finalement, de se caler sur le rythme du joueur lui-même, offrant suffisamment de challenge, mais pas plus.

Lorsqu'IBM opposait son super ordinateur Deep Blue à Kasparov aux échecs, ou, plus récemment, lorsque l'incarnation nommée AlphaGo de l'IA DeepMind de Google a finalement vaincu Lee Sedol au jeu de Go, l'objectif des pères de ces machines était bel et bien d'écraser le joueur Humain. Un non-sens dans le contexte du jeu vidéo, qui aurait pourtant pu (et l'a parfois fait par erreur) faire de même dans les contextes de jeux de tirs ou autres, lesquels auraient ainsi perdu toute valeur aux yeux du public en devenant insurmontables.

Par ailleurs, il est important de préciser que ce qui fut le plus impressionnant de la part d'AlphaGo ne tient pas seulement en sa capacité à vaincre le champion 4 parties à 1. Pour ceux qui connaissent bien le jeu de Go, ce qui fut le plus impressionnant fut la capacité d'AlphaGo à développer et tirer avantage de stratégies nouvelles, qu'elle ne connaissait pas avant de les développer seule, et... qu'aucun joueur humain n'aurait tentées. Certaines ont même paru complètement farfelues aux observateurs sur le moment, et révélé plusieurs dizaines de coups plus tard toute l'étendue de leur génie en se montrant payantes. En d'autres termes : la véritable valeur de l'IA dans ce contexte va bien plus loin que son efficacité brute. Elle a montré qu'elle avait le potentiel d'apprendre aux humains à penser différemment, à ouvrir leur esprit à de nouvelles possibilités. Et AlphaGo est déjà "vieille" (lien en anglais).

N'y a-t-il pas là quelque chose d'intéressant à développer dans un contexte de jeu vidéo ? Un attrait supplémentaire, si l'on veut, qui serait caduque sans la nature interactive dont il dispose ? La possibilité d'élargir la pensée du joueur, de cultiver son intelligence, rationnelle, émotionnelle, ou autre, en présentant des situations et des réponses qu'un esprit humain "normal" n'aurait sans doute pas formulé, mais qui restent tout à fait intéressantes et même productives, tout en restant admirablement logiques et cohérentes une fois leur objectif atteint ?

Vers la "vraie" IA

Pour une immense majorité de jeux dans des genres établis, les techniques traditionnelles suffisent amplement à fournir les expériences voulues, appréciées des joueurs. Mais l'avènement du Machine Learning ouvre une porte large à de nouveaux concepts, ou même d'anciens impossibles à réaliser sans les avantages de ces techniques.

Il le fait peu ou prou de la même manière que le design procédural permet d'imaginer des jeux se déroulant dans des galaxies entières : sans le procédural, il aurait fallu concevoir à la main toutes les planètes d'un Elite Dangerous, ce qui, bien évidemment, eût été impossible.

C'est pareil avec le Machine Learning : il réside en son sein la possibilité de l'infini, mais appliquée par exemple aux comportements des personnages d'un jeu. Je n'ai guère la place ici d'expliquer les bases du fonctionnement du Machine Learning, malheureusement, mais sachez simplement qu'il ouvre le champ des possibles bien au-delà de ce qu'une armée de designers pourrait prévoir avec des techniques traditionnelles, fussent-elles procédurales et/ou systémiques.

J'ai déjà parlé de narration procédurale ici même, notamment dans le Podcast 155 (je sais, ça ne nous rajeunit pas), et avec les machines actuelles et les outils de Machine Learning désormais disponibles, il est plus que jamais temps d'explorer ces nouveaux horizons... ce que certains studios commencent à faire. Il faudra encore un peu de temps avant qu'un jeu majeur, voire des genres de jeux entiers, n'émergent de ces technologies, mais croyez-moi, c'est en route... et c'est même pour dans "pas si longtemps que ça".