Como diseñar la IA de un videojuego

Cómo diseñar una ia de un videojuego
Empezamos una colección de artículos sobre la IA de un juego.

Por desgracia no pienses que la IA es algo parecido a Hall 9000 o a la que vemos en películas de ciencia ficción, es algo mucho más básico que se resume en instrucciones de comportamientos. Como su propio nombre indica, son grupos de instrucciones y animaciones que el NPC tiene que aplicar en determinadas circunstancias, por ejemplo que le ataquen, que esté patrullando, que esté paseando por la calle, que me acerque y le pregunte, etc.

Cuando hablamos de IA hay 2 personas que se ponen a temblar, el programador que tiene que programarla y el diseñador que tiene que definir el comportamiento de los npcs. Aunque el programador se lleva la peor parte, diseñarla tampoco es tarea sencilla.

Se trata de una parte crucial de la jugabilidad, ya que si un juego tiene una IA (inteligencia artificial) demasiado pobre resultará monótono. Sin embargo, cuando vemos juegos donde los enemigos se comportan de mil maneras distintas, o donde los jefes finales tienen comportamientos muy trabajados, la experiencia del usuario sube gratamente.

IA de Assassin's Creed
Assassin's Creed tiene un entorno bastante reactivo, todos los personajes responden a las situaciones que crea el jugador, ya sea hablando, apartándose, robando, atacando…un universo enorme y completamente vivo.
La palabra clave en esta parte del desarrollo son los NPCs. Los más jugones ya sabréis a lo que me refiero. A los que crean que son las siglas de un partido político os diré que significa No Playable Character (personaje no manejable por el jugador) y por tanto manejado por la IA del motor gráfico. Todos los integrantes de nuestro universo reaccionarán a nuestros movimientos y acciones como jugador y dará la sensación de que el mundo está vivo. ¿Os acordáis de las clásicas aventuras gráficas donde los personajes no se movían hiciéramos lo que hiciéramos? Ahh, qué tiempos aquellos y no son tan lejanos.

Si los integrantes de nuestro universo reaccionan a nuestras acciones lograremos un mundo vivo

Diseñar los NPCs

Lo primero es definir qué tipo de NPC vamos a tener en el proyecto, porque no todos tienen la misma importancia y por tanto requieren distintas cantidades de trabajo. Los grupos clásicos son los siguientes:

Amigos: Aquellos que me ayudan, bien dándome información o algún objeto. Un buen ejemplo es el mercader de muchos juegos y que en la mayoría de los casos no se mueve del sitio o como mucho circula por una zona muy limitada del escenario.

Aliados: Este grupo pueden ser los personajes que me acompañan durante el juego, pelean conmigo e interactúan. Tienen muchas animaciones y por tanto comportamientos, ya que tienen que hacer lo mismo que el jugador, desplazarse, atacar, estar en reposo, hablar…

Neutrales: Bueno, el nombre es bastante descriptivo, son personajes que pululan por nuestro mundo, transeúntes principalmente, que como mucho se pueden girar al vernos y soltarnos un improperio si chocamos contra ellos.

Enemigos: Aquí se podría hacer una subdivisión por tipos de enemigos pero centrémonos en lo general. Son los grupos de enemigos que nos atacan. Puede haber 4 tipos de enemigos, por ejemplo, los mercenarios, los asesinos, los de la banda del barrio X o los zombies que necesitan 7 disparos para terminar con ellos.

Jefes finales: Quizás el grupo más importante, junto con los aliados. Un buen juego ha de tener jefes finales que sea atractivos, difíciles de acabar con ellos y, sobre todo, con muchos comportamientos. Los jefes finales son lo que hacen grandioso a un juego, como God of War o Resident Evil 4. El concepto de jefe final es un poco ambiguo pero básicamente quiere decir que son los enemigos a los que nos enfrentamos para pasar de nivel o misión y que requieren un gran esfuerzo.

Animales: Si, ya sé que esto os puede sonar raro, pero en algunos juegos aparecen animales y aunque serían muy parecidos a alguno de los otros grupos, los animales jamás se van a comportar como un ser humano. El ejemplo de este grupo serían los perros que nos atacan en el Call of Duty.

Piensa bien qué tipos de NPCs tienes en tu juego y empieza a agruparlos en estas categorías.

Inteligencia artificial del videojuego Alien: Isolation's
Alien: Isolation's se basa en derrotar a una gran IA que es Alien

Definir grupos de comportamientos

Los ejemplos más claros para crear nuestro juego son los siguientes. Pero ten en cuenta que cada videojuego es un mundo, puede que en ti proyecto sobre o haya que hacer subgrupos.

Situación de Ataque: lo más básico. Tengo enemigos en pantalla y los he cabreado tanto que me atacan. Pues bien, definiríamos cómo nos deben atacar, si por grupos, de forma individual, si nos rodean o nos atacan a distancia.

Situación de patrulla: los enemigos defienden una zona del escenario y yo tengo que entrar allí. Pues bien, esos enemigos patrullarán de una forma concreta y por una zona bien limitada. Algunos pueden pararse a fumar un cigarrillo, otros a hablar, o echar una meadita, en fin… se nos pueden ocurrir muchas situaciones divertidas y que le den más vida al juego.

Las situaciones de alerta de los NPCs dan mucho juego. Hay que trabajarlas muy bien

Situación de alerta: imaginaos que uno de los enemigos nos ha visto y da la alarma. Quizá el resto de enemigos no nos ha visto porque no estamos en su campo de visión (esto ya lo explicaré más adelante) pero al sonar las alarmas han pasado a comportamiento de alerta, que es buscarme para derribarme. Los movimientos serán más rápidos y ya no habrá animaciones de espera. Lógicamente habría que definir cómo paso de un comportamiento de patrulla a otro de alerta.

Situación de peligro: Ésta suele ser para los NPCs neutrales o aliados. Imaginaos que estamos jugando al GTA y hacemos alguna locura en la calle. Acordaros que la gente corría despavorida. En juegos de guerra como Call Of Duty, cuando un enemigo tira una granada hacía nosotros, nuestros aliados buscan un refugio para resguardarse de la explosión, con lo que conseguimos un entorno mucho más reactivo. No es lo mismo sacar una pistola en una calle llena de gente y disparar y que no pase nada a sacar el arma disparar y que la gente huya y venga la policía a detenernos. Eso hace el juego mucho más divertido y apasionante.

Como veis, pequeños detalles en la IA del juego hacen que la experiencia del usuario sea más atractiva.

Seguiremos en el próximo artículo de diseño de IA de un videojuego

0 comentarios:

Subir