Intelligence artificielle Goldeneye 007

image

Goldeneye 007 est l'un des jeux les plus importants de l'histoire. Elle a déterminé le développement futur de toute une génération de jeux sur console et a ouvert la voie aux tireurs à la première personne sur le marché des consoles. Avancez il y a plus de 20 ans pour découvrir comment l'un des 64 jeux les plus populaires sur Nintendo a réussi à implémenter des ennemis et des amis de l'IA, à partir desquels vous pouvez apprendre quelque chose encore aujourd'hui.

À propos du jeu


Après sa sortie en 1997, GoldenEye 007 a non seulement déterminé le sort de la génération, mais a également dépassé toutes les attentes. Rare, Nintendo elle-même et même le propriétaire des droits de la franchise Bond, MGM, ne croyaient pas beaucoup à ce jeu. Sorti deux ans après la sortie du film et un an après que la console soit apparue sur le marché, il semblait voué à l'échec, mais est devenu le troisième chiffre d'affaires (huit millions d'exemplaires) pour toute la durée de vie de la plateforme, juste derrière Super Mario 64 et Mario Kart 64 . Sans oublier le fait qu'en 1998, elle a remporté Rare le prix BAFTA et le titre de développeur de l'année.


Ce jeu nous a laissé un énorme héritage: il a établi les normes à quoi s'attendre de la prochaine génération de tireurs à la première personne, en particulier dans le comportement de l'IA: personnages avec des patrouilles, ennemis demandant des renforts, civils fuyant dans la peur, navigation fluide et trouver le chemin, un riche ensemble d'animations, des propriétés dynamiques qui se produisent pendant le jeu, et bien plus encore. Elle a non seulement établi les normes de génération, mais a également influencé les jeux qui l'ont dépassée - Half Life , Crysis , Far Cry et bien d'autres.

Je ne suis pas seulement intéressé par le fonctionnement de l'intelligence artificielle, mais par la façon dont les développeurs de l'enfer ont réussi à le faire fonctionner. J'ai parlé de nombreuses techniques de création d'IA, notamment les machines d'état, les maillages de navigation, les arbres de comportement, les technologies de planification et l'apprentissage automatique, mais au moment de la sortie de GoldenEye , elles n'étaient pas des pratiques établies dans l'industrie du jeu. De plus, la Nintendo 64 a presque 25 ans et, par rapport aux machines modernes, elle dispose de ressources de processeur et de mémoire minimales. Comment pouvez-vous créer des systèmes d'IA et de gameplay qui fonctionneront efficacement sur le matériel avec de telles limitations?

image

Pour découvrir la vérité, j'ai contacté le meilleur informateur secret: le Dr David Dawke . David a joué un rôle important dans l'équipe de développement et GoldenEye 007 et son suiveur spirituel Perfect Dark . Au cours de l'entretien, nous avons discuté de l'intelligence des PNJ, du comportement des alarmes, des systèmes de capteurs, des outils de navigation, de l'équilibrage des performances, etc. Commençons donc à comprendre comment tout cela a été organisé.

image

Architecture du bâtiment


Fondamentalement, GoldenEye est devenu ce qu'il est devenu, grâce à deux personnes: le producteur et directeur de jeu Martin Hollis et le programmeur de gameplay et de moteur Mark Edmonds. Au départ, Hollis a été inspiré par des jeux comme Virtua Cop , où les ennemis se sont précipités dans le cadre de la caméra, ont tiré sur le joueur, puis se sont enfuis, se sont cachés ou ont réagi dynamiquement aux coups du joueur. Cependant, Hollis a cherché à créer une IA plus engageante et réactive qui a dépassé la norme DOOM de 1993.

«Il était important pour nous de montrer l'IA du joueur. Il n'y a aucun intérêt dans l'intelligence artificielle complexe si le joueur ne la remarque pas. Votre PNJ peut inspirer le sens de la vie avec inspiration, mais le joueur ne le remarquera pas s'il suffit de se pencher au coin de la rue et de nourrir les ennemis avec du plomb dans le jeu. Autrement dit, l'intelligence devrait être évidente. L'IA doit démontrer la mécanique du jeu. L'IA devrait montrer la structure des niveaux. Et tout cela devrait vraiment apporter quelque chose de nouveau au gameplay lui-même »

[Martin Hollis, Forum européen des développeurs, 2004.]

Cette approche a conduit à l'apparition de gardes et de patrouilles, forçant le joueur à être plus tactique sur les passes. Des capteurs de vision et d'audition ont été utilisés, permettant à l'IA de réagir au comportement du joueur ou de ne pas le remarquer s'il se glissait secrètement. De plus, des personnages amicaux et civils ont réagi à la présence du joueur, l'aidant ou s'enfuyant.

Lorsque David Dooke est entré dans le projet, la plupart des composants de base du moteur pour le mouvement 3D, le rendu et les comportements d'IA simples ont déjà été créés par Edmonds. Cependant, au cours des deux dernières années de développement du projet, l'essentiel du comportement de l'IA et d'autres systèmes de jeu de base est apparu. Le jeu est devenu moins concentré sur le joueur, l'IA est apparue comme des patrouilles, la transition vers un état d'alarme, la possibilité d'utiliser des terminaux de contrôle, des toilettes et bien plus encore.

image

Pour y parvenir, Mark Edmonds a créé un système de script complet à l'intérieur de la base de code C qui était constamment mis à jour et mis à jour pendant que Dook et d'autres membres de l'équipe expérimentaient des idées. Assez souvent, une nouvelle idée a été proposée à Edmonds, qui a évalué la possibilité de sa mise en œuvre et l'a ajouté au moteur pendant la journée. Ce système de script a permis aux développeurs de lier de nombreuses actions prédéfinies dans une séquence de comportements intelligents, en fonction d'un contexte très spécifique. Ces comportements ont provoqué l'exécution de leurs propres threads et libéré les ressources dès que possible, dès que le comportement "atomique" suivant a commencé à s'exécuter, puis ils ont vérifié si la mise à niveau pouvait être effectuée à nouveau. De tels comportements scriptés ont été utilisés non seulement pour les personnages amis et ennemis, mais aussi pour des systèmes comme les portes et les portes à ouverture temporelle, ainsi que les écrans de veille cinématographiques au début et à la fin de chaque niveau qui contrôlaient le joueur et d'autres personnages dans le monde.


L'éditeur GoldenEye , développé à l'origine par le modder Mitchell "SubDrag" Kleiman, a procédé à une ingénierie inverse de ces comportements d'IA. Ils se sont transformés en «blocs d'actions» modifiables à partir desquels vous pouvez créer vos propres comportements. Les gardes ennemis peuvent répondre à un large éventail de signaux sensoriels: lorsqu'un coup les frappe, qu'ils remarquent un ennemi, un autre garde tué dans leur champ de vision, ainsi que des coups entendus à proximité. De plus, les PNJ pouvaient décider de se rendre, cela dépendait de la probabilité, mais beaucoup plus de savoir si le joueur les visait. De plus, si l'IA savait que le joueur ne visait plus lui, son comportement a changé. Comme cela sera expliqué ci-dessous, les tests de vision et d'audition requis pour de tels comportements ont été effectués dans des processus très limités et tronqués, créant cependant des résultats impressionnants sur le matériel N64 faible.

Selon les conditions, les gardiens pouvaient exécuter de nombreux comportements différents, y compris des marches latérales, rouler sur les côtés, tirer dans un squat, tout en marchant, en courant et même en lançant des grenades. Ces actions dépendaient fortement de la position relative du joueur et de son comportement actuel.

En fait, c'était une machine d'état assez simple (Finite State Machine), dans laquelle l'IA était dans un certain état d'exécution du comportement, tandis que les événements en jeu ne le forçaient pas à passer à la suivante. Le même principe a ensuite été utilisé dans Half-Life , sorti un an après GoldenEye (en 1998), et les développeurs de Rare étaient conscients de l'impact de leur jeu sur le très populaire jeu de tir Valve:

«Surtout, je me souviens d'une rencontre avec les gars de Valve au salon de l'industrie britannique ECTS en 1998. Ils ont plaisanté en disant que GoldenEye leur avait fait refaire un tas de tout dans Half-Life. Ils ont décidé de bien faire les choses. »

David Doke, GamesRadar, 2018.

Performances de l'IA


Les deux éléments les plus importants du moteur Goldeneye pour le contrôle de l'IA étaient la caméra et quelque chose appelé le "système STAN". Pour simplifier le rendu, les niveaux, même aussi grands et ouverts que la surface Severnaya, ont été divisés en «pièces» - des blocs plus petits. Cela a permis de maintenir le niveau de performances souhaité, car seules les pièces de la pyramide de la caméra pouvaient être rendues. Mais à cause de cela, l'IA n'a généralement pas effectué ses comportements de base jusqu'à ce que les personnages soient rendus par la caméra. Cela a permis de réduire les coûts informatiques, tout en fournissant des fonctionnalités intéressantes, dont je parlerai ci-dessous.

image

Mais le système le plus important lié aux pièces et au comportement de rendu était STAN (qui est une abréviation simple pour Stand). Les objets STAN développés par Martin Hollis sont des maillages polygonaux pour une seule pièce qui sont marqués pour être utilisés comme STAN. Tous ces objets «savaient» dans quelle pièce ou couloir ils se trouvaient. Si le personnage IA se tenait au-dessus d'un certain STAN, alors il ne pourrait voir le joueur que si le STAN dans lequel il se trouvait était situé dans la pièce actuelle ou voisine. Le système a effectué une simple vérification pour voir si deux STAN pouvaient se «voir». Cela a permis des tests de visibilité moins coûteux au lieu du lancer de rayons 3D, qui nécessiterait beaucoup plus de ressources de l'équipement. Le système a étonnamment bien fonctionné, mais dans certains cas spécifiques, il s'est «effondré». Un exemple de ceci est les gardes du barrage qui ne pouvaient pas voir le joueur jusqu'à ce qu'il s'approche de leur chemin: le STAN en haut des escaliers ne pouvait voir le STAN qu'en bas, c'est-à-dire que le joueur pouvait effectuer des actions à proximité et passer inaperçu. Un deuxième exemple est le chemin en spirale dans les grottes, où les PNJ voient le chemin devant eux, mais pas de l'autre côté de l'abîme.

En plaçant STAN sur toutes les cartes, il a été possible de construire un système de navigation basé sur leurs polygones. Comme je l'ai dit plus tôt dans AI 101, les jeux modernes utilisent généralement des maillages de navigation qui créent une surface polygonale complète qui définit les endroits où un personnage peut se déplacer sur la carte. Dans sa forme moderne, les maillages de navigation ne sont apparus qu'en 1997, donc pour les développeurs de GoldenEye, ils ont pris le système STAN et ajouté des objets appelés PAD dessus. Les PAD étaient situés sur le STAN, mais en même temps, ils étaient connectés les uns aux autres, créant essentiellement un graphique pour naviguer dans le maillage. Les personnages savaient dans quelle pièce ils se trouvaient et pouvaient rechercher le PAD de la pièce de destination s'ils réagissaient à une agitation à proximité, ou se déplaçaient le long du STAN dans la pièce actuelle jusqu'au point d'intérêt.

Tout cela a été complété par des capteurs auditifs. Ils ont effectué une simple vérification de la proximité des personnages dans un certain rayon de la source sonore. Ils ont également pris en compte le type d'arme et la cadence de tir. Le PP7 avec silencieux n'a pas attiré l'attention, le PP7 standard était bruyant, le KF7 soviétique était encore plus fort, et le tir par rafales augmentait le rayon au maximum, seuls un lance-roquettes et un canon de char étaient considérés comme plus forts.

Changements adaptatifs


Tous ces outils et systèmes d'IA sont très impressionnants; ils montrent comment les développeurs ont recherché intentionnellement des moyens intelligents et efficaces pour créer les éléments spécifiques qu'ils voulaient voir dans le jeu. Mais il existe de nombreux autres éléments avec lesquels GoldenEye a créé des comportements individuels d'IA qui ont été créés presque individuellement pour chaque niveau. Les PNJ ne se sont pas cachés derrière des obstacles, donc à des niveaux comme Silo et Train, des scripts uniques étaient nécessaires pour que les personnages se tiennent à côté de certains PAD et réagissent selon qu'ils étaient dans un squat ou debout à pleine hauteur.

image

Les PNJ ne savaient pas où se trouvaient les autres personnages sur la carte, donc aux niveaux où le joueur devait protéger Natalya Simonov, il fallait non seulement assurer son mouvement, mais aussi créer des comportements spéciaux afin que les ennemis tirent non seulement sur elle, mais visent également le joueur. Pour la mise en œuvre de personnages tels que des scientifiques gelés sur place lorsqu'ils ont remis une arme, ou Boris Grishenko, qui a agi comme le joueur lui a ordonné, jusqu'à ce qu'il le laisse hors de vue, d'autres comportements qui fonctionnaient dans un contexte plus spécifique étaient nécessaires. Beaucoup de personnages principaux de l'intrigue ont dû écrire leurs propres comportements d'IA pour chaque niveau. Par exemple, Alec Trevelyan a des comportements différents à chacun des six niveaux avec sa participation: Installation, Statue, Train, Contrôle, Cavernes et Berceau.

image

De plus, il était nécessaire de résoudre les problèmes de level design et de rythme de jeu. Les niveaux extérieurs de Severnaya se sont révélés difficiles en termes d'équilibrage de l'emplacement des personnages de l'IA, de sorte que les développeurs ont écrit des scripts de niveau qui créent des ennemis en dehors du rayon de brouillard et s'exécutent directement vers le joueur. Mais si les ennemis étaient trop loin, ils se sont tout simplement éteints et pourraient se réactiver à l'avenir.

Ma fonction GoldenEye préférée est la façon dont le joueur a été puni pour une manipulation forte et agressive des armes s'il n'a pas passé le niveau assez rapidement. Rappelez-vous, j'ai dit que les PNJ n'activent pas leur comportement d'IA s'ils n'ont pas encore été rendus? Si le PNJ a entendu le son, mais n'a pas encore été rendu, il crée son propre clone afin qu'il vérifie la source sonore et continue de créer des clones, ou jusqu'à ce que l'excitation se calme ou que la caméra ne rend pas le personnage. Cela est particulièrement visible sur des niveaux comme Archives, où le joueur peut facilement tomber dans le piège dans la salle d'interrogatoire au début du niveau en raison de clones constamment créés.

image

Pour améliorer le rythme du gameplay dans son ensemble, ainsi que d'adapter le contrôle à la précision insuffisante de la manette Nintendo 64, les transitions et la durée des animations ont été soigneusement ajustées grâce aux tests, donnant aux joueurs une meilleure chance de déterminer les priorités des ennemis ou d'utiliser un mécanicien pour une visée automatique ou précise.

En conclusion


Après la sortie de GoldenEye, son rendu et sa chaîne d'outils AI ont bien servi pour les jeux qui ont suivi. Le successeur spirituel Perfect Dark de Rare a utilisé les mêmes systèmes, partiellement complétés par des innovations. Comme indiqué ci-dessus, les PNJ GoldenEye ne peuvent se cacher derrière la couverture qu'en utilisant un comportement spécialement prescrit, mais dans Perfect Dark, les ennemis sont déjà en mesure de calculer les positions de couverture, y compris les positions dynamiques créées par des objets anti-gravité. De plus, grâce à des expériences d'éclairage, calculées en ombrant les sommets, les capteurs de vision pourraient avoir une vision réduite. Le même processus a ensuite été utilisé par Free Radical Design pour sa franchise Timesplitters , car ce studio a été fondé par plusieurs membres de l'équipe de développement GoldenEye . Dans cette série de jeux, le système STAN / PAD a été complété pour mieux prendre en charge l'architecture de niveau vertical.

Malgré son vingtième anniversaire, GoldenEye a établi les normes qui ont été utilisées dans Half-Life et aujourd'hui, les créateurs de nombreuses autres franchises de tireurs tentent de les reproduire. J'espère qu'après avoir lu cet article, vous apprécierez toute la profondeur des systèmes utilisés dans le jeu et le niveau d'engagement et de compétence requis pour créer un projet qui a finalement eu un si grand impact.

Source: https://habr.com/ru/post/fr459765/


All Articles