Va de la calculatrice au chatbot, en passant par :
- résolution de jeu de plateaux
- optimisation mathématique
- reconnaissance d'images
- planification de taches
- ...
S'inspire de/utilise :
- mathématiques
- logique
- biologie
- neuroscience
- psychologie
- philosophie
pacman, 1979 : 4 fantomes avec des scripts distincts
Scripts simples jusque dans le milieu 90s
Fin 90 : goldeneye, metal gear solid : ajout de la perception des autres NPC pour des scripts plus complexes
RTS (warcraft) : pathfinding
Creatures, 1997 : algorithmes génétiques et réseaux de neurones : une des IA les plus complexes même maintenant!
input (environnement / état interne)
stratégie : suite d'actions simples / synchronisation d'un groupe d'agents
prise de décision : quelle action faire maintenant en fonction de : état, environnement, état ennemi, etc
mouvements/actions (output)
agent-based AI : chaque NPC a son intelligence indépendante des autres
"God" AI : un même système calcule et envoie les commandes à tous les NPC
Besoin de :
Algorithmes : suite d'instructions relativement simples
Structure de données : choisir et arranger les données utilisées pour faire des décisions
Heuristiques : un algorithme qui donne une solution rapidement mais peu précise
Hack : n'importe quelle astuce qui rend l'IA intéressante
...mais : pas important pour ce défi !!
IA bas niveau : trouver le plus court chemin entre start et end, en évitant les obstacles
UE fait presque tout
voir A*
autres problèmes à gérer : orientation, inertie, prédiction de mouvements, formation en groupe, synchroniser animation et déplacement
Decision tree : un arbre pour trouver l'action à faire
State machine (et Hierarchical SM) : graphe avec les états possibles de l'agent et les transitions possibles entre états (animation blueprint - State Machine)
Behavior Tree (UE4) : l'arbre affiche les taches à faire
Markov Process : représente les états du jeu par des vecteurs et des événements par des matrices de transition
2 Problèmes à régler
prédiction : que va faire l'ennemi ?
décision : qu'est ce que je vais faire ?
Mode d'apprentissage
online : pendant le jeu
offline : avant le jeu, pendant le développement
Prédiction
garder l'historique des actions du joueur et trouver la séquence actuelle de l'ennemi pour déduire l'action suivante
N-grams : garde la fréquence de toutes les séquences d'actions en mémoire
Méthode générique : parameter-based
Naive Bayes Classifier
Decision tree learning
Reinforcement learning
Si dans un état donné, on a fait une action particulière et que le résultat est bon, on augmente la probabilité de faire cette action la prochaine fois, et inversement.
Neural network
voir Multi-Layer Perceptron