Enviado el jueves, 24 de abril de 2008 7:38
Existen muchos tipos de programas que hacen un gran uso de elementos de Inteligencia Artificial, como puedan ser los planificadores económicos, sistemas de reglas de negocio, sistemas de automática y control, etc. Estos elementos incluyen localización, búsqueda en árboles, resolución de problemas, toma de decisiones y aprendizaje. Pero uno de los campos del desarrollo software que más ha ido tomando de la Inteligencia Artificial ha sido, sin duda, el desarrollo de videojuegos [1].
La
ley de Moore sobre el incremento en la velocidad de los procesadores a lo largo del tiempo parece también aplicarse al desarrollo de los videojuegos, que parecen duplicar su complejidad cada 18 meses. Este aumento de complejidad, hace que los juegos aumenten su interés y su capacidad de adicción, lo que ha logrado que los juegos pasen de ser una mera distracción de unos minutos a una forma de expresión artística y un hobby serio para los jugadores.
La historia de la Inteligencia Artificial aplicada a los juegos se remonta a finales de los años 50, cuándo
Arthur L. Samuel, trabajador de IBM, desarrolló un programa para la
IBM 701, la primera máquina comercial de IBM, capaz de jugar a las damas mediante aprendizaje [2]. Este programa representa el primer programa desarrollado en el mundo capaz de aprender y supuso una demostración de fuerza tanto a nivel de desarrollo software como a nivel de hardware que supuso un gran incremento en las ventas de máquinas de IBM. Después de este acercamiento, la aplicación de técnicas de IA en los videojuegos se fue extendiendo, en gran medida debido a que los juegos empezaron a dejar de ser mayoritariamente juegos de jugador contra jugador, lo cuál motivaba la aparición de técnicas que permitieran a los usuarios sentir que estaban jugando contra otros oponentes humanos o, al menos, con un nivel de dificultar similar para que el juego supusiera un reto y fuera “adictivo”.
Más de 50 años después, la Inteligencia Artificial se ha convertido en un pilar fundamental de los videojuegos, tal y como puede verse en la existencia de módulos formativos específicos en los
Másters de Videojuegos , así como en la aparición de una gran multitud de
libros acerca de este tema tan específico o la gran
demanda de especialistas en IA por parte de empresas desarrolladoras de videojuegos.
¿En qué aspectos concretos ayuda la Inteligencia Artificial a los Videojuegos? Ante todo a modelar el comportamiento de los jugadores no humanos (NPC en inglés, PNJ en castellano), y para ello la IA nos aporta múltiples ayudas:
- “Pathfinding” o búsqueda de caminos: La mayoría de los videojuegos cuentan con pantallas confeccionadas a modo de mapas, dónde se mueven tanto los jugadores como los PNJ. Por regla general, algunos (o todos) PNJ, tienen que buscar al jugador para evitar que este termine la fase o continúe su objetivo y, para esta tarea, se pueden utilizar los algoritmos de “pathfinding” muy habituales y técnicas básicas dentro de la IA. La mayoría de estos algoritmos están basados en algoritmos clásicos como el algoritmo A* o el algoritmo de Dijkstra. Así mismo, últimamente también está surgiendo mucho interés en la aplicación de técnicas de planificación derivadas del pathfinding.
- Las máquinas de estados son una de las técnicas más básicas utilizadas dentro de la IA para videojuegos. Desde el punto de vista de la IA, las máquinas de estados no tienen gran valor, pero al aplicarse a los Videojuegos permiten establecer distintos tipos de comportamientos en los PNJ que van cambiando a lo largo del tiempo en función de una serie de parámetros. Ejemplificando el concepto de máquina de estados, si entramos en una cueva llena de enemigos, éstos pueden estar programados para matarnos si estamos cerca de ellos, pero si conseguimos “robar” el cofre del tesoro que están vigilando, todos los enemigos nos perseguirán. Este comportamiento “simula” una especie de señal de alerta y hace creer al humano que los PNJ son más inteligentes. Hay algunas variantes de las máquinas de estados que tienen más interés para la IA, como son las máquinas de estados difusas, dónde las transiciones entre los estados ocurren de forma difusa, es decir, en función de una serie de probabilidades, lo cuál hace todavía más interesante el comportamiento de los NPJ. La literatura de máquinas de estados para videojuegos en realmente extensa ya que han sido utilizadas ampliamente en el desarrollo de videojuegos.
- La Inteligencia Emergente es un concepto que ha empezado a implementarse en los Videojuegos hace relativamente poco tiempo. Estas técnicas de IA permiten que en los juegos se muestre una serie de criaturas (un buen ejemplo sería un Tamahotchi), que son capaces de ir aprendiendo en función de las decisiones del jugador y también evolucionan de forma acorde a estas acciones y a su aprendizaje. Estas técnicas están muy inspiradas en el funcionamiento de la naturaleza, por lo que el jugador tiene la sensación de que la evolución de estas criaturas es “real” y no simulada.
- “Inteligencia Estafadora”. Algunos juegos utilizan técnicas para detectar cuándo el jugador está en una situación muy ventajosa con respecto a la computadora y, entonces, favorecen el comportamiento de la IA para conseguir una situación más compleja para el jugador y aumentar el grado de dificultad. Este tipo de técnicas son muy habituales en videojuegos de deportes como el EA Sport’s Madden NFL o el Mario Karts.
Existen muchas más técnicas que se están aplicando en los Videojuegos, como las redes neuronales o algoritmos genéticos utilizados para ir adaptando el comportamiento de los NPJ en función de unos objetivos (por ejemplo ir mejorando como los NPJ conducen en una carrera de coches). Aún así, existen muchos retos en los Videojuegos en los que la IA tiene mucho que decir, como mejorar todavía más la sensación de inteligencia, sobre todo en entornos con muchos NPJ para que colaboren de una forma más útil entre ellos o bien la creación de interfaces en lenguaje natural que permitan a los jugadores controlar sus personajes sin necesidad de teclado y ratón, algo que puede ser muy útil en juegos de estrategia dónde hay que controlar muchas unidades al mismo tiempo y de forma rápida.
La industria de los Videojuegos es una de las industrias más bollantes de los últimos tiempos, y ya está empezando a notarse en el campo de la IA la creciente necesidad de expertos en estas materias para el mundo de los videojuegos. Además, el nivel gráfico de los videojuegos actuales está llegando a cotas muy difíciles de superar y las nuevas arquitecturas hardware (p.e. los
chips Cell con varios cores de proceso) abren nuevas puertas a la IA al permitir tener varias unidades de proceso volcadas en el estudio del comportamiento inteligente. No sería de extrañar que, en unos años, el número de expertos en IA que participan en un proyecto de desarrollo de un videojuego se equiparara al número de desarrolladores del juego en sí.
REFERENCIAS[1] J. Wexler, “Artificial Intelligence in Games: A look at the smarts behind Lionhead Studio’s Black and White”
[2] A. Samuel, “
Some Studies in Machine Learning Using the Game of Checkers”, IBM Journal 3 (3): 210-229.
[
José Carlos Cortizo Pérez]