Prise de décision dans les shooters TER 08/09 Sandrine Buendia

Slides:



Advertisements
Présentations similaires
Réalisation d’un Framework pour la création de jeux d'arcades
Advertisements

La théorie du monde est petit
Etapes liées au lancement du produit
Classification et prédiction
Structures de données et complexité
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
Sujet BL1 : Simulateur de comportement réactif Bernard Clément Barelli Nicolas Maitrehut Loïc Ould Sidina Mahi Encadrant : Mr Michel Buffa.
Les décisions Pourquoi faut-il prendre des décisions?
UML (Unified Modeling Langage)
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
« Small World » Modélisation
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
MRP, MRP II, ERP : Finalités et particularités de chacun.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Apprentissage du jeu de morpion
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Quest-ce que la planification ? Planifier = Décider dun plan À partir dune base de connaissances sur les opérateurs possibles, on simule un grand nombre.
Principes de la technologie orientée objets
IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace d’états Froduald Kabanza Département d’informatique.
Algorithmique et Programmation
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Optimisation et Complexité
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,
Algorithmique et Programmation
LES ARBRES IUP 2 Génie Informatique
Recherche de chemins de coût minimal avec l’algorithme A
Algorithme de Bellman-Ford
Structures de données IFT-2000
Structures de données IFT-2000
IFT Complexité et NP-complétude
CSI 4506: Introduction à l’intelligence artificielle
Algorithmes d ’approximation
Partie II Sémantique.
Simon Langevin Mathieu Poisson
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
GPA750 – Gestion de Projets
Pour le chemin le plus court pour tous les couples
Ingénierie Système en SysML appliquée à la rédaction du cahier des charges Y. Le Gallou Séminaire académique STI2D - Calais – 1er avril 2014.
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.

Dév. d’application interactive III Recherche de chemin.
GRAPHES EN INFORMATIQUE. INTRODUCTION Les objets mathématiques appelés graphes apparaissent dans de nombreux domaines comme les mathématiques, la biologie,
Tutorat 7 - Introduction au Routage et OSPF
Algorithmes Branch & Bound
LE FLOT MAXIMAL et LA COUPE MINIMALE
LEMKE LaurentBITSCH José TERRIER VincentLAALA Yoann MONTAVONT GuillaumeBRIBI Mohamed 1.
Réalisé par: BOUMSISS Hassnae OUED Zahra TABIT Youssef EZZIANI Hamza
ETNA – 1ème année Guillaume Belmas –
Les réseaux de neurones à réservoir en traitement d’images
Intelligence Artificielle
CSI 4506: Introduction à l’Intelligence Artificielle
Qu’est-ce que la planification ? Planifier = Décider d’un plan À partir d’une base de connaissances sur les opérateurs possibles, on simule un grand nombre.
TIPE Les dames chinoises
Du discours aux modèles… Une tentative d’articulation
L'unité centrale est composé en générale de :
LE CDCF Ce document charnière entre l’analyse du besoin et la conception du produit va permettre de faire émerger les éléments fonctionnels nécessaires.
Poly Defense Soutenance de Projet de programmation oriEntee objet
Le Jeu et l’intelligence artificielle
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,
© Copyright-CNP-EFII-Paris-1998
31/05/2007Projet Master 11 Présentation ludique de la recherche opérationnelle à la fête de la science Année universitaire 2006/2007 Sylvain FIX Julien.
Projet de Système Répartis. Contexte: Choix techniques:
Réseaux de Petri et suivi du joueur
Développement du jeu Ricochet Robots pour Android
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Réaliser un projet tuteuré!!!!!
Transcription de la présentation:

Prise de décision dans les shooters TER 08/09 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. Dans ce contexte, nous avons implémenté le comportement de PNJ (Personnages Non Joueurs) dans un jeu de type shooter grâce à un planificateur.

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

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.

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.

Plan Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Cahier des charges 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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Pathfinding

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, …) Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Pathfinding Pathfinding réalisé par nos soins : Création de nos propres nœuds Rajout de poids Algorithme de recherche : A* Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Pathfinding Avantages de A* Garantie d’obtenir le chemin le plus court (comme l’algorithme de Dijkstra) Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Pathfinding Avantages de A* Coût diminué à l’aide d’une heuristique (comme l’algorithme Best-First-Search) Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

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) Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Pathfinding L’algorithme : Sommet source (S) Sommet destination (D) Liste des sommets à explorer (E) : sommet source S Liste des sommets visités (V) : vide Tant que (la liste E est non vide) et (D n’est pas dans E) Faire Récupérer le sommet X de coût total F minimum Ajouter X à la liste V Ajouter 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 total Changer son prédécesseur Fin Si Fin Tant que Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur

Planificateur 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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur 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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur En bref : Cahier des charges Pathfinding Planificateur Encore une autre action Une autre action Une action Un comportement permettant d’atteindre un objectif Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur Quelques concepts : Cahier des charges Pathfinding 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. Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur É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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur 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) Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur Avantages : Cahier des charges Pathfinding Planificateur Au niveau de l’intelligence du personnage Comportements complexes, non prévisibles et non répétitifs Adaptation dynamique Personnages plus crédibles Au niveau de la programmation Pas obligé de penser à tous les cas de figure possible Actions et buts plus courts et plus faciles à écrire Totalement réutilisable Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur 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, … Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Planificateur 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. Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Entité réutilisable

Entité réutilisable 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. Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Entité réutilisable 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 Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Entité réutilisable Comment ? Design Pattern : Médiateur Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Entité réutilisable Dans notre projet : Le planificateur se sert d’Action et de Goal qui, dans notre cas, sont respectivement des sous-classes de AIAction et AIGoal Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion

Conclusion

Conclusion Cahier des charges Pathfinding Planificateur Entité réutilisable Conclusion