←
JEU VIDEO
LEVEL 1 « SENSIBILISATION »
Notion essentielle : IA
IA
Agents
Inputs (entrées) / réception de signaux, valeurs
Outputs (sorties) / choix comportements et émission de signaux
Décision
Créer des jeux systémiques : Des comportements simples et prédictibles dans des environnements complèxes
Aller plus loin :
The Rise of Systemic Game
Créer des jeux dynamiques : Des comportements complèxes pour apporter de l'intérêt
Pathfinding
A partir d'un graph orienté, Trouver le chemin le plus court (liste de noeuds) depuis un départ vers une arrivée
Path solving - Résolution de chemin
Djikstra
A* = Djikstra optimisé
Navigation graph - Graphe de navigation
A partir d'une grille
A faire soi même
Unity NavMesh
Bibliothèque dédiée
Plusieurs techniques spécifiques
Ressources :
Algorithm explanation (A*) (en)
Comportements dynamiques
Liste de conditions
Le plus simple
Très (trop) prédictible par le joueur
comportements très basiques
Machine d'état (Finite State Machine)
Variante : Hierarchical FSM
Behaviour Tree (BT) - Arbre de comportement
Stateless - Se repose sur les données de l'environnement
Ré-évalué périodiquement (Tick)
Nœuds composite, decorator ou leaf (condition ou action)
Condition = SUCCESS, FAILURE
Action = SUCCESS, FAILURE ou RUNNING
Example:
https://github.com/codecapers/Fluent-Behaviour-Tree
Utility-based AI
Chaque action peut être représentée par un nombre normalisé (0,1) d'utilité
L'action ayant l'utilité la plus forte est choisie
Utiliser des fonctions différentes pour créer des personnalités ou stratégies (aggressif, passif, curieux, prudent, etc.)
Difficulté : calculer un score d'utilité fiable et pertinent
Planner
BT = partir de l'état pour trouver la meilleur action
Planner = partir de l'action optimale souhaitée et remonter les actions pour créer l'état
Réseau de neurone
Entrainer un agent dans un environnement d'apprentissage
Nécessite (beaucoup) d'itérations
Imprédictible, même pour le développeur