[DEV BLOG] Il n'y a pas de "i", dans IA
le 18/12/2008
Le nouveau blog de développement de F.E.A.R. 2: Project Origin nous détaille l'un des points forts du jeu : l'IA.
"Pour ceux qui voient l’industrie du jeu vidéo de l’extérieur, les Ingénieurs Software bellâtres que nous sommes livrent aux merveilleux Designers des soldats totalement fonctionnels, des bêtes de tacticiens à intégrer à leurs niveaux. Après avoir fêté ça à l’aide de quelques coupes de champagne, nous regardons les playtesteurs se faire démonter par nos guerriers ultra-intelligents en nous gaussant.

Malheureusement, ce joli petit scénario est faux. Dans la réalité, il y a beaucoup de faux-départs, d’erreurs de conception, d’efforts et un énorme travail d’équipe.
En tant qu’Ingénieur IA, mon travail est de fournir un ensemble intéressant de comportements et d’outils aux Designers. Le travail du Designer est de diriger l’IA de façon à ce qu’elle utilise les comportements qui seront les plus adaptés pour chaque combat. Les Animateurs et les Characters Artists (dédiés aux personnages) vont quant à eux faire apparaître les actions de l’IA à l’écran à travers de nombreux mouvements, et les Sound Designers (qui s’occupent des sons) vont compléter le tableau en créant les sons qui vont avec chaque action. Si un seul de ces éléments manque, c’est l’ensemble de l’illusion qu’a le joueur de se battre contre des ennemis intelligents qui est rompue.
Sans le travail du Designer, meme le plus intelligent des personnages « IA » restera sur place en tyrant sans cesse sur le joueur. Mais alors, « De quels outils le Designer dispose-t-il pour rendre notre ami “IA” un peu plus véloce ? ». Bonne question, merci de l’avoir posée.
Le NavMesh
Ah, le fameux NavMesh (ou Navigation Mesh). Le NavMesh représente les endroits par où le personnage “IA” peut traverser les environnements tout en lui donnant des indications pour les traverser.
Le designer va placer ces mesh (mailles, en français) invisibles à chaque endroit où il veut que le personnage “IA” se déplace. Une des caractéristiques des combats de F.E.A.R. sont les obstacles que vont devoir contourner ou traverser les personnages « IA » d’une zone de couverture à l’autre quand ils vont devoir se déplacer. Par exemple, après avoir vu son camarade s’en prendre deux dans la poitrine, un soldat Armacham peut plonger à travers une fenêtre ouverte pour prendre le joueur à revers.
Cette action est accomplie par nos Animateurs qui créent une palette d’animations qui peuvent ensuite être utilisées par nos Designers. Le Designer va alors marquer une portion du NavMesh pour indiquer à l’IA qu’elle doit jouer une certaine animation (ici, une animation « plonger à travers la vitre») pour traverser cette zone. Il est intéressant de noter que le Designer n’oblige pas l’IA à prendre ce chemin unique. Notre IA sélectionne le chemin uniquement pour atteindre la meilleure position tactique. Si le chemin qui en résulte fait « cinématique » et « cool », très bien ; Je dirai que c’est grâce à moi. Sinon, il faudra tout reprendre à zéro avec le Designer, ou l’Animateur, ou les deux.
Segments
Très tôt dans le développement de F.E.A.R. 2, le département Design a voulu créer un nouveau type d’IA pour affronter le joueur de toutes les directions. L’Abomination, que vous commencez à connaître, a nécessité une nouvelle technologie, de nouvelles animations, et une nouvelle façon de concevoir les affrontements. Pour que l’Abomination puisse se déplacer dans son environnement comme l’avaient imagine l’équipe Design, les Ingénieurs ont dû travailler très étroitement avec les Animateurs pour developer un système qui permet au personnage de sauter d’un point arbitraire et de traverser des distances arbitraries. Ce nouveau système s’appelle « Segments ».
Les Segments sont une série de points et de liens qui peuvent (ou pas) être attachés aux NavMesh. L’IA est libre de créer des chemins en utilisant ces segments exactement comme ils le feraient avec un NavMesh normal. Mais contrairement à un polygone NavMesh (pensez à un triangle), où l’IA peut bouger à n’importe quel point du polygone, une IA qui utilise un segment peut seulement exister sur des points uniques. Cependant, ces points peuvent se trouver n’importe où dans l’environnement, murs, plafonds… Cela permet au Design de donner une plus grande liberté d’action dans l’environnement, et pas seulement une mobilité au sol.
Le Designer place ses segments partout dans un espace, particulièrement dans les zones qui surprendront le joueur, et il travaille avec l’Animateur pour s’assurer que l’IA aura un bel aspect quand elle sautera de segment en segment. Le résultat peut être intense aussi bien pour le joueur que pour le Designer. Pour le joueur, le combat se déroule à 360 degrés autour de lui. Tandis que le joueur se focalise sur une Abomination à moitié nue face à lui, son compatriote aura eu le temps de sauter du sol jusqu’au plafond, puis sur le mur à la droite du joueur pour finir juste derrière lui, prêt à bondir.
Pour le Designer, la complexité pour gérer tous les segments et les liens peut être décourageante. Les Animateurs stressent à l’idée de devoir créer des animations crédibles en dépit des mouvements fantastiques que fait l’IA. Chacun des départements a dû faire avec le système en cours de conception en attendant que l’équipe d’Ingénieurs n’en répare les bugs. Je crois que quiconque aura battu une Abomination appréciera que l’équipe ait consommé autant de cachets d’aspirine.
Couverture
Pour certains personnages, en particulier ceux qui ne sont pas spécialement fufutes, un bon NavMesh est largement suffisant. Bien sûr, les Abominations sus-nommées, ou un voyou de base de Condemned ont besoin d’un peu plus pour savoir comment se déplacer jusqu’au joueur et l’attaquer pour obtenir une expérience de jeu satisfaisante. Mais pour les personnages plus tactiques, nous utilisons des indications supplémentaires sur l’environnement. Nous appellons ces indication les « nodes ».
L’équipe d’Ingénieurs a fourni plusieurs nodes aux Designers : Embuscade, Se Cacher, Patrouiller, etc. mais le plus abondant est le Node “Se couvrir”. Ce node définit un point où un soldat peut se rendre pour attaquer le joueur tout en restant raisonnablement protégé d’un tir ennemi. Les Animateurs et les Designers travaillent ensemble pour créer une suite d’options pour que le joueur puisse se couvrir, que ce soit jeter un œil de derrière un bureau, ou se pencher de derrière un pilier. Lors de la conception d’un affrontement, le Designer et le World Artist (qui s’occupe de la conception architecturale des niveaux) choisissent les meilleures options de couverture en fonction de l’endroit, et parfois essayent d’ajouter de nouveaux éléments (combien de voitures pouvons-nous ajouter à cette scène ?) tout en restant cohérent.
Des nodes bien placés, combinés avec les comportements fournis par les Ingénieurs IA, est ce qui fait que notre IA est chouette. Vous pourriez penser qu’il suffit de remplir chaque pièce de nodes de couverture derrière chaque débris, chaque bureau ou colonne. Eh bien non. Souvent, et malgré le travail des Ingénieurs IA, cela conduira les soldats à se comporter de façon plus bête qu’ils ne sont, car ils auront TROP DE CHOIX ! Concevoir ces affrontements est un art qui implique de nombreuses considérations, que je ne prétend pas toutes connaître. Je sais simplement que les Designers se placent du point de vue du joueur : d’où vient l’IA, où le joueur sera amené à se déplacer, etc. L’emplacement de ces nodes détermine comment l’IA va réagir aux actions du joueur dans l’espace.
Il y a, bien sûr, bien plus à faire. Tout est important. Mais je fatigue d’écrire à quel point les autres sont géniaux. La prochaine fois j’écrirai pour décrire à quel point les Ingénieurs IA sont beaux."
Dernières actualités
Derniers messages
- Grand Concours F.E.A.R 2 : Reborn !
- [SPOILER] Le Point Man
- Bloqué dans la mission 13 : APPROCHE
- bloquez par le colonel
- Tous les forums F.E.A.R. 2














PROJECT ORIGIN and all related characters and elements are trademarks of and © Warner Bros. Entertainment Inc. WB GAMES LOGO, WB SHIELD: ™ & © Warner Bros. Entertainment Inc.
(s08)