Breve historia de la IA en los videojuegos

Fran Ramírez    19 agosto, 2020

Los videojuegos son cada vez más espectaculares y cercanos a la realidad, tanto en gráficos como en la interacción entre el jugador y el entorno completo en el cual se desarrolla la acción. Sin embargo, no están utilizando los últimos avances que vemos en otros campos de la IA. ¿Por qué? Para responder a esta pregunta, empezaremos con un poco de historia.

Hoy día, con la aparición de las nuevas tarjetas gráficas, podemos ver juegos absolutamente realistas con unos gráficos realmente espectaculares. Es curioso que esa misma tarjeta gráfica que muestra el mundo virtual del videojuego, también es el hardware que hace posible hoy día muchos de los avances dentro de la Inteligencia Artificial. El uso de las GPU (Graphics Processing Units) tiene un diseño perfecto para optimizar la fase de entrenamiento (sobre todo en Deep Learning), ya que estas saben gestionar perfectamente operaciones de coma flotante, es decir, operaciones matemáticas, pero utilizando la gran cantidad de cores o núcleos que tienen para paralelizar los cálculos. 

Pero hoy no vamos a hablar de las GPUs (posiblemente lo hagamos en otro artículo). Hoy vamos a hablar de la Inteligencia Artificial (IA) aplicada a los videojuegos que, curiosamente, no está utilizando todos los avances que vamos viendo sobre todo en el campo del Machine Learning. Podríamos pensar que, con los avances actuales, podríamos tener PNJ (Personajes No Jugadores) controlados por la máquina, mucho más inteligentes. Pues curiosamente, prácticamente los mismos tipos de algoritmos (eso sí, con mucha más potencia de cálculo para hacerlos más complejos) que se usaban hace años, se utilizan a día de hoy.

Figura 1. GPU de NVidia GEFORCE 6600 GT. Fuente.
Figura 1. GPU de NVidia GEFORCE 6600 GT. Fuente.

Finalmente veremos que el motivo de no utilizar este tipo de IA es más simple de lo que parece.

Un poco de historia

Antes vamos a dar un brevísimo repaso a la historia de la IA en los videojuegos. Utilizar algoritmos para conseguir que los personajes de un videojuego tengan algún tipo de comportamiento similar a la IA, viene prácticamente desde los comienzos de la Informática, durante los años 50.

Años 50

Podríamos pensar que el primer videojuego con cierto nivel de IA fue el famoso Pong, pero no. Viene de más atrás, de hecho, 20 años antes de Pong nada menos. En concreto, el primer videojuego que utilizó algún algoritmo de IA se llamaba Nim. Era un juego sencillo. Trata de ir eligiendo diferentes elementos en una estructura (los elementos clásicos son las cerillas) y ser el último en retirar un objeto. La IA implementaba teoría combinatoria de juegos utilizando operaciones lógicas binarias (aquí más información).

Una curiosidad antes de continuar, Alan Turing desarrolló, antes de que existieran los ordenadores (si, en papel y lápiz, igual que el “crackeo” a la máquina Enigma, luego nos quejamos que nuestro ordenador “va lento”), un algoritmo completo para jugar al ajedrez. )

Años 70

En los 70, Atari revolucionó el mercado con juegos que ya se empezaban a tomar más en serio la programación de la IA. Antes hemos hablado de Pong, el cual realizaba cambios en el movimiento de la paleta del oponente controlado por la máquina en función de lo que iba haciendo el oponente humano. Todo esto en un juego de acción en tiempo real (aquí me he venido un poco arriba pero bueno).

Otros juegos de otras empresas también empezaron a incluir estos simples algoritmos para poder ofrecer la mejor experiencia al jugados a la hora de disfrutar en solitario de los videojuegos. Space Invaders (1978) y posteriormente Galaxian (1979) fueron otros dos juegos, que aparte de revolucionar el mercado del videojuegos, también incluían IA simples (la mayoría eran patrones prefijados basándose simplmente en examinar la entrada del usuario humano, igual que hacía Pong).

Figura 2. Captura de una escena del juego Pong original de 1972. Fuente.

Años 80

Entonces, en 1980 apareció Pac-Man (ni se me pasa por la cabeza que alguien no conozca este juego mítico) y revolucionó la utilización de patrones dentro del mundo de la IA en los videojuegos que hasta entonces se estaban utilizando.

Por ejemplo, los cuatro fantasmas del juego utilizaban diferentes patrones, cada uno podríamos decir que tenía su propia “personalidad”. El fantasma azul, llamado Inky, tenía posiblemente el comportamiento más especial. Siempre era el último en salir de la casa de los fantasmas (donde empezaban) pero además tenía la características de intentar “adivinar” hacia dónde se movería Pac-Man. Es decir, intentaba predecir (con técnicas muy sencillas, basándose en algo de aleatoriedad, cálculos para encontrar el camino más corto y un poco de vectores) hacia donde era posible que se moviera Pac-Man. Esto hacía que a veces acertara y otras fallara estrepitosamente (seguro que alguna vez habéis visto como se acercaba directo hacia vosotros un fantasma y de repente, sin motivo, cambiaba de dirección), aunque pronto volvería a intentar cazarlo.

Hablar de la IA utilizada por Pac-Man daría para varias entradas, podéis visitar este enlace donde se explica en detalle su funcionamiento. 

Figura 3. Ejemplo del comportamiento de los fantasmas dentro de Pac-Man para calcular el camino más corto y adecuado. Fuente.

Años 90

Ya en los 90, el estilo de las clásicas IA de los 80 ya había pasado de moda. Gracias a los avances en computación, los ordenadores eran cada vez más potentes por lo tanto, se podría utilizar otro tipo de algoritmos o incluso, mejorar los actuales gracias a la nueva potencia de computación.

Aparecieron los juegos de estrategia en tiempo real o RTS, como Dune II o Warcraft, los cuales básicamente se basan máquinas de estado finito (FSM), algoritmos para la resolución de laberintos o cálculos para hallar el camino más corto. Pero claro, utilizar FSM puede llevar a un estado de repetición donde el ordenador siempre realizará los mismos pasos. 

Y aquí es donde entra MCST, Monte Carlos Search Tree o Árbol de búsqueda Monte Carlo. Este algoritmo es capaz de visualizar los posibles movimientos disponibles en un momento dado de la partida. Por cada uno de esos pasos, se realiza un análisis completo para considerar si es o no factible realizarlo. Estos avances utilizando FSM y MSCT se aplicaron también en la revolución de los juegos 3D, comenzando por Wolfstein 3D, Doom, etc.

Durante los 80 también se produjo una revolución en la forma en las que los PNJ interactuaban con los jugadores humanos. Pero no sólo los PNJ, también la generación de terrenos, planetas, enemigo, etc totalmente aleatorios y únicos. Estamos hablando de la generación de datos utilizando algoritmos en vez de estructuras de datos prefijadas o generación procedural.

Es decir, si una posición específica del espacio hay un planeta, este no se crea hasta que el usuario llega a él. Una vez que se acerca, estos algoritmos van creando el planeta totalmente desde cero, con un terreno, atmósfera, etc., todo ello aleatorio. Esto permite hacer los juegos mucho más interesantes ya que se puede incorporar mucha más información (¿infinita?) la cual se genera sólo cuando se necesita.

Aunque no son directamente algoritmos de IA, sí que se integran perfectamente con ellos para ofrecer la mejor experiencia de juego. El precursor de la aplicación de esta técnica a los videojuegos fue el mítico Elite, desarrollado en 1984.

Figura 4. Ejemplo de generación de árboles usando algoritmos procedurals. Fuente.

Pues bien, en este punto, aunque podríamos estar hablando mucho más, al menos hemos reunido diferentes algoritmos populares en videojuegos, generación procedural de mundos y enemigos… finalmente ahora toca hablar de la situación actual de la IA en los videojuegos.

Pero eso, lo dejamos para el siguiente post, donde daremos respuesta a la pregunta que nos hemos planteado al principio del post: ¿Por qué los video juegos no están utilizando los últimos avances en IA?

Estado del arte de la IA actual aplicada a videojuegos

Para mantenerte al día con LUCA visita nuestra página web suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *