You are on page 1of 6

Logica difusa aplicada a agentes en juegos tipo shooters en 2d Edgar Cebolledo y Jaime Cabrera IIMAS, UNAM

Abstract: La inteligencia artificial en juegos de video est en constante evolucin. Este documento discute como los agentes inteligentes usando lgica difusa pueden aportar a crear agentes con comportamientos ms crebles, aumentando la experiencia del jugador. Keywords: Agente, Lgica difusa, Juego, Smash Tv. Introduccin: Los juegos de video se diferencian de otras formas de entretenimiento por su interactividad, este debe de interactuar con los jugadores para introducirlos al mundo del juego. Cada elemento de la experiencia de juego contribuye al todo. Para lograr introducir al mundo del juego, debe proyectar un aura de envolvimiento que Samuel Coleridge llamo Suspensin de la realidad [1], es un estado mental en el que el usuario voluntariamente decide creer que la ficcin es real. Esto no solo aplica a juegos, sino a pelculas, libros y otras formas de entretenimiento. Mientras mas pueda mantener un juego este estado mental, se dice que es mas inmersivo[1]. El uso de agentes se ha vuelto una prctica popular no solo en el desarrollo de juegos, sino tambin en otras reas de la computacin. Los agentes y la lgica difusa ayudan a la calidad de la interaccin en juegos. Los agentes proveen un paradigma que nos lleva a una interaccin flexible entre los personajes del juego y la lgica difusa nos permite generar comportamientos sutiles. Un agente inteligente es una entidad autnoma la cual observa y acta en un ambiente, y actan en base a una meta. En el caso de los agentes aplicados al diseo de juegos, los agentes representan a los personajes que el usuario encontrara, pero no solo eso, el mismo jugador es un agente. El uso de agentes facilita la creacin de comportamientos complejos, y se adhieren perfectamente al paradigma orientado a objetos. Una de las formas de romper la sensacin de suspensin de la realidad es con agentes no inteligentes, cuando un personaje del juego se queda en un ciclo o se atora con una pared, o hace algn comportamiento que no consideramos coherente, este estado mental se rompe, afectando la experiencia del juego. Los agentes inteligentes difusos tienen comportamientos ms sutiles, con ms combinaciones entre ellos, esto ayuda a crear la ilusin de que son entes inteligentes. A pesar de que los agentes clsicos tambin pueden dar la ilusin de inteligencia, es la sutileza de la lgica difusa la que lleva todava ms all esta ilusin. Adems, son alternativas fciles de disear e implementar.

Yifan, Petr y Wyard[2] usaron lgica difusa y agentes para crear agentes que juegan BattleCity. El juego: El juego que usamos es Zelda TV, es un juego tipo Arcade donde el objetivo es conseguir la mayor cantidad de puntos antes de morir. Los puntos se consiguen eliminando a los enemigos, los cuales pueden ser 3 diferentes enemigos, y el personaje principal(Link) puede usar 3 armas diferentes, cada una es efectiva contra un tipo de enemigo y dbil ante los otros. Link puede cambiar de arma tomando los iconos que aparecen en la pantalla cada cierto tiempo. El jugador tiene que evaluar que tipo de enemigos hay en pantalla para ver si cambia de arma o no, pues matar a un enemigo con el arma que es efectiva da mas puntos que matarlo con una que es dbil. Conforme pasa el tiempo mas y mas enemigos empiezan a aparecer en pantalla hasta que en algn momento el jugador pierda, se puede ver una imagen del juego en la figura 1.

Los personajes:

El juego tiene 3 enemigos diferentes que son: Cuadrpedo con mascara: Este enemigo por su mscara resiste las bombas y las flechas, pero es vulnerable al ataque con espada, su forma de atacar es tocando a Link. Ciclope: Este enemigo tiene un gran ojo, va dejando bombas por su camino e intenta acercarse al jugador, es vulnerable a las flechas. Gusano: Este enemigo solo emerge de la tierra para atacar lanzando un ataque mgico, su nica debilidad son las bombas, es invulnerable a flechas y espada.

Zelda TV empez teniendo una inteligencia artificial bastante pobre para los enemigos, simplemente seguan a link mientras lo atacaban. El objetivo es poder proveerlos de una inteligencia artificial basada en reglas difusas que permita un comportamiento menos predecible y ms inteligente.

Fig. 1

La estructura del juego: En la figura 2 podemos ver el diagrama de clases del juego, las clases de color naranja son parte del motor de juegos Garbage, que fue usado para el juego, y las clases de color blanco son las clases del juego.

Distancia al power up: Si hay un power up en el escenario, esta variable indica la distancia al power up, tiene 2 valores difusos, cerca y lejos. Eficacia del arma actual: Cada enemigo tiene un arma contra la que es dbil, y 2 que no le hacen mucho dao, esta variable tiene 2 valores, alta y baja. Eficacia del power up: Si hay un power up en el escenario, esta variable indica la eficacia que tendra el arma si el jugador tomase ese powerup, esta variable tiene 2 valores, alta y baja. Salud del enemigo: Esta variable indica que tanta salud o que tan vivo esta el enemigo, esta variable tiene 2 valores, alta y baja. Salud del jugador: Esta variable indica que tanta salud o que tan vivo esta el jugador, esta variable tiene 2 valores, alta y baja. Distancia al jugador:

Fig 2.

Esta variable indica la distancia del enemigo al jugador, esta variable tiene 2 valores, cerca y lejos. Reglas difusas: Estas variables difusas tienen diferentes valores para los 3 diferentes tipos de enemigos, y se usaron un total de 20 reglas. Las acciones posibles para los agentes son 2: alejarse u acercarse a algn objeto, donde el objeto puede ser: el jugador, un powerup o una bomba

Para la IA difusa, usamos 7 variables difusas: Distancia a la bomba: Si hay bombas en el escenario, esta variable toma la distancia a la bomba ms cercana, tiene 2 valores difusos, cerca y lejos.

Sistemas de lgica difusa: Los sistemas difusos basados en reglas es la forma ms usada de lgica difusa. Nosotros usamos el sistema difuso basado en reglas de Mamdami, el cual consta de 4 partes principales: Fusificador: Establece una asociacin entre los valores ntidos y los valores de entrada del Sistema de inferencia Base de conocimiento: Almacena informacin del problema en la forma de reglas de la forma IFTHEN Desfusificador: Hace lo opuesto al fusificador, toma los valores de salida del Sistema de inferencia, y los transforma a valores ntidos. Sistema de inferencia: Este sistema toma los valores fusificados, aplica las reglas de la base de conocimiento, y despus pasa esos valores al desfusificador.

toma al azar una regla de entre todas las que se cumplieron, en caso de que ninguna regla se cumpla, el enemigo perseguir al jugador.

Resultados: El uso de variables y reglas difusas nos permiti crear un comportamiento menos predecible en los personajes, y mas con la combinacin de 3 tipos de enemigos con sus propias variables, y ya no parece tan algortmico su comportamiento. Las desventajas es que con esta cantidad de reglas y la forma de eleccin de regla a usar, es difcil poder controlar el comportamiento de los personajes, crea un comportamiento que parece ms inteligente que otros, pero es ms difcil de analizar y de probar. En este juego los agentes operan de manera independiente entre ellos, de haber usado reglas que dependieran de otros agentes, hubiera sido todava ms complicado controlar y probar el comportamiento de los agentes. Otra de las desventajas es que hay una carga computacional mayor al estar calculando estas reglas difusas y aplicando las reglas, lo cual se refleja cuando hay muchos enemigos en pantalla, el juego no soporta tantos enemigos como antes de usar lgica difusa.

Las reglas de la base de conocimiento son del tipo: Si condicin1 y condicin2, entonces regla1 Si condicin2 y condicion3, entonces regla2 Para aplicar el operador y (and), se toma el valor mnimo entre las variables. Para la seleccin, se tomo un umbral de 0.5, esto es, cuando el mnimo de las variables difusas implicadas es mayor a 0.5, la regla se cumple, y para elegir que regla se usara, se

Conclusiones: La lgica difusa ayuda a crear comportamientos variados con pocas reglas, y el jugador puede esperar comportamientos menos predecibles de los agentes, pero esto tambin aplica al programador y diseador de la IA, por un lado es muy sencillo crear unas cuantas reglas y variables difusas, pero por otro lado es muy difcil controlar o predecir las acciones de los agentes, por lo que el tiempo de pruebas es mayor, se tienen que probar muchas situaciones y estar modificando las variables difusas hasta lograr un buen resultado. La carga computacional comparada con otras tcnicas con resultados comparables es similar, pero para juegos donde se espera tener decenas o cientos de agentes al mismo tiempo la lgica difusa no es la mejor opcin, al menos no sin combinarla con otras tcnicas de IA. Apendice: Las 20 reglas usadas son: Si dbomba es cerca y djugador es lejos entonces alejarse del objeto(bomba). Si dbomba es cerca y djugador es cerca y sjugador es baja entonces acercarse al objeto(jugador). Si dbomba es cerca y djugador es cerca y sjugador es alta entonces alejarse del objeto(bomba). Si dbomba es lejos entonces acercarse al objeto(jugador). Si dpowerup es cerca y epowerup es alta entonces acercarse al objeto(powerup). Si dpowerup es cerca y epowerup es baja entonces alejarse del objeto(powerup).

Si dpowerup es lejos y epowerup es alta entonces acercarse al objeto(powerup). Si dpowerup es lejos y epowerup es baja entonces acercarse al objeto(jugador). Si earmaactual es alta y epowerup es baja entonces alejarse del objeto(powerup). Si earmaactual es alta y djugador es cerca entonces alejarse del objeto(jugador). Si earmaactual es baja y epowerup es alta y dpowerup es baja entonces acercarse al objeto(powerup). Si earmaactual es baja y djugador es cerca entonces acercarse al objeto(jugador). Si earmaactual es baja y epowerup es alta y djugador es cerca entonces acercarse al objeto(jugador). Si sjugador es baja y earmaactual es baja entonces acercarse al objeto(jugador). Si sjugador es alta y earmaactual es alta entonces alejarse al objeto(jugador). Si sjugador es alta y senemigo es alta entonces acercarse al objeto(jugador). Si sjugador es baja y dbomba es cerca entonces acercarse al objeto(jugador). Si senemigo es alta y sjugador es baja entonces acercarse al objeto(jugador). Si senemigo es baja y sjugador es alta entonces alejarse del objeto(jugador). Si senemigo es alta y dbomba es cerca y djugador es cerca entonces acercarse al objeto(jugador).

Referencias: [1] http://en.wikipedia.org/wiki/Suspension_of_ disbelief [2] Yifan Li, Petr Musilek, Loren Wyard-Scott, Fuzzy logic in Agent-Based Game Design, 2004. [3] Oscar Cordon, Genetic Fuzzy Systems, World Scientific [4] W. Pedrycz and F. Gomide, An Introduction to Fuzzy Sets, Cambridge: MIT Press, 1998.

You might also like