Prise de décision dans les shooters

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

description

Prise de décision dans les shooters. Sandrine Buendia Coralie Gallien Romain Almes Romain Richard. TER 08/09. Introduction. Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que l’Intelligence Artificielle progresse elle aussi en parallèle . - PowerPoint PPT Presentation

Transcript of Prise de décision dans les shooters

Page 1: Prise de décision dans les  shooters

Prise de décisiondans les shooters

TER 08/09Sandrine Buendia

Coralie GallienRomain Almes

Romain Richard

Page 2: Prise de décision dans les  shooters

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: Prise de décision dans les  shooters

Introduction

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

Page 4: Prise de décision dans les  shooters

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: Prise de décision dans les  shooters

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: Prise de décision dans les  shooters

Plan

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

Page 7: Prise de décision dans les  shooters

Cahier des charges

I. Cahier des chargesII. PathfindingIII. PlanificateurIV. Entité réutilisableV. DémonstrationVI. 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: Prise de décision dans les  shooters

Pathfinding

Page 9: Prise de décision dans les  shooters

Pathfinding

• 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, …)

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

Page 10: Prise de décision dans les  shooters

Pathfinding

• 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

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

Page 11: Prise de décision dans les  shooters

Pathfinding

• Pathfinding réalisé par nos soins : Création de nos propres nœuds

Rajout de poids

Algorithme de recherche : A*

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

Page 12: Prise de décision dans les  shooters

Pathfinding

• 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

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

Page 13: Prise de décision dans les  shooters

Pathfinding

• Avantages de A* Garantie d’obtenir le chemin le plus court (comme l’algorithme de Dijkstra)

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

Page 14: Prise de décision dans les  shooters

Pathfinding

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

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

Page 15: Prise de décision dans les  shooters

Pathfinding

• 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)

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

Page 16: Prise de décision dans les  shooters

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. DémonstrationVI. Conclusion

Page 17: Prise de décision dans les  shooters

Planificateur

Page 18: Prise de décision dans les  shooters

• 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

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

Page 19: Prise de décision dans les  shooters

• 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

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

Page 20: Prise de décision dans les  shooters

Planificateur

Un comportement permettant d’atteindre un objectif

Une action

Une autre action

Encore une

autre action

• En bref :

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

Page 21: Prise de décision dans les  shooters

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.

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

Page 22: Prise de décision dans les  shooters

• É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

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

Page 23: Prise de décision dans les  shooters

• 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

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

Page 24: Prise de décision dans les  shooters

• 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 programmationI. Cahier des charges

II. PathfindingIII. PlanificateurIV. Entité réutilisableV. DémonstrationVI. Conclusion

Page 25: Prise de décision dans les  shooters

• 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

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

Page 26: Prise de décision dans les  shooters

• 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

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

Page 27: Prise de décision dans les  shooters

Entité réutilisable

Page 28: Prise de décision dans les  shooters

• 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

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

Page 29: Prise de décision dans les  shooters

• 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

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

Page 30: Prise de décision dans les  shooters

• Comment ? Design Pattern : Médiateur

Entité réutilisable

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

Page 31: Prise de décision dans les  shooters

• 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

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

Page 32: Prise de décision dans les  shooters

Démonstration

Page 33: Prise de décision dans les  shooters

Démonstration

• Configuration :

Toute la configuration se fait à l’aide d’UnrealEd (éditeur de map d’Unreal Tournament)

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

Page 34: Prise de décision dans les  shooters

Démonstration

• Se mettre à couvert :

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

Page 35: Prise de décision dans les  shooters

Démonstration

• Obtenir une meilleure arme et se soigner :

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

Page 36: Prise de décision dans les  shooters

Démonstration

• Pathfinding :

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

Page 37: Prise de décision dans les  shooters

Conclusion

Page 38: Prise de décision dans les  shooters

Conclusion

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

• Problèmes rencontrés : Limité du fait de prendre un moteur de jeu existant

Manque de source sur l’IA dans Unreal malgré une importante communauté

Page 39: Prise de décision dans les  shooters

Conclusion

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

• Apports : Travail en groupe sur un projet important

Découverte et apprentissage de l’UnrealScript

Maîtrise d’algorithmes propres à l’IA (A*)

Étude d’un planificateur

Page 40: Prise de décision dans les  shooters

Conclusion

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

• Perspectives : Intelligence collective

Apprentissage

Implémentation de plus d’Action et But pour augmenter le réalisme

Page 41: Prise de décision dans les  shooters