Anda di halaman 1dari 17

APLICACIONES DE INTELIGENCIA ARTIFICIAL EN VIDEOJUEGOS

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

Sistemas Electrnicos Inteligentes INDICE

Adrin Navarro Rodrguez

Pg. INTRODUCCIN......... 2 HISTORIA DE LA IA EN LOS VIDEOJUEGOS.. 3 TCNICAS DE IA DETERMINISTA MS USADAS 4 TCNICAS DE IA NO DETERMINISTA MS USADAS 4 ALGORITMO MINIMAX. 5 COMPUTACIN EVOLUTIVA. 6 REDES NEURONALES ARTIFICIALES.. 7 ALGORITMO A*. 9 MICROSOFT DRIVATAR. 10 ARQUITECTURA DE UN BOT REAL. 11 MOTOR DE IA PARA JUEGO DE FTBOL 13 CONCLUSIONES.. 15 REFERENCIAS 16

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

INTRODUCCIN:
En este trabajo intentaremos conocer un poco mas a fondo las formas que tienen los desarrolladores para implementar algoritmos de Inteligencia Artificial en los videojuegos. La IA se emplea en diferentes campos de la programacin de videojuegos, en este trabajo trataremos, sobre todo, la IA de los personajes no controlados por un jugador o tambin llamados BOTS (por ejemplo los enemigos que nos encontraramos en un juego de disparos en primera persona o FPS). Para empezar, lo que deberamos hacer es distinguir entre lo que podemos llamar inteligencia artificial y lo que no. En cuanto a programacin de bots se refiere: Diremos que los bots tienen IA cuando estos tengan un comportamiento no predecible y que este adems dependa de nuestras acciones. Tambin se puede llamar IA no determinista. En estos casos, al subir la dificultad del juego, los oponentes se volvern ms astutos. Dando mucho ms entretenimiento al jugador. Sin embargo, esto puede tener su parte negativa ya que si son demasiado astutos, el juego se puede volver tedioso y dejar de ser entretenido para muchos de los jugadores. No olvidemos que los videojuegos son un negocio y como tal, se rige por las ventas. Por otro lado, diremos que los bots no tienen IA cuando se limiten a repetir siempre las mismas acciones sin importar lo que nosotros hagamos con nuestro personaje. Se llama tambin IA determinista. En estos casos, al subir la dificultad, lo usual suele ser que los bots comiencen a hacer trampas. (por ejemplo: se vuelven mas fuertes, pueden ver a travs de las paredes, pueden tele-transportarse, etc).

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

HISTORIA DE LA IA EN LOS VIDEOJUEGOS:


La relacin de la IA con los videojuegos es clara, dejando a un lado su definicin estricta, la IA ha estado presente desde prcticamente el nacimiento de los videojuegos. Los primeros estudios sobre IA en juegos pueden otorgarse a Arthur Samuel , que ya en 1959 public el articulo Some studies in machine learning using the game of checkers en IBM JOURNAL.

Aos despus en los 70s empezaron a aparecer los primeros videojuegos para un jugador, estos eran muy simples y tenan los movimientos de los enemigos previamente almacenados. Es decir, se limitaban a reproducir movimientos como si fuera una pelcula.

A finales de los 70s aparecieron los juegos SPACE INVADER, GALAXIAN y PAC-MAN , que fueron los primeros en incorporar enemigos que actuaban en consecuencia a los movimientos del jugador. Pero no fue hasta principios de los 90s cuando los desarrolladores empezaron a aadir tcnicas de IA propiamente dichas a juegos como AGE OF EMPIRE y posteriormente a BLACK&WHITE, PRAETORIAN o SPORE

Desde que empez a usarse hasta da de hoy, la IA ha ido ganando terreno en el campo de los videojuegos hasta el punto que hay ttulos cuyo xito se debe prcticamente a su IA. Como es el caso de SPORE.

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

TCNICAS DE IA DETERMINISTA MS USADAS:


Hacer trampa: El juego conoce toda la informacin de tu(s) personaje(s) y la usa en tu contra. Scripting: El comportamiento del PNJ esta controlado por una subrutina que es disparada por algn evento. Maquinas de estado finitas: Bsicamente, la idea es enumerar un nmero grande de estados para los bots e ir haciendo transiciones entre ellos utilizando condicionales. Lgica difusa: Se usa una funcin difusa sobre la maquina de estados finita para intentar dar ms posibilidades.

TCNICAS DE IA NO DETERMINISTA MS USADAS:


Algoritmo Minimax (rbol de decisiones). Computacin evolutiva. Redes neuronales artificiales. Algoritmo A* ( Pathfinder )

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

ALGORITMO MINIMAX:
Es el algoritmo mas conocido y utilizado para juegos de 2 adversarios con movimientos alternos en los que no influye el azar ( Ajedrez, damas, 3enRaya, etc). Identificaremos a cada jugador como el jugador MAX y el jugador MIN. MAX ser el jugador que inicia el juego, (supondremos que somos nosotros) y nos marcaremos como objetivo encontrar el conjunto de movimientos que nos proporcionen la victoria. Este algoritmo se basa en el ARBOL DE COMPORTAMIENTO. Este concepto es sencillo y puede entenderse claramente con el ejemplo del 3enRaya:

Vemos como para todos los posibles movimientos de cada jugador se crean ramificaciones en el rbol de manera exponencial. Tambin es evidente que para juegos ms complejos, el rbol se volver mucho ms complejo. Por ejemplo, en el caso del ajedrez, en pocos movimientos podemos obtener un rbol demasiado complejo hasta para los procesadores de hoy en da. Una solucin es analizar un nmero determinado de niveles de ramificacin (poner un horizonte), pero esto no es lo mas recomendable. Es por esto por lo que a este algoritmo se le aaden herramientas de gestin y reduccin de ramificaciones como la poda alfa-beta entre otras. La poda ALFA-BETA de la bsqueda Minimax consiste en podar ramificaciones que no son de necesario anlisis para llegar a la mejor solucin. Por tanto permite eliminar partes grandes del rbol sin influir en la calidad de la decisin final. REFERENCIA: http://www.fenach.cl/docs/memoria/node1.html

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

COMPUTACION EVOLUTIVA:
El trmino computacin evolutiva o algoritmos evolutivos engloba una serie de tcnicas inspiradas en la evolucin natural. En trminos generales, para simular el proceso evolutivo en una computadora se requiere: Codificar las estructuras que se replicarn Operaciones que afecten a los individuos (tpicamente, se usa cruce y mutacin). Una funcin de aptitud que nos indique qu tan buena es una solucin con respecto a las dems. Un mecanismo de seleccin que implemente el principio de supervivencia del ms apto

Ejemplo de aplicacin: Puesta a punto de coches en juegos de carreras.

El juego que usaremos es TORCS (The Open Racing Car Simulator).Un simulador de carreras multiplataforma que aparte de usarse como un juego normal de carreras de coches, se puede utilizar como una plataforma de investigacin al permitir la incorporacin directa o indirecta de IA. En este caso usaremos la IA de manera indirecta para optimizar ciertos parmetros del coche para cada circuito, por ejemplo: el ngulo de los alerones o la suspensin del coche,etc....Por tanto, es un marco de pruebas ideal para los algoritmos basados en computacin evolutiva. El algoritmo evolutivo ser aplicado para buscar los mejores parmetros para el coche (pilotado siempre por el mismo bot) durante una cantidad fija de tiempo de juego. Es decir buscaremos los parmetros que hagan que el coche recorra la mxima distancia con un tiempo fijo.

REFERENCIA: concurso GECCO ( http://cig.ws.dei.polimi.it/?p=231 ) 6

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

REDES NEURONALES ARTIFICIALES:


Se trata de un sistema de interconexin de neuronas en una red que colabora para producir un estmulo de salida. Ejemplo de aplicacin: QUAKE NEURALBOT

En este caso tenemos un bot que usa una RNA para controlar sus acciones y un algoritmo evolutivo que se ejecuta cada 5 minutos para entrenar esta RNA.

REFERENCIA: http://homepages.paradise.net.nz/nickamy/neuralbot/nb_about.htm 7

Sistemas Electrnicos Inteligentes Ejemplo de aplicacin 2: Coling McRae Rally 2

Adrin Navarro Rodrguez

En este caso se usan dos principios para los bots: Lnea de trazada: Representa informacin condensada de la pista (Anchura, variacin de anchura, direccin, radio de curvatura, pendiente, etc). Modelo de piloto: Implementa una red neuronal de varias capas para que los pilotos sigan la lnea de trazada. Sus entradas son: velocidad, posicin, curvatura de la lnea de trazada en la proximidad, etc Adems, los bots seguirn la lnea de trazada de una manera u otra, segn el tipo de superficie por la que conduzcan. ( asfalto, tierra o nieve). Es decir, existen diferentes modelos de piloto para las diferentes superficies y van cambiando al vuelo.

REFERENCIA: http://www.ai-junkie.com/misc/hannan/hannan.html 8

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

ALGORITMO A* (PATHFINDING):
Este algoritmo se unas para hacer bsquedas de caminos. Es usado en casi todos los juegos FPS (disparos en primera persona) cuando los bots quieren perseguir al jugador. Vamos a asumir que tenemos un bot que debe ir desde el punto A hasta el punto B. Asumamos tambin que un muro separa estos dos puntos. El ejemplo queda ilustrado en el grfico siguiente, donde el recuadro verde es el punto de inicio A, el rojo es el punto de destino B y la zona azul el muro que hay entre ambos.

El algoritmo se basa en la eleccin del camino ms corto, para ello punta cada posible camino de la siguiente manera: F=G+H Donde: G = el coste de movimiento para ir desde el punto A a un cierto cuadro de la rejilla, siguiendo el camino generado para llegar all. H= el coste de movimiento estimado para ir desde ese cuadro de la rejilla hasta el destino final, el punto B. Una vez valorados todos los caminos, elige el de menos costo F. REFERENCIA: http://www.policyalmanac.org/games/aStarTutorial.htm 9

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

MICROSOFT AI DRIVATAR:
Es una tecnologa que pertenece a Microsoft. Esta integrada en su simulador de carreras FORZA MOTORSPORT. Su funcin principal es controlar a los dems coches de la carrera conducidos por bots. Por otro lado, se usa para entrenar a los bot y que estos sean capaces de emular tu conduccin y jugar por ti en determinadas carreras. AI DRIVATAR se basa en tres puntos clave: Especifica la lnea de trazada a seguir por el coche.

Mantiene el coche en la lnea de trazada. Contempla y realiza estrategias de carrera (adelantamiento, bloqueo, entrada en boxes, etc).

Descomposicin simplificada del sistema Drivatar:

REFERENCIAS: http://research.microsoft.com/en-us/projects/drivatar/default.aspx

10

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

ARQUITECTURA DE UN BOT REAL:


En este apartado vamos a centrarnos en una aplicacin rea. Aunque es antigua, demuestra la complejidad de la IA actual en cuanto a videojuegos se refiere. El juego en concreto es QUAKE 3 (id software 1999) y en el desarrollo de los bots se aplicaron las siguiente tcnicas de IA: Pathfinding (algoritmo A*/bsqueda de caminos), mquinas de estado finitas, lgica difusa, redes neuronales y sistemas expertos. La arquitectura de este bot se compone de las siguientes capas:

CAPA 1: Es la capa mas baja. Bsicamente la entrada/salida del bot. Las entradas (Area Awareness System), Se encarga de toda la informacin que el bot puede percibir Por otro lado basic actions, Son las salidas del bot, ( moverse, disparar, etc) CAPA 2: Simula el subconciente de un jugador experimentado con reglas de lgica difusa. Se ocupa de seleccionar las acciones a realizar entre las diferentes posibilidades y tambin de interpretar y responder por el chat. CAPA 3: Esta capa est compuesta de reglas if-then-else y de redes neuronales. En ella tienen lugar los razonamientos y pensamientos de alto nivel del bot, tales como: decisiones, comportamiento de combate, rodear obstculos, etc CAPA 4: Solo se usa en juegos en equipo cuando el bot es el lder de este. Se comunica con los dems jugadores evaluando la situacin y dictando las ordenes adecuadas.

11

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

Una vez definidas las capas de la arquitectura, podemos pasar a ver el flujo de informacin que circula entre ellas:

En la figura vemos como la informacin fluye de unos mdulos de las capas a otros (de otras capas), este flujo es cerrado y como se describe en la figura, teniendo por ejemplo la red neuronal conexin solo con la capa inferior, pero con mas de un mdulo de esta. Las flechas hacia arriba representan la informacin del estado del bot y su entorno. El bot usa esta informacin para estar al tanto de todo lo que ocurre dentro del juego. Tambin usa la informacin para decidir los objetivos y el orden de preferencia de estos. Las flechas que bajan indican el flujo de informacin resultante de las decisiones del bot, estas decisiones a su vez son traducidas a los movimientos bsicos del bot. Todo este flujo de informacin (entrante o saliente) se procesa en pocos milisegundos ya que este proceso no debe influir en la velocidad del bot o del juego.

REFERENCIA: http://dev.johnstevenson.co.uk/bots/20585341-The-Quake-III-Arena-Bot.pdf

12

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

MOTOR DE IA PARA JUEGO DE FTBOL


Describiremos los fundamentos de la IA de los bots en un juego de ftbol. Los futbolistas de cada equipo tienen que conseguir meter ms goles que los del otro equipo, establecindose para ello unas relaciones de oposicin y de cooperacin entre estos. Teniendo como referencia la posesin de la pelota se pueden diferenciar dos fases y en cada una tres principios Ataque: Cuando el equipo tiene la posesin de la pelota Meter gol Avanzar Mantener la posesin de la pelota

Defensa: Cuando el equipo no tiene la posesin de la pelota Proteger la portera Cortar el ataque del rival Recuperar la pelota

Ante las situaciones que se plantean en el ftbol, cada jugador debe responder de una u otra manera. La efectividad del juego reside en elegir la ms idnea de cuantas posibilidades de respuesta se presentan. Esas respuestas o comportamientos sern diferentes si el jugador est atacando o defendiendo. Para facilitar la toma de decisiones de los futbolistas se divide el campo en regiones, permitiendo asociar una determinada posicin a una regin.

Adems, como vemos en la segunda figura, dividiremos el campo en tres zonas ofensivas que ayudaran a los bot a tomar las decisiones adecuadas al desarrollo del juego. Por tanto, la reaccin de un bot depende de si tiene la pelota o no y de la zona en la que se encuentre. Es obvio que atendiendo a esas dependencias, las posibles conductas de los bots son muchas. Nos centraremos en un caso concreto: Un bot en ataque, con posesin de la pelota y en la zona que incluye el rea contraria. 13

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

Restringindonos ms, el caso que estudiaremos ser el del bot ya posicionado ptimamente y a punto de chutar a portera. Su comportamiento sera el siguiente:

Podemos ver en el grfico, como lo primero que debe hacer es orientarse a la portera. El subcomportamiento OrientarseAPorteriaRival es el encargado de ello. Lo primero que har ser modificar su conocimiento con la portera como target de orientacin, seguidamente en cada iteracin el futbolista modificar su orientacin mediante el comportamiento Orientarse que extrae la posicin del target y ejecuta la accin orientarse del futbolista. Posteriormente el sub-comportamiento CalcularMejorTargetChutePorteria calcular cul es la mejor posicin dentro de la portera a la que debe chutar para poder marcar. Por ltimo realizar el chute a dicha posicin.

REFERENCIA: http://upcommons.upc.edu/pfc/bitstream/2099.1/14090/1/69376.pdf

14

Sistemas Electrnicos Inteligentes

Adrin Navarro Rodrguez

CONCLUSIONES:
Como como conclusin sobre el tema: Pienso que aunque la IA en los videojuegos se ha desarrollado notablemente (y puedo decirlo por experiencia de usuario experto), existen varios factores que han recortado su avance: Diversin: Se han dado casos como en CRYSIS (Crytek 2007) en los cuales, al recibir el feedback de los beta-testers, estos se quejaban de la poca jugabilidad debida al alto grado de inteligencia de los bots. Es decir, los bots eran demasiado inteligentes. No es bueno que la IA frustre a los jugadores ya que son estos los usuarios finales y los que pagan para mantener la industria. Econmico: El desarrollo de IAs para los juegos de hoy en da se esta convirtiendo en un punto muy importante en los juegos y, por tanto, requiere un equipo especializado en IA y un gran tiempo. Por lo tanto no es barato y debe de entrar dentro del presupuesto. Rendimiento: Una IA compleja, generalmente, implica un requerimiento alto de proceso. Se han de compartir los recursos con los dems componentes del juego (motor grfico, motor de fsicas, entradas/salidas, entorno de sonido, etc) En ocasiones aun teniendo una buena IA programada, resulta imposible incluirla en el juego debido al coste en proceso que conlleva.

Como conclusin sobre el trabajo, he descubierto que en el campo de la IA pasa lo mismo que en otros campos (por ejemplo con los motores grficos): Las empresas suelen ser bastante conservadoras en cuanto a revelar la manera concreta que tienen de implementar la IA en los bots de sus juegos.

Por ltimo y como experiencia personal me ha gustado aprender un poco sobre los fundamentos tericos de los bots contra los que llevo jugando toda la vida y la evolucin que han ido siguiendo. Tambin lo veo un campo profesional interesante, debido a la gran expansin que ha tenido y tendr la IA dentro y fuera de los videojuegos.

15

Sistemas Electrnicos Inteligentes REFERENCIAS:

Adrin Navarro Rodrguez

http://www.fenach.cl/docs/memoria/node1.html

http://cig.ws.dei.polimi.it/?p=231

http://homepages.paradise.net.nz/nickamy/neuralbot/nb_about.htm

http://www.ai-junkie.com/misc/hannan/hannan.html

http://www.policyalmanac.org/games/aStarTutorial.htm

http://research.microsoft.com/en-us/projects/drivatar/default.aspx

http://dev.johnstevenson.co.uk/bots/20585341-The-Quake-III-Arena-Bot.pdf

http://upcommons.upc.edu/pfc/bitstream/2099.1/14090/1/69376.pdf

16