Inteligencia Artificial en los Videojuegos.

Anuncio
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.
Descargar