TESCS : IA de Morrowind

De Wiwiki
Révision datée du 21 septembre 2009 à 14:15 par Abg (discussion | contributions)
Aller à la navigation Aller à la recherche

Généralités sur l'Intelligence Artificielle du jeu

Page suivante : Le package wander

Le terme d'IA, Intelligence Artificielle, appliqué aux jeux vidéos est un peu une tromperie sur la marchandise, née du buzz commercial entretenu par les éditeurs. Bethesda nous a refait le coup à l'occasion du lancement d'Oblivion avec sa prétendue « IA radiant » que je soupçonne de n'être qu'une amélioration rapide du code source de Morrowind (variables « désir » supplémentaires, capacité à franchir les loaddoors, généralisation des pathgrids...)
La véritable IA reste un Saint Graal pour laboratoires d'informatique, surtout si l'on retient le concept d'IA forte ou « IA consciente ».

Dans le cas de Morrowind, c'est beaucoup plus simpliste. Que le jeu soit un peu vieillot n'excuse pas le fait que Bethesda ait manifestement négligé cet aspect. D'autres à la même époque faisaient déjà bien mieux : Pour approfondir ce thème voyez par exemple cet article : Beaux mais cons : L'IA des jeux vidéo critiquée

De ça je retiens en fait que ce qu'on appelle IA de jeu vidéo est principalement un voile de fumée destiné à donner l'impression que les acteurs (Personnages Non Joueurs et Créatures) font preuve d'autonomie et ont conscience de leur environnement. Dans Morrowind, le voile de fumée est hélas facile à percer et c'est malheureusement lorsque le joueur prend conscience qu'il n'a affaire qu'à des pantins de pixels que le jeu commence à sentir le moisi. Je me souviens avec nostalgie de mes premières parties lorsque je craignais que l'Ordonnateur fâché à Vivec ne viennent me relancer à Seyda Nihyn, lorsque je flippais à l'idée que ce Drémora apparu dans mon dos lors de mon premier pillage de sanctuaire ne continue la poursuite jusque dans le marais voisin...

Les mécanismes de l'IA de Morrowind

Elle repose essentiellement sur :

  • Beaucoup de hasard : les animations « idle » et les errances des PNJs en mode AIWander participent à l'impression d'IA.
  • Une « feature » d'animation simple mais efficace : le « suivi de tête »
  • Un pathfinding de shadok : plus ça rate, plus ça a des chances de réussir (et de fait, ça finit parfois par passer : merci à l'imprécision des animations et aux boîtes de collision façon savonnette). En réalité, il n'y a pathfinding que dans les cells dotées de pathgrids. En dehors de ces pathgrids parcimonieusement mis en place par Bethesda, les acteurs se déplacent en ligne droite vers leur objectif du moment, d'où tout ces blocages ridicules derrière le premier objet avec collision sur leur chemin...
  • Un cas particulier à ma connaissance unique : la classe « guard » et sa capacité pré-cablée à cibler les créatures en phase d'attaque.
  • Quelques routines pré-cablées que l'on peut attribuer aux acteurs :
    • Wander : fait semblant d'être à tes propres affaires
    • Follow : Suivez-moi cher ami
    • Escort : Passez devant cher ami
    • Travel : Va voir là-bas si j'y suis !
    • Activate : Va « activer » ce truc. Ce dernier package est très difficile à utiliser correctement.

S'y ajoute le mode combat ou AIPursue...

  • Une série de variables « désir » :
    • Fight : désir de taper le PJ
    • Flee : désir de se tirer le plus loin possible d'un adversaire
    • Alarm : désir de dénoncer les crimes et de les venger
    • Hello : désir de dire bonjour au PJ quand il s'approche

Ces variables sont ajustables individuellement pour chaque acteur. Hélas bien peu de moddeurs (y compris chez Bethesda) ont fait l'effort de s'y intéresser. Je tâcherai d'expliquer ailleurs ce qu'on peut en tirer...

  • Quelques constantes : les « GameSettings » ou GMSTs tel que fAIFleeHealthMult. Inventaire à dresser...


Par un calcul simple qui fait entrer en lice ces valeurs et la disposition du PNJ à l'égard du PJ le jeu détermine les seuls véritables choix de l'acteur (avec les valeurs par défaut, ça se résume à décider si l'acteur va attaquer le PJ et ses alliés à vue ou faire preuve d'indifférence à son égard)
L'IA est aussi largement bridée par le manque d'animation pour représenter les activités des acteurs. Parce qu'il n'y a pas d'animation pour représenter un PNJ exerçant sa profession, on ne verra jamais par exemple un enchanteur PNJ pratiquer un enchantement...

Les dialogues participent aussi à l'impression d'IA. On sait que ceux de Morrowind reposent sur une énorme base de données. Faire en sorte que les acteurs semblent intelligents nécessite de multiplier les répliques et les filtrages conditionnant leur apparition.

Pour revenir à l'IA « hors dialogues textuels », elle est totalement centrée sur le PJ qui est le seul capable d'apporter la modification d'environnement capable de faire réagir les acteurs (par une attaque, un crime ou sa simple apparition dans le champs visuel de l'acteur...) Les acteurs de Morrowind sont totalement autistes les uns envers les autres. Je proposerai plus loin une technique pour « casser » cet autisme en dupant l'IA (extension du « voile de fumée »). Pour faire bref en attendant un tutoriel plus complet, c'est la technique qui permet à Abot d'instaurer un semblant d'éco-système dans ses mods « Vie Aquatique » et « Où vont les oiseaux ? »

Après cette critique en règle de l'IA de Morrowind (et des jeux de rôle vidéo en général), les tutoriaux suivants vous donneront quelques ficelles pour en tirer le meilleur parti possible.

Page suivante : Le package wander