Inteligencia Artificial en los Videojuegos. Javier Sotillo Mallo Cristian Martínez Ruiz Ingeniería de Telecomunicación Universidad Carlos III de Madrid 100275416 Ingeniería de Telecomunicación Universidad Carlos III de Madrid 100079127 ABSTRACT Hoy en día los videojuegos están presentes en el día a día de un gran porcentaje de las personas, con independencia de su edad, sexo, etc. Estos videojuegos tan ampliamente usados, cuya complejidad puede variar desde pocas líneas de código a un proyecto de 1000 millones de dólares no habrían tenido la expansión actual si no hubiese sido por un factor determinante: la introducción de la inteligencia artificial en ellos. Por ello, en estas líneas presentaremos brevemente la historia de la IA en los videojuegos, definiremos sus puntos más relevantes y finalmente mostraremos videojuegos que han realizado un trabajo destacable en éste aspecto así como el porvenir de la inteligencia artificial en éste sector. Keywords Videojuegos, IA, inteligencia artificial, NPC, PNJ, videogames, artificial intelligence, AI. 1. INTRODUCCIÓN No cabe la menor duda de que los videojuegos están ampliamente extendidos en el día a día de la sociedad. En ocasiones, cuando ciertas personas oyen la palabra videojuegos, piensan directamente en una persona sentada delante de una consola durante horas y horas, pero no debemos olvidar que el rango que abarca el mundo del videojuego es mucho mayor: desde la señora de 50 años que juega al sudoku en su móvil Android, pasando por los niños pequeños que juegan a un juego java de una determinada web hasta toda una familia que se reúne delante de un televisor para cantar las canciones de un singstar al más puro estilo karaoke tradicional, todos son considerados factores humanos del mundo del videojuego, y todos están viviendo experiencias más satisfactorias gracias a la aplicación de la inteligencia artificial. Por ello, en éste trabajo intentaremos acercar un poco más al lector al mundo de los videojuegos a través de su inteligencia artificial. Los avances tecnológicos, como la aparición de los microprocesadores permitieron avanzar en este campo, consiguiendo añadir cierta aleatoriedad a los enemigos que mejoraban su inteligencia. Numerosos avances se consiguieron a finales de los 70 en la inteligencia artificial en juegos como el famoso space invaders (1978) y el Galaxian (1979), que añadieron complejidad al juego introduciendo funciones hash que “aprendían” de los actos del jugador, considerándose los primeros sistemas de aprendizaje introducidos en el mundo del videojuego. La expansión continuó en los 80 con juegos como Pac-Man (1980) y Kárate Champ (1984) que introdujeron el concepto de “personalidad” en los enemigos mejorando la experiencia de juego, llegando a puntos de gran calidad como el caso de Madden Football, videojuego de fútbol americano que intentaba replicar en algunos aspectos el comportamiento de los jugadores más importantes de la liga. Sin embargo el verdadero boom fueron los años 90, con la aparición de numerosas consolas de enorme calidad, como gameboy, NEO-GEO, Sega Saturn, SNES, Super Nintendo, Dreamcast o PS-ONE. Se introdujeron las máquinas de estados, las decisiones en tiempo real, la toma de caminos, el aprendizaje, etc. Famosas por su complejidad fueron en esta década las IAs de juegos como Black and White o Creatures que llevaron el aprendizaje un paso adelante, introduciendo la actuación de los personajes en función de lo que les enseñábamos. A finales de los 90 el mundo de los videojuegos seguía en expansión y con ello el desarrollo de sus inteligencias artificiales. Importantes logros obtuvieron en esta materia juegos como GoldenEye 007, inspirado en el agente secreto más famoso de la historia, siendo el primer FPS (first-person shooter) que introducía una IA que reaccionaba en tiempo real a las acciones y movimientos de los jugadores. Half-life (1999) introdujo el concepto de cooperación entre enemigos para cubrirse, buscar al jugador, flanquear al adversario, etc. 2. LA HISTORIA DE LA IA EN LOS VIDEOJUEGOS. La primera semilla fue plantada en el año 1959 por Arthur Samuel en su libro “Some studies in machine learning using the game of checkers” gracias al cual programó un juego de damas en el que se implementaba por primera vez una cierta inteligencia artificial basada en un sistema de autoaprendizaje. Puede ser sin duda el punto de partida de la IA en los videojuegos, permitiendo en años posteriores que empezasen a aparecer los juegos para un solo jugador como fueron el caso de Qwak, el pursuit, hunt the Wumpus o Star Trek, que comenzaban a almacenar los movimientos de los enemigos. Half-life (1999) Entrando ya en el siglo XXI, Halo(2001) introdujo en los enemigos el reconocimiento de amenazas como granadas, precipicios o vehículos, los cuales también podían manejar, mientras que en el año 2004 Far Cry utilizaba métodos de aprendizaje para adivinar el comportamiento del jugador y emplear tácticas militares contra él, además de una forma bastante “legal”, en la que no usaba en todo momento la posición del jugador si no la última posición en la que los enemigos le habían visto, introduciendo un componente que dotaba de más realismo a la experiencia. Un punto a destacar en la evolución de la inteligencia de los enemigos en los videojuegos fue FEAR (2005) que incluyó por primera vez planificación en tiempo real usando GOAP (GoalOriented Action Planning) el cual le permitía adaptarse de forma dinámica a los sucesos del entorno. Más sucesos destacables en la historia de la inteligencia artificial de los videojuegos son la identidad canina recreada por nintendogs (2005), las estrategias de avance y ataque de Command & Conquer y Starcraft, el player-ID de Pro evolution Soccer o incluso otros avances para videojuegos que en realidad no son concebidos como tal, como la famosa y amigable Irene de la RENFE: http://consulta.renfe.com/base/main Existen otros numerosos y más recientes avances que se comentarán posteriormente para conocer presente y el futuro de la IA en los videojuegos. 3. OBJETIVOS. Un punto importante es definir cuál es el objetivo principal a la hora de implementar inteligencia artificial en los videojuegos. Aunque a simple vista puede parecer que el objetivo final está claro, en realidad no es tan sencillo. En general, los sistemas que implementan inteligencia artificial, como aquellos orientados a medicina o ingeniería, requieren resultados precisos y exactos y por supuesto una ausencia de fallos total. Sin embargo en el mundo de los videojuegos, la mayoría de las veces esto no es así. El objetivo final suele ser siempre el de hacer de un sistema artificial, como un enemigo de un videojuego, un organismo lo más parecido a un ser humano posible. Por ello, como el ser humano es defectuoso, así lo debe ser el rival. Pongámonos en un ejemplo: imaginemos un videojuego de fútbol, como el archiconocido FIFA. Si creásemos un sistema inteligente al uso, es decir exacto y sin errores, nuestros rivales siempre elegirían el mejor pase, lo ejecutarían de forma perfecta, así como los tiros, las paradas, las posiciones, la defensa, etc. Eso implicaría que para el ser humano sería completamente imposible batir a dicho enemigo artificial. Por ello, la IA que creemos debe ser imperfecta, es decir, ser poco precisa, subjetiva, tener fallos y emociones con el objetivo de intentar que se asimile lo más posible a un ser humano. Un buen ejemplo de ello son los videojuegos de la reciente saga Arkham de Batman, en los cuales algunos enemigos llegaban a sentir miedo, arrojando sus armas y entrando en estados de pánico que los hacían vulnerables. Por lo tanto, ese debe ser el objetivo de todo ente artificial al que se le aplique un sistema de inteligencia artificial en un videojuego: asimilar su comportamiento lo máximo posible con el que tendría un ser humano. Batman Arkham city (2011) 4. EL TEST DE TURING. Una vez definidos los objetivos, podemos observar que éstos guardan una estrecha relación con uno de los paradigmas de la inteligencia artificial, el test de Turing (1950). Alan Mathison Turing fue un matemático, filósofo y criptólogo británico considerado precursor de la informática moderna que propuso un test para mostrar la inteligencia de una máquina. Según su teoría, una máquina que se comporta en todos los aspectos como un ser inteligente, entonces debe ser inteligente. Su test consistía en situar en una habitación a un juez, humano y en otra una máquina y un ser humano. Así, el juez llevaría a cabo preguntas a los dos, y estos responderían, estando en su mano la opción de mentir o no. En caso de que la máquina fuese inteligente, el juez no sería capaz de discernir cuál de los dos es la máquina y cual la persona. Con motivo del Test de Turing se lleva a cabo todos los años el premio Loebner, que premia jugosamente aquel dispositivo que sea capaz de pasar el test. En el caso de los videojuegos, el test de Turing se encuentra dentro del propio videojuego, de tal forma que los jueces son los propios jugadores, mientras que su juicio no se basa en este caso en las respuestas obtenidas si no en el comportamiento de los enemigos. El juez humano considerará que se encuentra con personajes dotados de capacidades humanas si tienen destreza, se cubren, razonan, en general, si actúan de forma humana. La forma en que los ingenieros tratan de dar esa personalidad a los elementos del juego quedará relatada en el siguiente punto. 5. NPCs Con NPCs o Non-player character nos referimos en el mundo de los videojuegos a aquellos personajes de mayor o menor relevancia manejados por la máquina y por lo tanto, dotados de mayor o menor inteligencia artificial. Desde los transeúntes de un videojuego de mundo abierto, a los aliados o enemigos de un juego de guerra pasando por los rivales y compañeros de equipo de un juego de deportes, todos entrarían en este grupo. A continuación se detallarán las principales características que se suelen querer de un NPC y que definen su inteligencia. 5.1 Dinamismo. 5.3 Objetivos y estrategia. El comportamiento de los NPCs tiene que ser siempre dinámico. Con ello nos referimos a que su comportamiento tiene que variar en función de cómo evolucione el progreso del juego. Un ejemplo sería el comportamiento de los compañeros y rivales de un juego de basket como NBA 2k14: la forma de defender y atacar, ofrecer apoyos, bloqueos, contraataques etc. no deberá ser igual si el marcador va 60-55 que si va 100-40. Los NPCs tienen que saber adaptarse dinámicamente al entorno y esa es tarea de los desarrolladores. En general se implementa mediante árboles de decisión que definen el estado del videojuego. No debemos olvidar que la finalidad última de un NPC es la de conseguir un objetivo final (ya sea dinámico o no). En general para la consecución de este objetivo se implementara una estrategia de mayor o menor complejidad. Por seguir con los ejemplos, en un videojuego de fútbol como FIFA, el objetivo final siempre es marcar gol y no encajarlo. Para ello se llevará a cabo una estrategia más o menos sofisticada que definirá como el NPC debe chutar, pasar, correr, donde se debe situar en el campo, etc. para conseguir el objetivo de marcar gol. En las manos del desarrollador está implementar estas estrategias y por lo tanto darle mayor o menor complejidad, dinamismo, etc. Esa complejidad dependerá en general de si implementamos la inteligencia de los NPCs de forma aislada o si centramos esfuerzos en realizar aparte una estrategia colectiva que permita una mejor consecución de objetivos Por ejemplo, en los juegos de acción en tercera persona, nos podemos encontrar con juegos menos sofisticados en el que los enemigos se limitan a esconderse tras el parapeto más cercano, mientras que existen otros mucho más refinados como puede ser Max Payne 3, en el que los enemigos se comunican, cambian de parapetos, tiran granadas para sacarte de tu cobertura, flanquean, etc. Este sin duda es otro apartado en el que la evolución tanto de los videojuegos como de la tecnología ha permitido un avance brutal. NBA 2k14 (2013) 5.2 Movimiento. En general, la mayoría de los NPC tienen algún tipo de movimiento que debe ser implementado. Forma parte también de la inteligencia a implementar, ya que en general deberán llevar a cabo seguimiento de rutas u objetivos, evasión de obstáculos, etc. El grado de sofisticación en este apartado ha crecido de una manera muy relevante. Desde el previamente mencionado Space Invaders, con una mecánica de movimiento realmente simple, hasta videojuegos actuales como GTA V, en el que los transeúntes andan, corren si tienen prisa, huyen de un tiroteo o un coche que se acerca de forma rápida, suben y bajan de coches, montan en bici, etc. el nivel de complejidad en éste apartado puede alcanzar cotas insospechadas. Este apartado conlleva además una animación de movimiento que dependerá también del dinamismo del juego mencionado en el apartado anterior: en el previamente mencionado GTA V, el movimiento no es igual al correr, andar, si estás cansado, herido o simplemente si eres un personaje u otro. Esta mezcla del dinamismo y el movimiento dota a los videojuegos de un realismo otrora inimaginable. Por último debemos mencionar que la complejidad de éste apartado no reside solo en el desplazamiento del NPC de un punto a otro, sino que numerosas variables pueden entrar en juego como obstáculos, posición del jugador, cambio de rutas ante cambio de estados del juego, elección de la mejor ruta como la llevada a cabo en juegos de coches, etc. En general, este es un apartado complejo que conlleva gran parte de los esfuerzos de los desarrolladores a la hora de realizar el juego. 5.4 Dificultad variable. Aunque este apartado podría tener cabida en el punto en el que hemos hablado sobre el dinamismo, consideramos relevante mencionar que la mayoría de los juegos tienen diferentes grados de dificultad, orientados a conseguir experiencias jugables plausibles para jugadores más o menos experimentados. Esto implica que la inteligencia de los NPCs no solo debe ser dinámica en el tiempo, si no que debemos de tener más de una inteligencia para cada NPC, con el objetivo de tener diferentes grados de dificultad. Esta variabilidad en la inteligencia de los enemigos y aliados puede conseguirse desde un simple cambio de variable a ser completamente una inteligencia artificial en los casos más extremos. En general esta variabilidad también será definida mediante árboles de decisión que definirán las diferentes IAs relacionadas con los diferentes grados de dificultad. Es relevante mencionar que nunca está de más incluir diferentes grados de dificultad, para que no se produzcan casos como Street Fighter IV o Dark Souls, considerados juegos realmente difíciles en sus grados de dificultad medios incluso para jugadores experimentados resultar algo a priori sencillo o que puede ir de la mano con la implementación de una buena inteligencia artificial para los NPCs, pueden darse casos en los que enemigos y aliados dotados de buena inteligencia terminen actuando fuera de contexto por la inexistencia o mal implementación de una inteligencia artificial por detrás que proporcione verosimilitud al contexto, como se puede observar por ejemplo en algún “fail” de Arma II, en el que los aviones se estrellan entre ellos. Dark Souls (2011) 6. LA INTELIGENCIA ARTIFICIAL COMO APOYO. La inteligencia artificial no es solo aplicada a los NPCs participantes de la interacción con el video-jugador. Hay otros elementos de los videojuegos que en ocasiones requieren de una cierta inteligencia que también será proporcionada por los desarrolladores del videojuego. Un ejemplo claro pueden ser los algoritmos de reaparición o respawn, usados en juegos multijugador. Estos algoritmos permiten a un jugador que ha muerto en el juego reaparecer para continuar jugando. Sin embargo, la posición en la que nazca este personaje debe cumplir una serie de requisitos dinámicos que solo podrán ser satisfechos si existe un sistema de respawn con inteligencia. Los objetivos que debe cumplir son tan variados como no nacer cerca de un jugador enemigo, no nacer cerca de una base enemiga, no nacer cerca de un objetivo, etc. Por ello, se precisa dotar de inteligencia no sólo a los NPCs sino también a un sistema que funciona en paralelo a los sistemas inteligentes de enemigos y aliados. En este apartado supuso una innovación el denominado “algoritmo de los tres segundos” por el cual este sistema inteligente esperaba tres segundos antes de colocar a un jugador en el lugar de renacimiento, con el objetivo de evitar que el jugador naciese en una zona donde alguien le pudiese disparar o apuntar nada más nacer pero que al mismo tiempo le permitiese estar cerca de la acción y no tener que recorrer grandes distancias hasta la zona donde se produjese la confrontación. Otro ejemplo de aplicación de la inteligencia artificial a los videojuegos más allá de la inteligencia que posean los NPC, es la adaptación del juego en función de los gustos personales de cada jugador, algo que se está potenciando hoy en día y que supone una de las experiencias que gracias a la IA son más gratificantes. Un claro ejemplo de ello es el conocido videojuego World of Warcraft, en el cual se van recopilando datos del usuario a lo largo del juego, y mediante minería de datos se extrae información sobre los gustos del mismo, para posteriormente potenciar estos gustos. Por ejemplo, si esa extracción de información permite saber que al usuario tiene ciertas preferencias por armas, atuendos, lugares, estos estarán desbloqueados para su uso antes que aquellos que se supone deberían gustar menos al usuario del videojuego. Otro punto relevante de la IA es la de proporcionar verosimilitud a los contenidos del juego, de tal forma que en el contexto ficticio de todo videojuego la historia y los acontecimientos que se desarrollan en ella sean creíbles para el jugador. Aunque puede Fallo de IA de Arma II (2009) 7. IMPLEMENTACIÓN. En éste apartado pasaremos a mencionar el impacto que tienen y tendrán diversas técnicas de inteligencia artificial estudiadas en la asignatura. 7.1 Redes Neuronales Artificiales (RNA) Una red neuronal artificial es un sistema que sigue el modelo de las redes neuronales biológicas, estando conformado por las entradas a la red, las salidas, y los nodos o neuronas junto con las interconexiones entre ellas. Como vimos en clase, la principal ventaja de este tipo de redes es que podemos conseguir un sistema que proporcione salidas adecuadas en función de unas entradas sin saber exactamente la función total de transferencia, sino simplemente entrenándola bien, generalizando el reconocimiento en patrones. Como punto negativo tenemos que requiere un entrenamiento supervisado exhaustivo, cuanto más profundo sea el entrenamiento mejor reaccionará la red. Los ejemplos típicos de RNAs son el perceptrón simple y el multicapa, aunque en la mayoría de los casos actuales el multicapa es usado. Esta capacidad de devolver el resultado más correcto ante una entrada desconocida convierte a las RNAs en un modelo muy productivo para la inteligencia artificial en los videojuegos. Una de las aplicaciones más comunes es en las técnicas de reconocimiento de obstáculos y objetivos, así como en el movimiento autónomo. En la siguiente imagen se puede observar el que podría ser un ejemplo de perceptrón multicapa para un sistema de avance con obstáculos, de tal forma que recibiendo mediciones de distancia de por la izquierda, derecha y centro hasta un obstáculo el sistema supiese si hay que seguir de frente, girar a la derecha o a la izquierda. 7.3 Agentes Software inteligentes. Un agente inteligente es un sistema que es capaz de recibir información del entorno y actuar en consecuencia de forma inteligente. En el caso de los agentes software inteligentes, estos se encargarán de recibir información del entorno mediante sensores y actuar sobre el medio mediante los denominados actuadores. Ejemplo de aplicación de redes neuronales en videojuegos Se ha de mencionar que en el caso de que la población para entrenamiento no sea lo suficientemente grande se pueden aplicar técnicas más avanzadas que no detallaremos aquí como algoritmos genéticos o redes neuronales evolutivas, que permiten además adaptarse más fácilmente durante el juego a los cambios del entorno a los personajes entrenados con este sistema. 7.2 Máquinas de estados. Una máquina de estados es una representación de un sistema formado por diferentes estados así como las transiciones entre ellos, produciéndose éstas debido a eventos que ocurren en el sistema. Así mismo cada uno de los estados tiene asociado una serie de acciones intrínsecas. Este modelo es una forma sencilla de representar la inteligencia de un determinado ente del videojuego, orientándolo a que cada NPC va a poder estar en diferentes estados (alterado, tranquilo, atacando, defendiendo) teniendo asociadas diferentes acciones (atacar, defender, moverse, correr, huir, parapetarse…) y produciéndose eventos que lo llevan a otros estados (descubrir a un enemigo, recibir daño, oír pisadas, etc.) Aunque este modelo es simple en su planteamiento y estructura es un modelo ampliamente usado, sobre todo en las primeras etapas de la inteligencia artificial y que proporciona buenos resultados. En la siguiente imagen puede observarse el diagrama de estados de los enemigos del pac-man, que como podemos observar es bastante simple: En general estos agentes llevan a cabo una rutina en forma de bucle basada en la percepción, la planificación y la actuación. Sin duda, el paso de este bucle que concentra la inteligencia es el paso de la planificación, pues es el paso en el que el sistema deberá interpretar los datos obtenidos por los sensores y generar la respuesta adecuada para los actuadores. Las principales características de estos agentes software es su autonomía, ya que deben ser capaces de tomar los datos, interpretarlos y actuar por su cuenta sin necesidad de ningún agente externo, así como si su inteligencia se puede adaptar mediante aprendizaje o es prefijada y cerrada o también si es un agente que se adelanta en la toma de decisiones (proactivo) o espera a la aparición de algún suceso. Además, existen agentes que se comunican entre ellos para llevar a cabo una mejor planificación de actuación. Este tipo de agentes tienen aplicación directa en los videojuegos en apartados como la exploración autónoma de regiones sin explorar, simulación de personalidades y multitudes, comportamientos ofensivos y defensivos, etc. 7.4 Minería de datos y aprendizaje. Como se ha visto a lo largo de la asignatura, mediante la minería de datos podemos extraer de ingentes cantidades de datos a priori más o menos útiles información de alto valor mediante aplicación de una serie de algoritmos. Está técnica está creciendo en la actualidad, estando presente en el día a día de todos (a quién no le ha recomendado alguna red social seguir a cierta persona en función de los seguidores actuales) Sin embargo, la minería de datos tiene aplicaciones en otros ámbitos, incluido el de los videojuegos. En este caso, la minería de datos permite a los desarrolladores inferir el estilo de juego de un jugador mediante los datos de juego obtenidos a lo largo de todas las partidas que ha realizado. De esta forma, el juego se podrá adaptar a esa forma de jugar para incrementar la experiencia de dicho jugador. Esta técnica tiene un enorme potencial, y como veremos en el apartado del futuro de la inteligencia artificial en los videojuegos, las posibilidades son prometedoras. Sin embargo, numerosos son los juegos actuales que ya son capaces de adaptarse a tu forma de juego. Por poner un ejemplo, juegos de rol de acción como los de la saga Mass effect, cambian dinámicamente el contenido del videojuego en función de las conversaciones que has mantenido a lo largo del juego. Diagrama de estados del videojuego Pac-Man (1980) Además si se combina la minería de datos con el aprendizaje se pueden obtener resultados como los de la saga FIFA en los que los rivales van aprendiendo a partir de la gran cantidad de datos que toman de la forma de jugar del jugador, pudiendo realizar acciones como por ejemplo aumentar la defensa por las bandas si aprende que al jugador le gusta atacar con los extremos. Sin duda, el apartado de minería de datos junto con el aprendizaje es uno de los que promete mejores experiencias en un futuro para los jugadores de videojuegos. 7.5 Árboles de decisión. Los videojuegos de hoy en día, tienen una complejidad realmente amplia, habiendo en la mayoría de los casos diferentes finales en los que se incluyen un gran número de cinemáticas y misiones que varían según las decisiones que va tomando el jugador. Por ello los árboles de decisión son usados en los videojuegos de forma continua. Sin embargo, no debemos olvidar que la complejidad de los árboles crece exponencialmente, lo que puede hacer que éstos no sean factibles como solución a la hora de usarlos en ciertas partes del juego, como elección de caminos, búsqueda de objetivos, etc. pues quedaría un árbol cuyo tratamiento y ejecución sería imposible. Sin embargo esto no impide que los árboles de decisión sean usados en tareas algo más simples en las que su implementación puede ser de gran utilidad, como por ejemplo en los diálogos surgidos de la interacción entre personajes. En estos diálogos en función de la respuesta recibida, surge otra pregunta, pudiendo volver de nuevo a la pregunta inicial. Son en este tipo de diálogos donde los árboles de decisión tienen su funcionalidad principal y donde son realmente implantados en los videojuegos actuales. En la figura de abajo puede observarse una imagen de un diálogo del videojuego Deus-Ex Human Revolution, donde el árbol de decisión permite avanzar entre las diferentes posibilidades de pregunta-respuesta. 8. Juegos destacados en IA. En este apartado intentaremos mostrar aquellos juegos que han destacado por su inteligencia artificial. Se ha de mencionar que existe un concurso anual en el que se premian los videojuegos que han destacado en este apartado a lo largo del año, por calidad, innovación, etc. Su página es www.aigamedev.com y en ella además de nombrar a los ganadores se muestran artículos interesantes sobre inteligencia artificial en videojuegos como algoritmos de planificación de rutas, detección de objetivos, etc. A continuación pasaremos a entrar en detalle de los videojuegos punteros en IA. 8.1 Hitman Absolution. Este juego, desarrollado por Eidos Interactive en el año 2009 ganó el permio a mejores NPC según aigamedev en el año 2012. Todo debido a una nueva tecnología denominada aprendizaje por refuerzo para el control de la animación, inspirado por la saga Killzone y una implementación de árbol de comportamiento para la inteligencia artificial del camuflaje clásico. Así mismo Hitman Absolution obtuvo el premio de innovación de diseño en inteligencia artificial al incluir una de las recreaciones de comportamiento de masas mejores realizadas hasta la fecha usando una tecnología de simulación de multitudes que permite integrar a estos personajes en el juego, reaccionando de forma realista ante disparos, obstáculos, obstrucciones de visión, etc. Todo ello le convirtió en un éxito de ventas y público en el año de su lanzamiento. Hitman Absolution (2012) Ejemplo de interacción en Deus-Ex Human Revolution (2011) Por último se ha de mencionar que existen otros métodos prácticos de llevar la inteligencia al videojuego, la mayoría vistos en las clases teóricas de la asignatura, si bien no se han mencionado aquí por no tener demasiada expansión en los videojuegos actuales, como Búsqueda de caminos o juegos de suma cero. 8.2 Far Cry 3. Este videojuego, lanzado a finales de 2012 que también se convirtió en todo un éxito de ventas, fue condecorado con el premio de mejor inteligencia artificial escogido por la propia página aigamedev.com Este premio fue causa de una gran inteligencia artificial aplicada a todos los ámbitos del juego: desde a la selva, núcleo central del juego, como a los animales que la conforman, así como al sistema de nacimiento de enemigos o a los propios NPCs. Todos ellos gozan de una inteligencia artificial que hace sentir al jugador estar inmerso en una selva real, con enemigos que pueden aparecer desde cualquier lugar, flanquearnos así como demostrar cualidades humanas como envalentonarse, retroceder si están en desventaja, cubrirse o caer presa del pánico, conformando una experiencia jugable magnífica. 8.5 Irene. Llevar a estas cotas de calidad la inteligencia artificial en un videojuego de mundo abierto no es sencillo, y Ubisoft consiguió realizarlo de una forma magnífica. Aunque no sea un videojuego como tal (al menos la intención de los desarrolladores entendemos que no fue esa) la famosa asistente de renfe puede proporcionar momentos de entretenimiento que no muy fácilmente encontraremos a los mandos de una consola. 8.3 Max Payne 3 En la vuelta de esta saga de mano de la compañía Rockstar el énfasis que se realizó en la inteligencia artificial fue notable, sobre todo como sistema de apoyo a las físicas. La implementación de estas físicas está basada en el sistema de movimiento natural Euphoria, combinado con alguna simulación de físicas del motor R.A.G.E. El resultado es un protagonista altamente interactivo con el entorno, que puedes tirar por las escaleras a la vez que controlas sus movimientos, todo ello respondiendo a las colisiones de una forma más que realista. Este fascinante sistema es capaz no solo de responderte a cualquier pregunta sobre la Renfe que tengas si no sobre cualquier pregunta en general, mostrando además su estado anímico conforme a como derive vuestra conversación (no te pases de confianza o se enfadará, y bastante) Un ejemplo claro de lo que las técnicas de aprendizaje en la tecnología puede proporcionar y de que el futuro es prometedor en este sentido. Puede visitarse en el siguiente enlace: http://consulta.renfe.com/base/main Esta potencia de animación requiere de un apoyo de la IA para entender el entorno inmediato de los personajes que caen para posteriormente actuar en consecuencia sobre las animaciones del personaje. El esfuerzo invertido para conseguir estas técnicas le valió el premio de mejor inteligencia artificial en un papel de apoyo. 8.4 Façade. El ejemplo perfecto de que no se requieren millones de dólares de inversión para conseguir una inteligencia artificial realmente trabajada. Un juego cuanto menos peculiar, en el que podemos guiar a una pareja por la casa de unos amigos introduciendo oraciones completas por teclado. La capacidad de este juego de definir comportamientos en los personajes mediante análisis sintáctico de las oraciones que el jugador teclea resulta una innovación en inteligencia artificial digna de mención, a lo que debemos añadir la capacidad de entender el lenguaje subyacente para especificar el comportamiento de los personajes para dar lugar a una historia dinámica Un ejemplo de interacción con Irene, claramente enfadada 8.6 Grand Theft Auto V. Si realmente implementar un buen sistema de inteligencia artificial en un juego de mundo abierto es complicado, a Rockstar no pareció importarle mucho. Un ejemplo claro de lo que se puede conseguir con una gran inversión: una inteligencia artificial que rebosa vida. Y es que los NPCs no solo reaccionan como cabe esperar de un “sandbox”: transeúntes que caminan, huyen si llevas pistola, te insultan si te chocas, etc. La ambición de este juego va mucho más allá: si te sitúas con un buen coche al lado de un NPC y quemas rueda, sacará su móvil y te echará fotos; si coges un taxi en el aeropuerto adelantándote a una cola, los que esperaban te insultarán; la ropa se moja solo hasta el punto donde te has introducido en el agua, o si sacas fotos a un artista callejero sin darle dinero se enfadará. Simplemente sublime. 8.7 Black and White. Façade (2005) Considerado uno de los videojuegos que más avanzó en inteligencia artificial al incluir elementos de vida artificial y estrategia en un juego en el que tu actúas como un Dios sobre esa vida artificial inteligente. Introdujo innovaciones como la creación de vida artificial en el contexto de la estrategia del juego, la introducción de una arquitectura de inteligencia artificial realmente sólida que tiene sus raíces en la ciencia cognitiva conocida como belief-desire-intention (BDI) ý sobre todo la introducción de los árboles de decisión y las redes neuronales con un gran éxito. Todo un baluarte de la inteligencia artificial en los videojuegos. En general, los caminos son amplios y variados, y el futuro de la inteligencia artificial tiene un gran porvenir del que poco conocemos y que iremos descubriendo a lo largo de los años. 10. Referencias. Wikipedia: artificial intelligence in videogames. http://en.wikipedia.org/wiki/Artificial_intelligence_(video_games ) Wikipedia: Redes neuronales artificiales. http://es.wikipedia.org/wiki/Red_neuronal_artificial Top 10 most influential AI Games: http://aigamedev.com/open/highlights/top-ai-games/ Games of the year: the 2012 AiGameDev.com Awards for Game AI: http://aigamedev.com/open/editorial/2012-awards/ Inteligencia Artificial en videojuegos: ciclo de conferencias Game Spirit 2, Javier Álcalá. Black & White (2001) 9. El futuro de la inteligencia artificial en los videojuegos. La nueva generación de consolas acaba de llegar, lo que implicará unas capacidades de procesamiento mucho mayores de las actuales. Esto permitirá conseguir inteligencias artificiales mucho más cuidadas y realistas: NPCs con comportamientos más humanos que nunca, inteligencia artificial de apoyo que dote al juego de una verosimilitud hasta ahora nunca vista, etc. En general el campo de la inteligencia artificial en los videojuegos es un campo muy abierto en el que en general se realizan combinaciones de técnicas como por ejemplo máquinas de estados con algoritmos genéticos. La finalidad última es la de conseguir nuevos comportamientos que se vayan asemejando más a la realidad humana, siempre intentando aumentar el nivel de inmersión del jugador en el videojuego y evitar en todo momento su aburrimiento. Sin embargo uno de los aspectos de la inteligencia artificial que sin duda está empezando a despuntar y que probablemente marque el futuro es el de la minería de datos junto con aprendizaje. Los esfuerzos de los desarrolladores de nueva generación se centran en conseguir una experiencia jugable “online” persistente. Con ello se pretende que aunque un cierto jugador no esté conectado a la consola en un determinado momento sí que podamos jugar con él, o al menos con un avatar que se asemeje lo máximo posible. Un ejemplo de ello es el sistema que introducirá el videojuego DriveClub de PS4, según el cual el sistema tomará datos de nuestras carreras (forma de tomar las curvas, de acelerar, etc.) para crear un avatar que nos represente cuando no estamos conectados. De esta forma nuestros amigos siempre podrán jugar con nosotros, o al menos con una réplica bastante similar a nuestra forma de jugar.