html5-img
1 / 41

Prise de décision dans les shooters

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 .

lesa
Download Presentation

Prise de décision dans les shooters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prise de décision dans les shooters Sandrine Buendia Coralie Gallien Romain Almes Romain Richard TER 08/09

  2. 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.

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

  4. 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.

  5. Introduction • Organisation du travail

  6. Plan Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

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

  8. Pathfinding

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

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

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

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

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

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

  15. Pathfinding • Déroulement de l’algorithme A* Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

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

  17. Planificateur

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

  19. Planificateur • Quelques exemples : • Pathfinder, le robot de la NASA • L’aéroport O’Harede Chicago • F.E.A.R et NOLF2, développés par Monolith Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  20. Planificateur • En bref : Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  21. Planificateur • Quelques concepts : Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

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

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

  24. Planificateur • Avantages : Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

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

  26. Planificateur • Dans un projet professionnel : • Dans NOLF2 (No One LivesForever 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 Démonstration Conclusion

  27. Entité réutilisable

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

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

  30. Entité réutilisable • Comment ? • Design Pattern : Médiateur Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  31. 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 AIActionet AIGoal Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  32. Démonstration

  33. Démonstration • Configuration : Toute la configuration se fait à l’aide d’UnrealEd(éditeur de map d’UnrealTournament) Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  34. Démonstration • Se mettre à couvert : Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  35. Démonstration • Obtenir une meilleure arme et se soigner : Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  36. Démonstration • Pathfinding : Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

  37. Conclusion

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

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

  40. Conclusion • Perspectives : • Intelligence collective • Apprentissage • Implémentation de plus d’Action et But pour augmenter le réalisme Cahier des charges Pathfinding Planificateur Entité réutilisable Démonstration Conclusion

More Related