Bonsoir à toutes et à tous.

Dans mon article précédent (http://www.gameblog.fr/blogs/eska/p_14986_histoires-d-ia-a-vous) où je vous demandais de me parler de vos meilleurs / pires moments avec une IA dans un jeu vidéo, une problématique est revenue très souvent...

Beaucoup de personnes  ne semblaient pas vraiment comprendre la différence entre IA et script. Est-ce que ce sont 2 façons complètement différentes d'avoir des IA dans un jeu ? Sont-elles complémentaires ? Peut-on les manger ?

Bref, que de légitimes questions à ce sujet bien loin d'être évident. J'avais donc répondu en commentaire de ce même article. Mais il se trouve que la réponse était assez longue et le sujet étant des plus intéressants, je me suis dit que ça valait bien un article séparé.

Voici donc ce que j'écrivais concernant la différenciation IA / script :

Je crois qu'il y a un amalgame général entre IA et script. En fait ce
n'est pas aussi simple que "je choisis l'un ou l'autre pour mon jeu", ce sont 2 façons de faire complémentaires.

 

Si votre codage se rapporte à votre plumage...

Je m'explique : lorsque l'on créé une IA on commence par la coder. Et
pour cela on code des arbres de comportements (comment l'IA va-t-elle
réagir face à telle situation rencontrée : une grenade arrive à ses
pieds : que doit-elle faire ? / un ennemi lui tire dessus : que
doit-elle faire ? etc...
). Ce code remplit donc la partie "systémique"
de l'IA, à savoir que je peux prendre cette IA, la placer n'importe où
dans mon jeu, elle se servira de son arbre de comportement pour réagir
face aux situations qu'elle rencontre.

On pourrait donc parler de cette étape "codée" comme étant la vraie partie IA d'un jeu.

 

Script this!

Mais il arrive que les Designers aient besoin qu'une IA fasse un
enchainement d'actions bien définies, et toujours le même, dans un
niveau précis.

Par exemple : je veux que mon IA aille vers la porte, joue une animation d'ouverture de porte et parle au joueur en le regardant.

Pour être sûr et certain que l'IA fasse toujours ces actions, je vais
prendre le contrôle, via un script, des actions de cette IA pour qu'elle exécute parfaitement ce que je lui demande. En gros je lui demande de
mettre son "cerveau" d'IA en veille et de suivre mes instructions à la
lettre.

C'est à ce moment que l'on parle de "script" à proprement parler.

Grâce à mon script, je vais donc faire appel à des actions définies précédemment en code dans l'ordre que je souhaite. Ici :

1 / J'utilise le comportement "aller a un point X" pour que l'IA aille près de la porte.
2 / J'utilise le comportement "jouer l'animation X" pour que l'IA fasse semblant d'ouvrir la porte.
3 / J'utilise le comportement "regarder vers X" pour que l'IA regarde le joueur.
4 / J'utilise un son de dialogue pour que l'IA "parle".

 

So...

En résumé, le script est une couche additionnelle à l'IA qui souvent
sert aux Designers à la contrôler, notamment pour les cutscenes ou des
évènements bien précis d'un niveau. Mais même pendant ce script, l'IA
"codée" est toujours présente en fond et prête à reprendre ses activités dès que le Designer lui "rebranchera le cerveau" ;)

Voilou, j'espère avoir été clair (même si mon cerveau est à moitié éteint ce soir ^^).

 

Buenas tardes,

 

David Grivel