Je suis sûr que grand bon nombre d´entre vous se posent encore des questions sur l´intelligence artificielle des PNJ ( personnages non jouables ) . Donc voici sans plus attendre des réponses et des prévisions quant à son évolution.Je vous souhaite
bonne lecture.
Présentation du sujet de l´IA par Gabriel Robert
I ) L´IA, une part toujours plus importante dans les jeux
Avec l´arrivée de machines plus puissantes, equipées de cartes graphiques gérant l´aspect visuel de façon autonome, l´attention des développeurs se porte de plus en plus sur l´intelligence artificielle. Nous pouvons obsever que nous avons :
- plus de temps processeur
- plus de programmeurs
- des gameplay de + en + basés sur l´IA
- un rapprochement avec le monde de la recherche
Plusieurs jeux utilisent l´IA comme base pour leur gameplay ( Creatures, Black & White, . ..), et l´on peut presque parler de mode de l´intelligence artificelle, renforcée par les interactions croissantes entre les chercheurs en IA et les développeurs de jeux.
II ) L´IA dans un jeu, qu´est-ce que c´est ?
Définition : "IA : Ensemble des algorithmes permettant de définir le ou les comportements d´une entité d´un jeu."
Une entité dans un jeu peut être :
- une créature ( ex : un monstre)
- un conseiller ( ex : les conseillés dans civilisation)
- un joueur simulé ( ex : jeu de stratégie)
- un scénariste virtuel, etc...
III ) Quels sont les problèmes auxquels l´IA est confrontée ?
- le déplacement ( en solo et en groupe) - C´est le rôle historique de l´IA. Le déplacement des entités du jeu en interaction avec leur environnement. L´algorithme A* est maintenant le plus souvent utilisé. [STOUT96]. Cet algorithme peut être modifié en fonction de divers objectifs ( rester caché, position de snipe, . ..) [STERREN01]
- la comunication - Gestion des communications entité-entité ( entraide entre bots) ou entité-joueur ( dialogues) adaptées à la situation.
- la gestion des ressources - Tout peut être considéré comme ressource : le tibérium de C&, les munitions dans un Quake-like, . ..
- la selection de l´action appropriée à la situation. C´est une simulation d´un comportement intelligent pour que l´entité soit crédible.
- la personnalité des entités : Prise en compte des émotions et des sentiments ( comme l´agressivité, la peur, . ..)
- la généricité : une entité ne doit toujours avoir un comportement par défaut afin de ne pas rester inanimée.
- tactique & stratégie
- Adaptation au comportement du joueur pour modifier la difficulté du jeu.
IV ) Quels sont les solutions classiques apportées ?
Deux approches traditionnelles :
- les automates à état fini : Comme un lave-linge. L´entité passe d´un état a l´autre en fonction d´évenements. Solution déterministe, reproductible et facile à scripter. Cette solution est utilisée dans 80% des cas. Par contre, si l´entité est confrontée dans une situation différente de celle imaginée par le "programmateur" : -), le comportement paraitra maladroit.
- les systèmes experts : Un ensemble de régles ( de type Si "condition 1" VRAI et "condition 2" VRAI alors "action 1") est implémenté. Le système retrouve les conditions et applique le système. On parle aussi de logique floue lorsque les conditions sont probabilistes. ( Si "condition 1" VRAI à plus 30% et condition 2" vrai moins de 10% alors "action 2").
- A* utilisé pour la recherche de chemin
- système multi-agent de type black-board
V ) Quelles solutions peut apporter une approche ´adaptative´ ?
A la différences des approches traditionnelles, les approches adaptatives favorisent l´apparitions de comportements émergents. Ainsi ces techniques sont capables d´apprentissage. On en distingue deux : l´apprentissage par renforcement ( récompenses et punitions) et l´apprentissage par imitation.
Les approches adaptatives sont :
- Les réseaux de neurones : un neurone est connecté a plusieurs autre en entrée et un seul en sortie. Si les entrées sont suffisement élevée, le signal est transmis en sortie et se propage dans le réseau. L´apprentissage se fait en pondérant les entrées pour favoriser des chemins qui provoquent le comportement désiré.
- Les algorithmes génétiques : On décompose les caractéristiques d´une entité en gènes. Les entités sont croisées, chacune transmettant la moitié des gènes à la progéniture, avec une éventuelle mutation aléatoire. Les entités sont mises en concurrence dans l´environnement et seules les meilleurs survivent.
- Les déplacement par champs de potentiel
- Les systèmes de classeurs
VI ) Ce que l´IA pourrait apporter aux jeux du futur :
A l´avenir, l´IA va prendre une place de plus en plus importante dans le jeu vidéo, tant en terme de budget alloué que de temps CPU dédié ( de l´ordre de 40%). Les applications peuvent être nombreuses pour l´utilsation de l´IA en terme de gameplay :
- des compagnons de jeu adaptatif ( Black & White)
- des scénarios évolutifs
- des didacticiel adaptés aux difficultés des joueurs
- des jeux perpétuels avec des personnages capables d´apprendre
- des jeux avec des avatars capables d´apprendre et de réproduire le comportement du joueur.
- etc...
Présentation du sujet de l´IA par Julien Millet
Selon une enquête publiée sur gamasutra :
- L´IA est intégrée à la fin du cycle de developpement. C´est généralement pour tenter de trouver une réponse aux problèmes trouvés en cours de dev.
- Environ 10% du temps processeur sont alloués aux processus d´IA.
- Au sujet du GameDesign, l´univers reste régit par les interactions du joueur ( voir Project EGO)
- Créer un monde persistant. Le monde vit tout seul, l´IA est là pour gérer cette vie.
- L´IA doit permettre d´avoir un monde crédible plutôt qu´exact
Questions / Réponses :
Q : Où se positionne aujourd´hui l´IA ? :
R : L´IA était auparavant intégrée vers la fin du cycle de développement. Aujourd´hui, le jeu est conçu dès le départ avec les possibilités qu´offre l´IA. On l´utilise pour :
- Etendre les possibilités du G.Design avec moins de scripts à gérer ( Project EGO)
- Créer un monde consistant
- Pathfinding
- Systèmes multiagents
Q : Qu´est-ce que l´apprentissage ?
R : Ce qui permet à l´IA d´apprendre et de s´adapter.
Ex. - Les réseaux de neurones ( problème = validation)
- Les classeurs
- Les système à base de renforcement ( Qlearning…)
Le jeu Conflict Zone a des "capitaines" qui apprennent à jouer.
La difficulté est de "profiler" le joueur pour comprendre sa stratégie et la contrer. L´expérience de l´IA s´acquiert sur plusieurs parties.
Mais attention, les unités pilotées de cette façon peuvent faire n´importe quoi. Leurs comportements ne sont pas scriptés et des comportement imprévus peuvent arriver -> problèmes de débuggage.
Q : Est-ce que 10% du CPU est suffisant ?
R : oui, avec un système de scripts. Aujourd´hui, il est moins cher, probablement moins risqué et plus facilement appréhendable de faire des scripts scénarisés. Mais cette méthode implique un comportement prévisible ( ex. HalfLife). Pour répondre à la question, c´est suffisant si c´est visiblement satisfaisant !
Mais c´est très dépendant du jeu et du game-play souhaité. Le système des scripts convient pour un jeu auquel on ne fait qu´une ou deux parties.
Les autres techniques requièrent plus de CPU. Les derniers chiffres sont de 40% du temps CPU. L´IA devient à la mode et devient un argument commercial, donc plus de CPU : -)
Q : Quid des scénarios ?
R : L´IA permet de générer des scénarios simplistes à la "Arlequin", ou comme ceux des Sitcom : -).
Il est très difficile de faire mieux. L´"inspiration" n´a pas été modélisée... : -)
Q : Quid de l´apprentissage par renforcement ?
R : En gros, les relations sont précodées et on renforce les poids des actions qui sont les plus " rentables ". On peut dire qu´avoir un nombre de choix restreint favorise la réalisation des IAs. Ex :
- si une action est notée "bien", l´action est valorisée.
- si l´action est notée "mauvaise", l´action est dévalorisée
Ex. : un bot géré par l´IA a faim. Il décide manger une pomme. Si elle est mûre, il gagne en points de vie, si elle est verte, il ne gagne rien, voire perds des points de vie. Ainsi, il est capable d´apprendre seul à se nourrir.
Q : L´IA ne causerait pas un problème : Game-designers versus Programmeurs ?
R : L´utilisation de " boite noire " n´est pas toujours très intéressante, et le game-design peut s´en ressentir. La solution est l´intégration de l´IA le plus tôt possible dans le processus de developpement et une claire définition de ses fonctionnalités.
Q : Que faites vous chezNevrax ?
R : On utilise l´IA principalement pour les petits animaux, donc les animations de décors. Ainsi que pour les villageois, pour donner de la vie.
Q : Ne pourrait on pas distinguer une IA individuelle et une IA communautaire ?
R : C´est tout le problème des comportements de group ( voir Craig Reynolds et ses Boids) et de l´élaboration de stratégies en commun. C´est souvent assez délicat.
Q : Que peut-on dire des aspects prédictifs et de l´anticipation ?
R : Par exemple, dans Conflict Zone, on peut dire qu´il y a un comportement prédictif du fait de l´apprentissage et de la déduction. Dans Black& ( voir le PostMortem) cela n´as pas été implémenté, au grand désespoir des codeurs : -)