Behavior Tree ou Utility AI ?
Les deux peuvent être la bonne réponse. Ce qui tranche, c'est le nombre de choses que votre ennemi doit peser en même temps.
La force des arbres de comportement
Un behavior tree est lisible. Un designer peut le regarder et dire « cet ennemi vérifie d'abord la portée, puis attaque ». Le débogage est simple aussi ; on voit sur quel nœud il bloque.
Il est idéal pour du comportement séquentiel et conditionnel : ouvrir la porte, entrer, regarder autour, donner l'alerte. Dans ces cas, l'arbre prend naturellement la bonne forme.
Là où Utility AI gagne
Si l'ennemi doit peser dix choses à la fois — combien de vie, ai-je des munitions, un allié est-il proche, le joueur est-il fort — l'arbre devient vite illisible.
L'Utility AI demande à chaque action de produire un score pour l'état courant et choisit le plus élevé. Ajouter un comportement, c'est écrire une fonction de score plutôt que restructurer un arbre.
Les deux, en pratique
Sur mes projets récents, l'Utility AI prend la décision de haut niveau (« attaquer maintenant », « reculer », « se mettre à couvert ») tandis qu'un petit behavior tree exécute la manière dont cette décision se déroule.
Cette séparation prend le meilleur des deux approches : décisions souples, exécution lisible.
La troisième pièce oubliée
Quelle que soit l'architecture choisie, la crédibilité se joue sur le système de perception. Quand l'ennemi vous voit-il, quand vous entend-il, quand vous oublie-t-il ?
Une IA disposant d'une information parfaite paraît injuste, quelle que soit la structure d'arbre derrière. L'essentiel de mon temps va à la perception, pas au comportement.