Inteligencia para monstruos

¡Groaaar!

Publicado en la revista Cuadrivio.

Imagen: Sweet Monsters

Te encuentras en un calle oscura y sientes que te siguen. Volteas y tienes que moverte rápidamente para esquivar un golpe. Reaccionas, y sin saber cómo, estás envuelto en una pelea callejera. Sin embargo, no te preocupas pues ya has peleado antes con tu peludo agresor. Conoces perfectamente sus movimientos y sabes en qué momento y en qué parte del cuerpo debes golpearlo para vencerlo. De pronto, inesperadamente, él realiza movimientos que desconocías y te derriba. Acabas de perder tu lugar en el ranking de los diez mejores jugadores. Te levantas del sillón y te preguntas qué hiciste mal. Recuerdas que no hace mucho tiempo empezaste a usar la nueva versión del juego que incorpora técnicas de inteligencia artificial mejoradas. Por esa razón, después de varias semanas, ese monstruo al que siempre derrotabas ha aprendido tu estrategia y esta vez, el derrotado fuiste tu. Y te preguntas: ¿cómo piensan esas criaturas?

Orígenes

En los años cincuenta se soñaba con que una computadora aprendiera a jugar. La idea de tener un ponente no-humano fue la semilla de la cual surgió el aprendizaje automático, una técnica de inteligencia artificial (IA) por la que una computadora puede aprender. El sueño del oponente no-humano no tardaría mucho en materializarse en juegos como el ajedrez y el gato. Después, con el concepto de videojuego, ideado por Ralph Baer, un ingeniero quien en 1951 tuvo la idea de utilizar el aparato de TV para interactuar con juegos. Más tarde surgió el primer videojuego funcional cuya creación se le atribuye al físico nuclear William Higinbotham, jefe de la división de instrumentación del Laboratorio Nacional de Brookhaven en Upton, Nueva York. Cada año, en el laboratorio se organizaba un día de visitantes en el cual se montaban exhibiciones sobre el trabajo científico que ahí se realizaba. Higinbotham había observado que las exposiciones eran estáticas, pasivas, apagadas; su idea era que los visitantes se involucraran y no solamente fueran espectadores. Con ese fin, él y sus colaboradores crearon un juego de tenis que se desplegaba en la pantalla de cinco pulgadas de un osciloscopio. El juego se llamaba Tennis for two y fue presentado el 18 de Octubre de 1958. El invento usaba un tubo de rayos catódicos y la pelota era un punto de luz brillante que se movía de un lado a otro de la red. Los jugadores usaban botones y discos para controlar una raqueta de tenis que no era visible [2]. La exhibición fue un éxito, el juego era totalmente adictivo y la gente hacía largas filas esperando su turno para jugar. Así, Higinbotham se convirtió en el precursor de una industria que actualmente genera cuantiosas ganancias y muchas horas de diversión a millones de humanos juguetones.

Higinbotham formó parte del Proyecto Manhattan cuyo fin era el desarrollo de la primer bomba atómica; tras su detonación, Higinbotham apoyó fervientemente la no-proliferación nuclear. El hecho de que probablemente sería mas recordado por la invención de un juego que por su trabajo en pos de limitar la propagación de las armas nucleares no era algo que le agradara.

Higinbotham y su equipo no diseñaron Tennis for two para jugarlo en una computadora. El primer juego con éste propósito fue SpaceWar creado en 1962 por Steve Russell, usando una computadora PDP-1. En la década de los 70s empezaron a surgir las consolas de videojuegos, y es 1972 cuando Atari libera Pong, el primer juego de consola que además incorporaba el primer oponente con IA. Pong era un juego de tenis con gráficos en dos dimensiones y un contrincante artificial que determinaba su movimiento mediante una ecuación. Algunas fuentes no consideran que Pong usara IA, sin embargo, si se toma el criterio de que el contrincante era capaz de percibir el movimiento del jugador y de decidir la acción a ejecutar, me inclino por adjudicarle una forma de IA básica. Las primeras estrategias de dar inteligencia a los personajes pueden considerarse primitivas, sin embargo, lograban su objetivo: retar al jugador.

