Prise de décision dans les shooters

download Prise de décision dans les  shooters

If you can't read please download the document

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

  • Les systmes de jeux deviennent de plus en plus complexes, ncessitant que lIntelligence Artificielle progresse elle aussi en parallle.

    Dans ce contexte, nous avons implment le comportement de PNJ (Personnages Non Joueurs) dans un jeu de type shooter grce un planificateur.

  • Quest-ce quun shooter ?

  • Concernant la prise de dcisionLIA caractrise donc toute prise de dcision dun ou plusieurs personnages dans un jeu, or, le but de lIA dans un jeu vido est de donner lillusion dun comportement intelligent.

    Cest pourquoi nous sommes pass dune FSM (machine tats finis) un planificateur.

  • Organisation du travail

    PathfindingSandrine B. & Romain A.PlanificateurCoralie G. & Romain R.Modlisation dans le jeuCoralie G, Sandrine B., Romain A. & Romain R.

  • Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusionCharger lenvironnement de jeu

    Construire lintelligence des personnages

    Obtenir un rendu attirant et simple

    Garder un droulement fluide du programme

    Arriver des temps de chargement rapide

  • Le pathfinding cest quoi?Trouver un chemin entre deux points dans un environnement, tout cela en respectant les contraintes (environnementales, temps limite, contraintes de ressources, )Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Pathfinding existant dj dans UT2004 : Aucune interprtation de lenvironnement 3D entourant les PNJ

    Systme de nuds formant un rseau

    Code couleur utilis pour dcider de la pertinence dun cheminCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Pathfinding ralis par nos soins : Cration de nos propres nuds

    Rajout de poids

    Algorithme de recherche : A*Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Choix de lalgorithme :De nombreux algorithmes existent (Dijkstra, Best-First-Search, A*, )

    Actuellement, on se sert principalement de A* dans la majorit des jeux vidosCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Avantages de A* Garantie dobtenir le chemin le plus court (comme lalgorithme de Dijkstra)Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Avantages de A* Cot diminu laide dune heuristique (comme lalgorithme Best-First-Search)Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Droulement de lalgorithme A*Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Lalgorithme :Sommet source (S)Sommet destination (D)Liste des sommets explorer (E) : sommet source SListe des sommets visits (V) : vide

    Tant que (la liste E est non vide) et (D nest pas dans E) FaireRcuprer le sommet X de cot total F minimumAjouter X la liste VAjouter les successeurs de X (non dj visits) la liste E en valuant leur cot total F et en identifiant leur prdcesseur.

    Si (un successeur est dj prsent dans E) et (nouveau cot est infrieur lancien) alorsChanger son cot totalChanger son prdcesseurFin SiFin Tant que

    Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Quest-ce que la planification ? Planifier = Dcider dun plan

    Simulation dun grand nombre de combinaisons dactions possibles

    Recherche dans un graphe dtats

    Comportement du PNJ : Orient-ButCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Quelques exemples : Pathfinder, le robot de la NASA Laroport OHare de Chicago F.E.A.R et NOLF2, dvelopps par MonolithCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • En bref :Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Quelques concepts :Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • tat et environnement :Un PNJ opre avec des senseurs le renseignant sur :

    Son tat interne

    Ltat de lenvironnement qui est connu partiellement, dynamique et parfois mme hostileCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Parcours du graphe dtats : Recherche arrire dans le graphe dtats

    Algorithme choisi : A* (o lheuristique correspond au nombre de clauses qui reste satisfaire)Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Avantages :Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Dans notre projet : 6 buts

    une dizaine dactions

    Nos PNJ ont un comportement relativement satisfaisant : ils se battent les uns contre les autres tout en pensant se soigner, changer darme, Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Dans un projet professionnel :Dans NOLF2 (No One Lives Forever 2), FPS bas sur lespionnage, il y a environ :

    une vingtaine de buts

    une cinquantaine dactions

    Cela suffit pour avoir un comportement raliste.Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Quest-ce que la rutilisabilit ? Entit rutilisable = Entit ventuellement extensible, ventuellement adaptable, pouvant tre rutilise dans diffrents contextes.

    Nous avons donc prvu la rutilisabilit du planificateur pour dautres types de jeux (RPG, jeu de course, etc.Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Pourquoi ?Au cours de ce projet, il a t ncessaire de :

    Rcrire une partie du code existant ou crer des classes proches de celles existantes (ex : Pathnodes)

    Remonter certains lments un plus haut niveauCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Comment ? Design Pattern : MdiateurCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Dans notre projet :Le planificateur se sert dAction et de Goal qui, dans notre cas, sont respectivement des sous-classes de AIAction et AIGoalCahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Configuration :Toute la configuration se fait laide dUnrealEd (diteur de map dUnreal Tournament)Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Se mettre couvert :Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Obtenir une meilleure arme et se soigner :Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Pathfinding :Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion

  • Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion Problmes rencontrs : Limit du fait de prendre un moteur de jeu existant

    Manque de source sur lIA dans Unreal malgr une importante communaut

  • Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion Apports : Travail en groupe sur un projet important

    Dcouverte et apprentissage de lUnrealScript

    Matrise dalgorithmes propres lIA (A*)

    tude dun planificateur

  • Cahier des chargesPathfindingPlanificateurEntit rutilisableDmonstrationConclusion Perspectives : Intelligence collective

    Apprentissage

    Implmentation de plus dAction et But pour augmenter le ralisme

  • *************************************