Goldeneye 007 es uno de los juegos más importantes de la historia. Ella determinó el desarrollo posterior de toda una generación de juegos de consola y allanó el camino para los shooters en primera persona para el mercado de consolas. Avancemos hace más de 20 años para descubrir cómo uno de los 64 juegos más populares de Nintendo logró implementar enemigos y amigos con inteligencia artificial, de los cuales puedes aprender algo incluso hoy.
Sobre el juego
Después de su lanzamiento en 1997,
GoldenEye 007 no solo determinó el destino de la generación, sino que también superó todas las expectativas. Raro, la propia Nintendo, e incluso el propietario de los derechos de la franquicia de Bond, MGM, no creían mucho en este juego. Lanzado dos años después del lanzamiento de la película y un año después de que la consola apareciera en el mercado, parecía condenada al fracaso, pero se convirtió en la tercera en ventas (ocho millones de copias) durante toda la vida útil de la plataforma, solo
superada por
Super Mario 64 y
Mario Kart 64 . Sin mencionar el hecho de que en 1998 ganó Rare el Premio BAFTA y el título de Desarrollador del Año.
Este juego nos dejó un gran legado: estableció los estándares sobre qué esperar de la próxima generación de tiradores en primera persona, especialmente en el comportamiento de la IA: personajes con patrones de patrulla, enemigos que piden refuerzos, civiles que huyen con miedo, navegación fluida y encontrar el camino, un rico conjunto de animaciones, propiedades dinámicas que ocurren durante el juego y mucho más. No solo estableció los estándares para la generación, sino que también influyó en los juegos que la superaron:
Half Life ,
Crysis ,
Far Cry y muchos otros.
No solo estoy interesado en cómo funciona la inteligencia artificial, sino en cómo demonios los desarrolladores lograron que funcione. Hablé sobre muchas técnicas de creación de IA, incluidas máquinas de estado, mallas de navegación, árboles de comportamiento, tecnologías de planificación y aprendizaje automático, pero en el momento del lanzamiento de
GoldenEye , no eran prácticas establecidas en la industria del juego. Además, Nintendo 64 tiene casi 25 años y, en comparación con las máquinas modernas, tiene recursos mínimos de procesador y memoria. ¿Cómo puedes crear sistemas de inteligencia artificial y de juego que funcionen efectivamente en el hardware con limitaciones tan serias?
Para descubrir la verdad, contacté al mejor informante secreto: el
Dr. David Dawke . David jugó un papel importante en el equipo de desarrollo y
GoldenEye 007 y su seguidor espiritual
Perfect Dark . Durante la entrevista, hablamos sobre inteligencia NPC, comportamiento de alarmas, sistemas de sensores, herramientas de navegación, equilibrio de rendimiento y más. Entonces, comencemos a entender cómo se arregló todo esto.
Arquitectura del edificio
Básicamente,
GoldenEye se convirtió en lo que se convirtió, gracias a dos personas: el productor y director de juegos Martin Hollis y el programador de juegos y motores Mark Edmonds. Inicialmente, Hollis se inspiró en juegos como
Virtua Cop , donde los enemigos se toparon con el marco de la cámara, dispararon al jugador y luego huyeron, se escondieron o reaccionaron dinámicamente a los golpes del jugador. Sin embargo, Hollis buscó crear una IA más atractiva y reactiva que superara el estándar
DOOM de 1993.
“Era importante para nosotros mostrarle al jugador la IA. No tiene sentido la inteligencia artificial compleja si el jugador no lo nota. Tu PNJ puede inspirar el significado de la vida con inspiración, pero el jugador no lo notará si es suficiente para inclinarse a la vuelta de la esquina y alimentar a los enemigos con plomo en el juego. Es decir, la inteligencia debería ser obvia. La IA debe demostrar la mecánica del juego. La IA debería mostrar la estructura de niveles. Y todo esto realmente debería aportar algo nuevo al juego en sí mismo "
[Martin Hollis, Foro Europeo de Desarrolladores, 2004.]
Este enfoque ha llevado a la aparición de guardias y patrullas, forzando al jugador a ser más táctico al pasar. Se utilizaron sensores de visión y audición, lo que permite que la IA reaccione al comportamiento del jugador o no lo note si se arrastra sigilosamente. Además, los personajes amigables y civiles reaccionaron a la presencia del jugador, ayudándolo o huyendo.
Cuando David Dooke ingresó al proyecto, Edmonds ya había creado la mayoría de los componentes básicos del motor para el movimiento 3D, renderizado y comportamientos simples de IA. Sin embargo, en los últimos dos años del desarrollo del proyecto, ha aparecido la parte principal del comportamiento de la IA y otros sistemas de juego básicos. El juego se volvió menos centrado en el jugador, AI apareció patrones de patrulla, la transición a un estado de alarma, la capacidad de usar terminales de control, baños y mucho más.

Para lograr esto, Mark Edmonds creó un sistema completo de secuencias de comandos dentro de la base de código C que se actualizaba y actualizaba constantemente mientras Dook y otros miembros del equipo experimentaban con ideas. Muy a menudo, se le propuso una nueva idea a Edmonds, quien evaluó la posibilidad de su implementación y la agregó al motor durante el día. Este sistema de secuencias de comandos permitió a los desarrolladores vincular muchas acciones predefinidas en una secuencia de comportamiento inteligente, dependiendo de un contexto muy específico. Estos comportamientos causaron que sus propios subprocesos se ejecutaran y liberaron recursos lo antes posible, tan pronto como el siguiente comportamiento "atómico" comenzó a ejecutarse, y luego verificaron si la actualización podría realizarse nuevamente. Tales comportamientos con guión se usaron no solo para personajes amigos y enemigos, sino también para sistemas como puertas y puertas que abren el tiempo, así como protectores de pantalla cinematográficos al principio y al final de cada nivel que controlaban al jugador y otros personajes en el mundo.

El
GoldenEye Editor, desarrollado originalmente por el modder Mitchell "SubDrag" Kleiman, realizó ingeniería inversa de estos comportamientos de IA. Se convirtieron en "bloques de acción" editables a partir de los cuales puede crear sus propios comportamientos. Los guardias enemigos pueden responder a una amplia gama de señales sensoriales: cuando un disparo los golpea, que notan a un enemigo, otro guardia muerto en su campo de visión, así como los disparos que se escuchan cerca. Además, los NPC podían decidir rendirse, dependía de la probabilidad, pero mucho más de si el jugador los estaba apuntando. Además, si la IA sabía que el jugador ya no apuntaba a él, su comportamiento cambiaba. Como se explicará a continuación, las pruebas de visión y audición requeridas para tales comportamientos se realizaron en procesos muy limitados y truncados, sin embargo, creando resultados impresionantes en el débil hardware N64.
Dependiendo de las condiciones, los guardias podrían realizar muchos comportamientos diferentes, incluidos pasos laterales, rodando hacia los lados, disparando en cuclillas, mientras caminan, huyen e incluso arrojan granadas. Estas acciones eran altamente dependientes de la posición relativa del jugador y su comportamiento actual.
De hecho, era una máquina de estado bastante simple (Máquina de estado finito), en la que la IA estaba en un cierto estado de ejecución de comportamiento, mientras que los eventos en el juego no lo obligaban a pasar a la siguiente. El mismo principio se usó más tarde en
Half-Life , que salió un año después de
GoldenEye (en 1998), y los desarrolladores de Rare estaban al tanto del impacto que su juego tenía en el popular shooter Valve:
“Sobre todo, recuerdo una reunión con los muchachos de Valve en la exposición de la industria británica ECTS en 1998. Bromearon que GoldenEye los hizo rehacer un montón de todo en Half-Life. Decidieron hacerlo bien ".
David Doke, GamesRadar, 2018.
Rendimiento AI
Los dos elementos más importantes del motor Goldeneye para el control de la IA fueron la cámara y algo llamado "sistema STAN". Para simplificar el renderizado, los niveles, incluso tan grandes y abiertos como la superficie de Severnaya, se dividieron en "habitaciones": bloques más pequeños. Esto ayudó a mantener el nivel de rendimiento deseado, ya que solo se podían representar las habitaciones en la pirámide de la cámara. Pero debido a esto, la IA generalmente no realizó sus comportamientos básicos hasta que los personajes fueron representados por la cámara. Esto ayudó a reducir los costos de computación, al tiempo que proporcionó características interesantes, que analizaré a continuación.

Pero el sistema más importante relacionado con las habitaciones y el comportamiento de representación fue STAN (que es una abreviatura simple de Stand). Los objetos STAN desarrollados por Martin Hollis son mallas poligonales para una habitación individual que están marcadas para su uso como STAN. Todos estos objetos "sabían" en qué habitación o corredor estaban ubicados. Si el personaje AI estaba parado encima de un determinado STAN, entonces podría ver al jugador solo si el STAN en el que se encontraba estaba ubicado en la habitación actual o vecina. El sistema realizó una simple verificación para ver si dos STAN podían "verse" entre sí. Esto permitió pruebas de visibilidad menos costosas en lugar del trazado de rayos 3D, lo que requeriría muchos más recursos del equipo. El sistema funcionó sorprendentemente bien, pero en algunos casos específicos se "descompuso". Un ejemplo de esto son los guardias en la presa que no pudieron ver al jugador hasta que se acercó a su camino: el STAN en la parte superior de las escaleras solo podía ver al STAN en su parte inferior, es decir, el jugador podía realizar cualquier acción cerca y pasar desapercibido. Un segundo ejemplo es el camino en espiral en las cuevas, donde los NPCs ven el camino frente a ellos, pero no al otro lado del abismo.
Al colocar STAN en todos los mapas, fue posible construir un sistema de navegación basado en sus polígonos. Como dije anteriormente en AI 101, los juegos modernos generalmente usan mallas de navegación que crean una superficie poligonal completa que define los lugares en los que un personaje puede moverse en el mapa. En su forma moderna, las mallas de navegación aparecieron solo en 1997, por lo que los desarrolladores de
GoldenEye tomaron el sistema STAN y agregaron objetos llamados PAD encima. Los PAD se ubicaron en el STAN, pero al mismo tiempo se conectaron entre sí, creando esencialmente un gráfico para navegar por la malla. Los personajes sabían en qué habitación se encontraban y podían buscar el PAD de la habitación de destino si reaccionaban ante una conmoción cercana o si se movían a lo largo del STAN dentro de la habitación actual hasta el punto de interés.
Todo esto se complementó con sensores auditivos. Realizaron una simple verificación de la proximidad de los personajes dentro de un cierto radio de la fuente de sonido. También tomaron en cuenta el tipo de arma y la velocidad de disparo. El PP7 con silenciador no atrajo la atención, el PP7 estándar era ruidoso, el KF7 Soviet era aún más ruidoso, y disparar en ráfagas aumentaba el radio a un nivel máximo, solo un lanzacohetes y un arma de tanque se consideraban más ruidosos.
Cambios adaptativos
Todas estas herramientas y sistemas de IA son muy impresionantes; muestran cómo los desarrolladores buscaron intencionalmente formas inteligentes y efectivas para crear los elementos específicos que querían ver en el juego. Pero hay muchos otros elementos con los que
GoldenEye creó comportamientos de IA individuales que se hicieron casi individualmente para cada nivel. Los NPC no se escondían detrás de los obstáculos, por lo que en niveles como Silo y Train se necesitaban guiones únicos para que los personajes se pararan junto a ciertos PAD y reaccionaran dependiendo de si estaban en cuclillas o de pie a toda altura.

Los PNJ no sabían dónde están los otros personajes en el mapa, por lo que en los niveles en los que el jugador necesitaba proteger a Natalya Simonov, era necesario no solo garantizar su movimiento, sino también crear comportamientos especiales para que los enemigos no solo dispararan a ella, sino que también apuntaran al jugador. Para la implementación de personajes como los científicos que se congelaron en el lugar cuando entregaron un arma, o Boris Grishenko, quien actuó como el jugador le ordenó, hasta que lo dejó fuera de la vista, se requirieron otros comportamientos que funcionaron en un contexto más específico. Muchos de los personajes principales de la trama tuvieron que escribir sus propios comportamientos de IA para cada nivel. Por ejemplo, Alec Trevelyan tiene diferentes comportamientos en cada uno de los seis niveles con su participación: Instalación, Estatua, Tren, Control, Cavernas y Cuna.

Además, era necesario resolver problemas con el diseño de niveles y el ritmo del juego. Los niveles exteriores de Severnaya resultaron ser difíciles en términos de equilibrar la ubicación de los personajes de IA, por lo que los desarrolladores escribieron scripts de nivel que crean enemigos fuera del radio de niebla y se ejecutan directamente al jugador. Pero si los enemigos estaban demasiado lejos, simplemente se apagaban y podían reactivarse en el futuro.
Mi característica favorita de
GoldenEye es cómo se castigaba al jugador por el manejo fuerte y agresivo de las armas si no pasaba el nivel lo suficientemente rápido. ¿Recuerdas que dije que los NPC no activan su comportamiento de IA si aún no se han renderizado? Si el NPC escuchó el sonido, pero aún no se ha procesado, crea su propio clon para verificar la fuente de sonido y continúa creando clones, o hasta que la emoción se estabilice o la cámara no represente al personaje. Esto es especialmente notable en niveles como Archivos, donde el jugador puede caer fácilmente en la trampa en la sala de interrogatorios al comienzo del nivel debido a los clones creados constantemente.

Para mejorar el ritmo de juego en su conjunto, así como para adaptar el control a la precisión insuficiente del controlador Nintendo 64, las transiciones y la duración de las animaciones se ajustaron cuidadosamente debido a las pruebas, lo que brinda a los jugadores una mejor oportunidad de determinar las prioridades de los enemigos o usar una mecánica para apuntar de forma automática o precisa.
En conclusión
Tras el lanzamiento de
GoldenEye, su cadena de herramientas de renderización e IA sirvió bien para los juegos que siguieron. El sucesor espiritual de Perfect Dark de Rare utilizó los mismos sistemas, parcialmente complementados por innovaciones. Como se indicó anteriormente, los PNJ
GoldenEye pueden esconderse detrás de la cubierta solo con un comportamiento especialmente prescrito, pero en
Perfect Dark, los enemigos ya pueden calcular las posiciones de la cubierta, incluidas las dinámicas creadas por objetos antigravedad. Además, gracias a los experimentos con iluminación, calculados sombreando los vértices, los sensores de visión podrían haber reducido la visión. Posteriormente, Free Radical Design utilizó el mismo proceso para su franquicia
Timesplitters , ya que este estudio fue fundado por varios miembros del equipo de desarrollo
GoldenEye . En esta serie de juegos, el sistema STAN / PAD se ha complementado para admitir mejor la arquitectura de nivel vertical.
A pesar de su vigésimo aniversario,
GoldenEye ha establecido los estándares que se han utilizado en Half-Life y hoy los creadores de muchas otras franquicias de tiradores están tratando de reproducirlos. Espero que después de leer este artículo aprecies la profundidad total de los sistemas utilizados en el juego y el nivel de compromiso y habilidad que se requería para crear un proyecto que finalmente tuvo un impacto tan grande.