Desde entonces, con el incremento de la capacidad de recursos gráficos, de procesamiento de cómputo y el avance en las técnicas de programación y de IA, cada generación de videojuegos presenta mejoras sustanciales. Desde el punto de vista social, la aparición del primer oponente no-humano originó que los jugadores solitarios ya no dependieran de que sus amigos estuvieran libres para poder jugar.

Técnicas de IA en videojuegos

El mundo de los videojuegos es muy atractivo para la incorporación de técnicas de IA pues permite experimentar sin el riesgo de ocasionar desastres. A diferencia de un robot humanoide, un personaje de videojuego no se enfrenta a los problemas de percepción del mundo real. Las capacidades sensoriales del personaje las define el programador de acuerdo a la representación del ambiente. Nadie se preocupará si una criatura alada destruye una pared o una civilización completa. Por el contrario, si un robot cae por las escaleras debido a errores en su procesamiento visual, puede ocasionar costosos daños tanto a sí mismo como a los humanos y objetos que sean afectados a su paso. Estas diferencias han hecho que se piense que en los videojuegos realmente no se aplica IA puesto que las habilidades y funciones de un personaje distan mucho de ser análogas a las de un humano. Los robots humanoides, por el contrario se construyen y programan con el objetivo de que posean habilidades propias de las personas.

La posibilidad de inteligencia de una máquina ha dado lugar a controversias filosóficas [6]ra las que aun no hay acuerdo. Existen dos hipótesis: 1) la IA débil afirma que las máquinas podrían actuar de forma inteligente, es decir, simular ser inteligentes, y 2) la IA fuerte afirma que para que una máquina sea inteligente debería realmente pensar. Bajo esas hipótesis, aun el más avanzado robot de la actualidad solamente está simulando tener inteligencia.

A pesar de las controversias de cualquier índole que se puedan suscitar, la realidad es que cuando jugamos, lo que nos interesa es que los personajes y su mundo nos proporcionen retos constantes. No importa si nuestros contrincantes simulan que piensan, si realmente piensan o si son controlados por duendes diminutos que habitan en el hardware.

De los mecanismos de razonamiento que se han usado en videojuegos, algunos son los más populares. Por lo tanto, todo monstruo, personaje y objeto del juego que se presuma inteligente probablemente posee alguna de las técnicas que a continuación se mencionarán. Uno de los métodos más utilizados para describir comportamientos son las máquinas de estados finitos; estas consisten en un conjunto de estados y las transiciones entre ellos delimitados por un estado inicial y un estado final. Cada personaje o elemento del juego puede tener un conjunto de estados durante su vida: un vigilante puede armarse, patrullar, atacar y dormir, mientras que otro personaje puede tener distintos estados como cazar, sembrar, construir y defenderse. Dependiendo del estado en el que se encuentre el personaje y el estímulo recibido por el ambiente, se realizará la acción correspondiente y el personaje pasará a otro estado. En muchos juegos básicos, los personajes deciden la acción a ejecutar viendo tablas lookup que almacenan los posibles estados del personaje y las mejores acciones asociadas. Otros mecanismos básicos se basan en conjuntos de reglas escritas directamente en el código del juego o en scripts de comportamiento que el código interpreta. Por lo general, los conjuntos de reglas contienen un vocabulario de condiciones con una acción asociada. Las condiciones corresponden a las percepciones que el personaje tiene del mundo o de si mismo (el estado del mundo). Unejemplo [4] es el siguiente:

SI MARIO_PUEDE_SALTAR == VERDADERO Y
EXISTE_OBSTACULO_ADELANTE == VERDADERO

ENTONCES AVANZA = VERDADERO

donde la variable AVANZA representa un conjunto de acciones que Mario ejecutará al cumplirse las condiciones. En este caso, Mario se moverá hacia el extremo derecho de la pantalla y evadirá los obstáculos.

En muchos casos, los comportamientos se seleccionan de forma aleatoria. Al principio esta estrategia puede ser sorprendente pues el comportamiento del personaje es inesperado. La desventaja es que después de un tiempo, el jugador llega a conocer las distintas reacciones del personaje y se termina la sorpresa. Para evitar tener un conjunto de reglas fijas y el consecuente tedio del jugador, se introdujeron técnicas de aprendizaje automático que dieran la capacidad a los personajes de aprender reglas nuevas. La creación de reglas nuevas puede hacerse por esquemas evolutivos en los cuales el conjunto total de reglas se divide en subconjuntos y mediante algoritmos genéticos se crean nuevos individuos (las nuevas reglas).

