les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lintelligence...

34
Prise de décision dans les shooters TER 08/09 Sandrine Buendi Coralie Gallie Romain Alme Romain Richar

Upload: maddie-constant

Post on 03-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Prise de décisiondans les shooters

TER 08/09

Sandrine BuendiaCoralie GallienRomain Almes

Romain Richard

Page 2: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Introduction

Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que l’Intelligence Artificielle progresse elle aussi en parallèle.

Dans ce contexte, nous avons implémenté le comportement de PNJ (Personnages Non Joueurs) dans un jeu de type shooter grâce à un planificateur.

Page 3: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Introduction

• Qu’est-ce qu’un « shooter » ?

Page 4: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Introduction

• Concernant la prise de décision

L’IA caractérise donc toute prise de décision d’un ou plusieurs personnages dans un jeu, or, le but de l’IA dans un jeu vidéo est de donner l’illusion d’un comportement intelligent.

C’est pourquoi nous sommes passé d’une FSM (machine à états finis) à un planificateur.

Page 5: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Introduction

• Organisation du travail

Pathfinding Sandrine B. & Romain A.

Planificateur Coralie G. & Romain R.

Modélisation dans le jeu Coralie G, Sandrine B., Romain A. & Romain R.

Page 6: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Plan

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

Page 7: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Cahier des charges

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

Charger l’environnement de jeu

Construire l’intelligence des personnages

Obtenir un rendu attirant et simple

Garder un déroulement fluide du programme

Arriver à des temps de chargement rapide

Page 8: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

Page 9: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Le pathfinding c’est quoi?

Trouver un chemin entre deux points dans un environnement, tout cela en respectant les contraintes (environnementales, temps limite, contraintes de ressources, …)

Page 10: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Pathfinding existant déjà dans UT2004 :

Aucune interprétation de l’environnement 3D entourant les PNJ

Système de nœuds formant un réseau

Code couleur utilisé pour décider de la pertinence d’un chemin

Page 11: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Pathfinding réalisé par nos soins :

Création de nos propres nœuds

Rajout de poids

Algorithme de recherche : A*

Page 12: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Choix de l’algorithme :

De nombreux algorithmes existent (Dijkstra, Best-First-Search, A*, …)

Actuellement, on se sert principalement de A* dans la majorité des jeux vidéos

Page 13: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Avantages de A*

Garantie d’obtenir le chemin le plus court (comme l’algorithme de Dijkstra)

Page 14: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Avantages de A*

Coût diminué à l’aide d’une heuristique (comme l’algorithme Best-First-Search)

Page 15: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Déroulement de l’algorithme A*Étape 1 :Calcul de

g() et h() sur le nœud

courant et ajout à la

liste (openlist)

Étape 2 :Retrait du

nœud dans la liste et ajout de tous les voisins

possibles.Si il n’y en a pas, aucun

chemin possible.

Étape 3 :Calcul du coût pour les

voisins et ajout du meilleur dans une

seconde liste (closedlist)

Page 16: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Pathfinding

• L’algorithme : Sommet source (S)Sommet destination (D)Liste des sommets à explorer (E) : sommet source SListe des sommets visités (V) : vide

Tant que (la liste E est non vide) et (D n’est pas dans E) FaireRécupérer le sommet X de coût total F minimumAjouter X à la liste VAjouter les successeurs de X (non déjà visités) à la liste E en évaluant leur coût total F et en identifiant leur prédécesseur.

Si (un successeur est déjà présent dans E) et (nouveau coût est inférieur à l’ancien) alors

Changer son coût totalChanger son prédécesseur

Fin SiFin Tant que

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

Page 17: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Planificateur

Page 18: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Qu’est-ce que la planification ?

Planifier = Décider d’un plan

Simulation d’un grand nombre de combinaisons d’actions possibles

Recherche dans un graphe d’états

Comportement du PNJ : Orienté-But

Planificateur

Page 19: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Quelques exemples :

Pathfinder, le robot de la NASA L’aéroport O’Hare de Chicago F.E.A.R et NOLF2, développés par Monolith

Planificateur

Page 20: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

Planificateur

Un comportement permettant d’atteindre un objectif

Une action

Une autre action

Encore une

autre action

• En bref :

Page 21: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

Planificateur

• Quelques concepts :

Action •Étape simple, souvent atomique, contrôlant le personnage pour faire quelque chose.•Chaque action est définie par ses préconditions et ses postconditions (effets).

But •Une condition, ou un ensemble de condition, qu’un personnage veut satisfaire.

Plan •Un plan est une séquence d’actions.•On part d’un état initial pour arriver à un état final : le but.

Page 22: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• État et environnement :

Un PNJ opère avec des senseurs le renseignant sur :

Son état interne

L’état de l’environnement qui est connu partiellement, dynamique et parfois même hostile

Planificateur

Page 23: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Parcours du graphe d’états :

Recherche arrière dans le graphe d’états

Algorithme choisi : A* (où l’heuristique correspond au nombre de clauses qui reste à satisfaire)

Planificateur

Page 24: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Avantages :

Planificateur

•Comportements complexes, non prévisibles et non répétitifs•Adaptation dynamique•Personnages plus crédibles

Au niveau de l’intelligence

du personnage

•Pas obligé de penser à tous les cas de figure possible•Actions et buts plus courts et plus faciles à écrire•Totalement réutilisable

Au niveau de la

programmation

Page 25: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Dans notre projet :

6 buts

une dizaine d’actions

Nos PNJ ont un comportement relativement satisfaisant : ils se battent les uns contre les autres tout en pensant à se soigner, changer d’arme, …

Planificateur

Page 26: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Dans un projet professionnel :

Dans NOLF2 (No One Lives Forever 2), FPS basé sur l’espionnage, il y a environ :

une vingtaine de buts

une cinquantaine d’actions

Cela suffit pour avoir un comportement réaliste.

Planificateur

Page 27: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Entité réutilisable

Page 28: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Qu’est-ce que la réutilisabilité ?

Entité réutilisable = Entité éventuellement extensible, éventuellement adaptable, pouvant être réutilisée dans différents contextes.

Nous avons donc prévu la réutilisabilité du planificateur pour d’autres types de jeux (RPG, jeu de course, etc.

Entité réutilisable

Page 29: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Pourquoi ?

Au cours de ce projet, il a été nécessaire de :

Réécrire une partie du code existant ou créer des classes proches de celles existantes (ex : Pathnodes)

Remonter certains éléments à un plus haut niveau

Entité réutilisable

Page 30: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Comment ?

Design Pattern : Médiateur

Entité réutilisable

Page 31: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

• Dans notre projet :

Entité réutilisable

Le planificateur se sert d’Action et de Goal qui, dans notre cas, sont respectivement des sous-classes de AIAction et AIGoal

Page 32: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

Conclusion

Page 33: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. Conclusion

Conclusion

Page 34: Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,