El aprendizaje inductivo de árboles de decisión [5] ha sido uno de los esquemas más exitosos. Un árbol de decisión toma como entrada un objeto o situación descrito por un conjunto de atributos y da por resultado una decisión. Para el ejemplo de Mario, los atributo corresponderían a las condiciones: MARIO_PUEDE_SALTAR y EXISTE_OBSTACULO_ADELANTE, mientras que la decisión es la acción a ejecutar: AVANZA. Para aprender un árbol, se da un conjunto de ejemplos consistentes en atributos y sus decisiones. En general, el proceso consiste en seleccionar el atributo que divida mejor los ejemplos en relación a sus decisiones. La idea es construir un árbol que describa el conjunto de ejemplos. Para interpretar el árbol, hay que ver el camino del nodo raíz al nodo hoja como el equivalente a una regla SI…ENTONCES por lo que habrá tantas reglas como ramas tenga el árbol.

Por último, las redes neuronales artificiales tratan de emular el funcionamiento de las neuronas cerebrales. Son también un mecanismo de aprendizaje inductivo cuya entrada son atributos y la salida es una función objetivo que aprende los parámetros requeridos para ciertas tareas como por ejemplo, la velocidad y aceleración requeridas para controlar el avión del enemigo. La primera aplicación popular del aprendizaje automático es Creatures (1996), que utiliza redes neuronales.

Otras herramientas muy útiles son los métodos de búsqueda para que los personajes puedan encontrar el mejor camino entre dos puntos. Ésta es una tarea clave para cualquier juego pues de eso depende que los personajes cacen, persigan y encuentren lo que quieren. Uno de los algoritmos de búsqueda más populares es el llamado Algoritmo A*.

Aunque se ha hablado únicamente sobre comportamiendos individuales, los personajes también necesitan estrategias para comportamientos en grupos y en multitudes, técnicas de planificación, expresión de emociones y proceso de lenguaje natural. Para todas estas tareas hay técnicas específicas; las aquí mencionadas solamente son algunos ejemplos de lo que podemos encontrar frecuentemente.

Aplicaciones

La creación de videojuegos se ha convertido en un área de investigación cuyos tópicos de estudio incluyen el proceso de diseño de un juego, modelado en 3D, animación, física, IA y programación avanzada. Si curioseamos las publicaciones sobre IA en videojuegos, podemos encontrar que ya no solamente se están investigando y analizando nuevas formas de integrar IA a los personajes sino que también se están analizando las reacciones en los jugadores.

Han surgido competencias como la Mario AI Competition, cuyo objetivo es crear el mejor jugador artificial de Super Mario Bros. La plataforma de experimentación es una versión modificada del juego. En ese contexto, una de las propuestas es construir un agente basado en reglas evolutivas que aprenda a jugar Mario [3]. Otro enfoque que está cobrando fuerza es el análisis de los comportamientos como grupo social. Una propuesta [7] presenta un análisis de la evolución de estructuras sociales en el juego World of Warcraft. En este juego los personajes deben organizarse en equipos y cada personaje es controlado por un jugador humano. Como consecuencia, los registros del juego contienen información valiosa para el estudio de la interacción humana. El objetivo del análisis es encontrar patrones que proporcionen información para el futuro diseño del juego. Debido a la gran cantidad de datos involucrados, una técnica conocida como minería de datos se está aplicando, dando lugar a lo que le llaman minería de juegos.

Por otra parte, las reacciones físicas del jugador también son importantes. A tal punto, que se están desarrollando modelos para medir el nivel de diversión de un jugador en videojuegos de acción [4]. Las principales dificultades de esta investigación han sido identificar el cambio de estado emocional de la persona y la captura de datos fisiológicos mediante sensores.

Los resultados de estas investigaciones son experimentales y con buena suerte, muchos de estos resultados se incorporarán de forma transparente a las aplicaciones liberadas al público. Ahora, veamos algunas características de IA que poseen los videojuegos con los que ya podemos interactuar. El sitio AiGameDev [1] nos da la lista de los diez videojuegos que han sido un parteaguas en su integración de técnicas de IA. La lista indica el nombre del videojuego, la fecha de liberación y su innovación en IA.

  1. Black & White (2001). Interacción con una criatura que puede aprender por ejemplos y mediente el uso de premios y castigos. El diseño del juego integra vida artificial a la par que estrategia. Uso de una sólida arquitectura de IA basada en ciencia cognitiva. Aplicación exitosa de técnicas de aprendizaje automático tales como árboles de decisión y redes neuronales.
  2. F.E.A.R. (2005). Integración de un planificador para generar comportamientos sensibles al contexto.
  3. Façade (2005). Procesamiento de lenguaje natural.
  4. Halo (2001). Árboles de comportamiento para modelar situaciones y acciones de los personajes.
  5. Creatures (1996). Primera aplicación popular del aprendizaje automático en una simulación interactiva.
  6. The Sims (2000). Objetos inteligentes, modelado de las interacciones entre objetos y personajes, modelado de deseos e interacción a nivel emocional.
  7. Thief (1998). Modelado sensorial, los personajes responden a la luz y a los sonidos.
  8. Total War (2000-2006). IA aplicada a multitudes, modelado de emociones.
  9. Half-Life (1998). Escenas interactivas, personajes con IA en todos los niveles del juego.
  10. Sim City (1989). Control de simulaciones complejas.

Un ejemplo de juego de código abierto que incorpora IA y que no se incluye en la lista es Freeciv, juego que de acuerdo a una confiable y viciosa fuente, es incomparable con respecto a su versión comercial conocida como Civilization.

El surgimiento de tecnologías como Kinect marcarán otra etapa en el desarrollo de videojuegos con IA. La interacción natural facilitará la integración de aprendizaje a partir de los movimientos del propio jugador. Así, podremos generar un clon que pueda aprender de nuestras estrategias de lucha o nuestras habilidades en el boliche. Se esperan muchas innovacionescon base en estas tecnologías para los próximos años.

Como hemos visto, el mundo de los videojuegos ha generado inquietudes en áreas como filosofía, ciencias cognitivas, ciencias sociales y ciencias computacionales. Un videojuego puede verse como un micromundo que es un reflejo, una muestra de la sociedad real. La incorporación de IA a esos micromundos aumenta la complejidad de las interacciones personajes-jugadores y por lo tanto, atrae el interés de las diversas áreas de conocimiento que en esos micromundos convergen.

Ahora sabemos que lo que existe en la mente de los monstruos y demás criaturas y objetos inteligentes consiste básicamente en reglas, árboles y funciones. Así que la próxima vez que un personaje te derrote, recuerda que sigues teniendo la ventaja: él no tiene idea de cómo funciona tu mente.

Nota: Posiblemente se omitieron videojuegos o técnicas que de acuerdo a tu experiencia, merecen ser mencionados. En tal caso, participa diciéndonos qué juego/técnica es y por qué es importante.

Referencias
[1] AIgamedev. Aigamedev.com, 2011. http://aigamedev.com/. Fecha de consulta: 25 de
Enero de 2011.
[2] NY BNL. The first video game?, 1998. http://www.bnl.gov/bnlweb/history/higinbotham.asp. Fecha de consulta: 2 de Febrero de 2011.
[3] Slawomir Bojarski y Clare Bates Congdon. Realm: A rule-based evolutionary computation agent that learns to play Mario. En CIG ’10: IEEE Symposium on Computational Intelligence and Games, pp. 83 – 90, Dublin, 2010.
[4] Florent Levillain, Joseph Onderi Orero, Maria Rifqui, y Bernadette Bouchon-Meunier. Characterizing players experience from physiological signals using fuzzy decision trees. En CIG ’10: IEEE Symposium on Computational Intelligence and Games, pp. 75 – 82, Dublin, 2010.
[5] J.Ross Quinlan. C4.5: Programs for machine learning. San Francisco, CA, USA, 1993. Morgan Kaufmann Publishers Inc.
[6] Stuart Russell y Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice Hall, segunda edición, 2003.
[7] Christian Thurau y Christian Bauckhage. Analyzing the evolution of social groups in World of Warcraft. En CIG ’10: IEEE Symposium on Computational Intelligence and Games, pp. 170 – 177, Dublin, 2010.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: