Inteligencia Artificial en Inteligencia Artificial en
Videojuegos Videojuegos
Javier Alcalá Javier Alcalá
Ciclo de conferencias Game Spirit 2 Ciclo de conferencias Game Spirit 2
Definición de Inteligencia Artificial Definición de Inteligencia Artificial
► La Inteligencia Artificial (IA) intenta simular la inteligencia La Inteligencia Artificial (IA) intenta simular la inteligencia natural
natural
► ¿Qué es la inteligencia natural?¿Qué es la inteligencia natural?
Según la RAE:Según la RAE:
inteligencia inteligencia (Del lat.
(Del lat. intelligentĭa)intelligentĭa)
1. 1. f. Capacidad de entender o comprenderf. Capacidad de entender o comprender 2. 2. f. Capacidad de resolver problemasf. Capacidad de resolver problemas
3. 3. f. Conocimiento, comprensión, acto de entenderf. Conocimiento, comprensión, acto de entender
4. 4. f. Sentido en que se puede tomar una sentencia, un dicho o una f. Sentido en que se puede tomar una sentencia, un dicho o una expresión
expresión
5. 5. f. Habilidad, destreza y experienciaf. Habilidad, destreza y experiencia
6. 6. f. Trato y correspondencia secreta de dos o más personas o f. Trato y correspondencia secreta de dos o más personas o naciones entre sí
naciones entre sí
7. 7. f. Sustancia puramente espiritualf. Sustancia puramente espiritual
Falta mencionar el aprendizaje y la memoriaFalta mencionar el aprendizaje y la memoria
Definición de Inteligencia Artificial Definición de Inteligencia Artificial
►
Entonces… ¿qué es la IA? Entonces… ¿qué es la IA?
Según la RAE:Según la RAE:
inteligencia artificial inteligencia artificial
1. 1. f.f. Inform. Inform. Desarrollo y utilización de ordenadores Desarrollo y utilización de ordenadores con los que se intenta reproducir los procesos de la con los que se intenta reproducir los procesos de la
inteligencia humana inteligencia humana
Definición empírica: Definición empírica:
Test de Turing Test de Turing
? ?
Definición de Inteligencia Artificial Definición de Inteligencia Artificial
►
Test de Turing para humanos: Test de Turing para humanos: captcha captcha
Definición de Inteligencia Artificial Definición de Inteligencia Artificial
►
IA en videojuegos: IA en videojuegos:
Es la simulación de comportamientos de los Es la simulación de comportamientos de los
personajes no manejados por el jugador: NPCs, personajes no manejados por el jugador: NPCs,
enemigos, jefes finales, animales…
enemigos, jefes finales, animales…
Orígenes de la IA en videojuegos Orígenes de la IA en videojuegos
► Los primeros sistemas de Los primeros sistemas de IA (años 50) se aplicaron a IA (años 50) se aplicaron a juegos de mesa:
juegos de mesa:
damas (Arthur Samuel) y damas (Arthur Samuel) y ajedrez (Claude Shannon) ajedrez (Claude Shannon)
► En los años 60 se En los años 60 se
desarrollaron juegos como desarrollaron juegos como el Pong o Spacewar!
el Pong o Spacewar!
basados en la lógica basados en la lógica
Orígenes de la IA en videojuegos Orígenes de la IA en videojuegos
► En los 70 surgieron En los 70 surgieron juegos de 1 jugador juegos de 1 jugador
contra enemigos que contra enemigos que
se movían mediante se movían mediante
patrones almacenados patrones almacenados
► Space Invaders (1978) Space Invaders (1978) añadió dificultad
añadió dificultad
creciente y respondía creciente y respondía
a las acciones del a las acciones del
Orígenes de la IA en videojuegos Orígenes de la IA en videojuegos
► Pac-Man (1980) Pac-Man (1980)
incorporó algoritmos incorporó algoritmos
de búsqueda en de búsqueda en
laberintos laberintos
► Dragon Warrior (1990) Dragon Warrior (1990) fue el primer RPG.
fue el primer RPG.
Permitía variar las Permitía variar las
rutinas de la IA de los rutinas de la IA de los enemigos durante las enemigos durante las
batallas batallas
Orígenes de la IA en videojuegos Orígenes de la IA en videojuegos
►
En los años 90 se produjo un boom de En los años 90 se produjo un boom de nuevos géneros y nuevas técnicas de IA nuevos géneros y nuevas técnicas de IA
Máquinas de estados finitosMáquinas de estados finitos
Redes de neuronasRedes de neuronas
Computación evolutivaComputación evolutiva
Lógica difusaLógica difusa
……
Orígenes de la IA en videojuegos Orígenes de la IA en videojuegos
►
Battelcruiser 3000AD (1996) incorpora Battelcruiser 3000AD (1996) incorpora redes de neuronas
redes de neuronas
Técnicas de IA empleadas Técnicas de IA empleadas
►
Juegos de suma cero: Minimax Juegos de suma cero: Minimax
►
Búsqueda de caminos: A* Búsqueda de caminos: A*
►
Agentes inteligentes Agentes inteligentes
►
Maquina de estados finitos Maquina de estados finitos
►
Redes de neuronas Redes de neuronas
►
Algoritmos genéticos Algoritmos genéticos
►
Redes evolutivas: rtNeat Redes evolutivas: rtNeat
Juegos de suma cero Juegos de suma cero
► Son juegos entre 2 adversarios en los que los Son juegos entre 2 adversarios en los que los intereses de los jugadores son contrarios:
intereses de los jugadores son contrarios:
Si uno gana, el otro pierde, aunque puede haber tablasSi uno gana, el otro pierde, aunque puede haber tablas
► Cada jugador conoce las posibles jugadas del Cada jugador conoce las posibles jugadas del contrario
contrario
► No interviene el azar en la elección de la mejor No interviene el azar en la elección de la mejor jugada
jugada
► Se genera un árbol finitoSe genera un árbol finito
► Ejemplo: damas, ajedrez, goEjemplo: damas, ajedrez, go
Juegos de suma cero Juegos de suma cero
► Algoritmo MinimaxAlgoritmo Minimax
Se basa en probar todas las posibles jugadas y sus respuestas Se basa en probar todas las posibles jugadas y sus respuestas hasta un nivel máximo
hasta un nivel máximo
Juegos de suma cero Juegos de suma cero
Llegado a ese nivel se evalúa el tablero y se da un valor positivo, Llegado a ese nivel se evalúa el tablero y se da un valor positivo, si es buena la jugada,
si es buena la jugada, o negativo, si es mala o negativo, si es mala
1 0 0 0 -1 0
Juegos de suma cero Juegos de suma cero
Se propaga el valor hasta el nivel 0Se propaga el valor hasta el nivel 0
Min Max
0 0 -1
0
Juegos de suma cero Juegos de suma cero
►
Algoritmo Minimax Algoritmo Minimax
El algoritmo responde con la mejor jugada El algoritmo responde con la mejor jugada
posible suponiendo que el adversario también posible suponiendo que el adversario también
elige su mejor jugada elige su mejor jugada
►
Optimización con poda alfa-beta Optimización con poda alfa-beta
Juegos de suma cero Juegos de suma cero
►
Partidas históricas de ajedrez: Partidas históricas de ajedrez:
Kasparov Kasparov 44 Deep Thought Deep Thought 2 2 (1996)(1996)
Kasparov Kasparov 2.52.5 DEEP BLUE DEEP BLUE 3.53.5 (1997)(1997)
Kasparov Kasparov 44 Deep Fritz Deep Fritz 4 4 (2002)(2002)
Kasparov Kasparov 33 Deep Junior Deep Junior 3 3 (2003)(2003)
Juegos de suma cero Juegos de suma cero
► Árbol inicial del ajedrez:Árbol inicial del ajedrez:
Juega blancas:Juega blancas:
► Peón 1 escaquePeón 1 escaque x8x8
► Peón 2 escaquesPeón 2 escaques x8x8
► Caballo Caballo x4x4
► 20 movimientos posibles20 movimientos posibles
Juega negras:Juega negras:
► Las mismas posibilidadesLas mismas posibilidades
A nivel 2 hay 400 posibilidadesA nivel 2 hay 400 posibilidades
A nivel 4 hay unas 20.000 posibilidadesA nivel 4 hay unas 20.000 posibilidades
Crecimiento exponencial Crecimiento exponencial ⇒⇒ Desarrollar el árbol completo genera Desarrollar el árbol completo genera más posibilidades que átomos hay en la galaxia
más posibilidades que átomos hay en la galaxia
► Nuevos retos: Go, a nivel 2 hay unas 130.000 posibilidadesNuevos retos: Go, a nivel 2 hay unas 130.000 posibilidades
Búsqueda de caminos Búsqueda de caminos
►
También llamado También llamado pathfinding pathfinding
►
Son algoritmos que buscan un camino Son algoritmos que buscan un camino existente entre un nodo inicial y un nodo existente entre un nodo inicial y un nodo
final de un grafo final de un grafo
►
Se tiene en cuenta un coste entre nodos Se tiene en cuenta un coste entre nodos (distancia, dificultad del terreno…)
(distancia, dificultad del terreno…)
►
Algoritmos típicos: Algoritmos típicos:
Dijkstra, escalada, primero el mejor, A*Dijkstra, escalada, primero el mejor, A*
Búsqueda de caminos Búsqueda de caminos
3
4
2
4
2 3
7
5
3
8 3
2
7
2 1
5 4
2
4 3
5
Búsqueda de caminos Búsqueda de caminos
►
El nivel de un juego se debe diseñar con un El nivel de un juego se debe diseñar con un grid
grid o rejilla y ésta se convierte en un grafo o rejilla y ésta se convierte en un grafo
Búsqueda de caminos Búsqueda de caminos
Dijkstra Dijkstra A* A*
Comparativa de métodos Comparativa de métodos
Agentes Inteligentes Agentes Inteligentes
►
Un agente inteligente es una entidad que Un agente inteligente es una entidad que percibe y actúa sobre un entorno de forma percibe y actúa sobre un entorno de forma
razonada
razonada
Agentes Inteligentes Agentes Inteligentes
►
Tipos de agentes inteligentes Tipos de agentes inteligentes
Agentes Biológicos
Agentes Hardware
Agentes Inteligentes
Agentes Software
Agentes Inteligentes Agentes Inteligentes
►
¿Qué es un agente software? ¿Qué es un agente software?
Es una entidad que percibe su entorno a través Es una entidad que percibe su entorno a través de de sensoressensores y actúa de forma autónoma y y actúa de forma autónoma y
razonada con la mejor acción posible sobre ese razonada con la mejor acción posible sobre ese
entorno mediante
entorno mediante actuadoresactuadores
Utiliza el bucle:Utiliza el bucle:
PPA (Percepción – Planificación – Actuación) PPA (Percepción – Planificación – Actuación)
Agentes Inteligentes Agentes Inteligentes
► Sensores:Sensores:
Detectores de Detectores de obstáculos
obstáculos
MicrófonosMicrófonos
► Actuadores:Actuadores:
PiernasPiernas
BrazosBrazos
RuedasRuedas
01 1 11 10 0
Detecta rincón Decide girar a la izquierda
Realiza el giro
Agentes Inteligentes Agentes Inteligentes
► Propiedades:Propiedades:
Autonomía: actúa por cuenta propiaAutonomía: actúa por cuenta propia
Inteligencia: cerrada o adaptable (aprendizaje)Inteligencia: cerrada o adaptable (aprendizaje)
Actividad:Actividad:
►Reactivo: actúa después de algún suceso producido en el Reactivo: actúa después de algún suceso producido en el entorno
entorno
►Proactivo: decide actuar antes de que se dé un sucesoProactivo: decide actuar antes de que se dé un suceso
Sociabilidad: se comunican con el usuario u otros Sociabilidad: se comunican con el usuario u otros agentes
agentes
Agentes Inteligentes Agentes Inteligentes
►
Aplicaciones en los videojuegos: Aplicaciones en los videojuegos:
Comportamientos inteligentesComportamientos inteligentes
►Agente reactivo: guardián de un castilloAgente reactivo: guardián de un castillo
►Agente proactivo: exploradores, atacantesAgente proactivo: exploradores, atacantes
Simulación de personalidadesSimulación de personalidades
Exploración de mapas desconocidosExploración de mapas desconocidos
Simulación de multitudesSimulación de multitudes
Máquinas de Estados Finitos Máquinas de Estados Finitos
►
Una máquina de estados finitos es una entidad abstracta formada por estados y transiciones entre dichos estados
►
Las transiciones se producen por eventos sucedidos en el entorno
►
A su vez, la máquina genera una serie de
acciones según el estado actual en el que
se encuentre
Máquinas de Estados Finitos Máquinas de Estados Finitos
► Cada estado representa una acción: moverse, Cada estado representa una acción: moverse, disparar, perseguir, etc.
disparar, perseguir, etc.
► Cuando se produce un evento, hay una transición Cuando se produce un evento, hay una transición de un estado a otro: no hay enemigos, enemigo a de un estado a otro: no hay enemigos, enemigo a
la vista, poca munición, etc.
la vista, poca munición, etc.
Patrullar
No hay
enemigos Disparar a la vistaEnemigo
Enemigo No hay enemigos
Máquinas de Estados Finitos Máquinas de Estados Finitos
►
MEF para un fantasma de Pac-Man MEF para un fantasma de Pac-Man
Inicio Modo comible
activado
Perseguir
Pac-Man cerca
Pac-Man lejos Pac-Man
cerca
Buscar
Comer
Pac-Man lejos
Pac-Man alcanzado
Modo comible activado Modo comible
desactivado Time out
Redes de Neuronas Redes de Neuronas
► Una Red de Neuronas Artificiales (RNA) es un Una Red de Neuronas Artificiales (RNA) es un
sistema computacional que imita las capacidades sistema computacional que imita las capacidades
de los sistemas biológicos utilizando muchos de los sistemas biológicos utilizando muchos
elementos simples interconectados elementos simples interconectados
► Neurona formalNeurona formal
Redes de Neuronas Redes de Neuronas
►
Características: Características:
Clasifican patrones de entradaClasifican patrones de entrada
Necesitan entrenamiento supervisado con Necesitan entrenamiento supervisado con muchos ejemplos
muchos ejemplos
Son capaces de generalizar el reconocimiento Son capaces de generalizar el reconocimiento de patrones
de patrones
Ante una entrada desconocida devuelve la Ante una entrada desconocida devuelve la clase más parecida
clase más parecida
Redes de Neuronas Redes de Neuronas
► Percetrón simplePercetrón simple
► Perceptrón multicapaPerceptrón multicapa
Entrada Salida
Redes de Neuronas Redes de Neuronas
►
Uso en videojuegos Uso en videojuegos
Izquierda
Frontal
Derecha
Girar a la izquierda Girar a la derecha Seguir de
frente
Algoritmos Genéticos Algoritmos Genéticos
► Si no disponemos de ejemplos para realizar el Si no disponemos de ejemplos para realizar el aprendizaje, tenemos que emplear mecanismos aprendizaje, tenemos que emplear mecanismos
basados en aprendizaje por
basados en aprendizaje por ensayo y errorensayo y error
► Los Algoritmos Genéticos (AG) se utilizan en Los Algoritmos Genéticos (AG) se utilizan en
aquellos casos en los que no existe un algoritmo aquellos casos en los que no existe un algoritmo
convencional convencional
► Resuelven problemas de optimizaciónResuelven problemas de optimización
► Se basan en la Teoría de la Evolución de Darwin Se basan en la Teoría de la Evolución de Darwin ((El origen de las especiesEl origen de las especies, 1859), 1859)
► Son sistemas muy robustosSon sistemas muy robustos
Algoritmos Genéticos Algoritmos Genéticos
► Principios de la evolución por Principios de la evolución por Selección NaturalSelección Natural::
1.1. Cada individuo tiende a transmitir sus rasgos a su Cada individuo tiende a transmitir sus rasgos a su progenie
progenie
2.2. La naturaleza produce individuos con rasgos La naturaleza produce individuos con rasgos diferentes, debido a mutaciones
diferentes, debido a mutaciones
3.3. Los individuos más adaptados, cuyos rasgos son más Los individuos más adaptados, cuyos rasgos son más favorables para desenvolverse en el medio, tienden a favorables para desenvolverse en el medio, tienden a
producir más progenie (sobreviven los más adaptados) producir más progenie (sobreviven los más adaptados) 4.4. Durante Durante largos períodos de tiempo se puede acumular largos períodos de tiempo se puede acumular
Algoritmos Genéticos Algoritmos Genéticos
► Componentes de un AG:Componentes de un AG:
IndividuoIndividuo: representado por un cromosoma con la : representado por un cromosoma con la información que queremos optimizar
información que queremos optimizar
Calidad o Calidad o fitnessfitness: da una medida del grado de : da una medida del grado de adaptación al medio (objetivo, principio 4)
adaptación al medio (objetivo, principio 4)
Operador selecciónOperador selección: : con probabilidad de selección de con probabilidad de selección de cada individuo
cada individuo proporcionalproporcional a la calidad (principio 3) a la calidad (principio 3)
Operador emparejamiento o reproducción: que Operador emparejamiento o reproducción: que
producirá nuevos individuos en la siguiente generación producirá nuevos individuos en la siguiente generación
(principio 1) (principio 1)
Operador mutaciónOperador mutación: capaz de alterar el código de los : capaz de alterar el código de los nuevos individuos, incrementando la riqueza genética nuevos individuos, incrementando la riqueza genética
de la población (principio 2) de la población (principio 2)
Algoritmos Genéticos Algoritmos Genéticos
►
Algoritmo: Algoritmo:
Generar una Población aleatoria de NI individuosGenerar una Población aleatoria de NI individuos
Repetir hasta haber realizado N generacionesRepetir hasta haber realizado N generaciones
►Repetir hasta alcanzar NI individuos Repetir hasta alcanzar NI individuos
Aplicar operador SELECCIÓN: extrae 2 individuosAplicar operador SELECCIÓN: extrae 2 individuos
Aplicar operador EMPAREJAMIENTO: cruza su información Aplicar operador EMPAREJAMIENTO: cruza su información genética. Esto genera 2 nuevos individuos
genética. Esto genera 2 nuevos individuos
Aplicar operador MUTACION a cada individuo generadoAplicar operador MUTACION a cada individuo generado
Devolver el individuo con mayor calidad de la poblaciónDevolver el individuo con mayor calidad de la población
Redes Neuronales Evolutivas Redes Neuronales Evolutivas
► Se combinan las redes neuronales con los Se combinan las redes neuronales con los algoritmos genéticos
algoritmos genéticos
► Consiste en definir la entrada y la salida de una Consiste en definir la entrada y la salida de una red neuronal y los algoritmos genéticos se
red neuronal y los algoritmos genéticos se encargan de definir la topología interna y los encargan de definir la topología interna y los
pesos de cada neurona pesos de cada neurona
NEAT (NeuroEvolution of Augmenting Topologies)NEAT (NeuroEvolution of Augmenting Topologies)
rtNEAT (real time NeuroEvolution of Augmenting rtNEAT (real time NeuroEvolution of Augmenting Topologies)
Topologies)
Redes Neuronales Evolutivas Redes Neuronales Evolutivas
►
Los personajes entrenados con este Los personajes entrenados con este
sistema se adaptan fácilmente durante el sistema se adaptan fácilmente durante el
juego a los cambios en el entorno juego a los cambios en el entorno
Juego NERO (nerogame.org)Juego NERO (nerogame.org)
I+D en IA para Videojuegos I+D en IA para Videojuegos
►
Un campo de investigación muy abierto Un campo de investigación muy abierto
►
Normalmente se basa en combinar varias Normalmente se basa en combinar varias técnicas
técnicas
Por ejemplo, máquinas de estados finitos con Por ejemplo, máquinas de estados finitos con algoritmos genéticos
algoritmos genéticos
Se conseguirían comportamientos Se conseguirían comportamientos
desconocidos, absurdos, divertidos, que desconocidos, absurdos, divertidos, que
mejoran la experiencia de juego mejoran la experiencia de juego
Se trata de evitar esto:Se trata de evitar esto:
I+D en IA para Videojuegos I+D en IA para Videojuegos
► Hay que procurar que el jugador esté inmerso en Hay que procurar que el jugador esté inmerso en el juego sin aburrirse, adaptando el nivel de los el juego sin aburrirse, adaptando el nivel de los
enemigos al nivel del jugador
enemigos al nivel del jugador ⇒⇒ Concepto de flujo Concepto de flujo
► Flujo Flujo (Mihaly Csikszenmihali)(Mihaly Csikszenmihali)
Es el estado mental operativo en el cual la persona está Es el estado mental operativo en el cual la persona está completamente inmersa en la actividad que está
completamente inmersa en la actividad que está ejecutando
ejecutando
Se caracteriza por un sentimiento de enfocar la energía, Se caracteriza por un sentimiento de enfocar la energía, de total implicación con la tarea y de éxito en la
de total implicación con la tarea y de éxito en la
I+D en IA para Videojuegos I+D en IA para Videojuegos
►
Canal de flujo Canal de flujo
0
(Poca) ∞
(Mucha)
Habilidades
(Poco) 0
∞
(Mucho)
Aburrimiento Ansiedad
aC an d l f e ul oj
Desafíos
Consultas Consultas
►
Contacto: Contacto: [email protected] [email protected]
► http://aigamedev.com/http://aigamedev.com/
► theory.stanford.edu/~amitp/GameProgramming/theory.stanford.edu/~amitp/GameProgramming/
► http://nerogame.org/http://nerogame.org/
► ““Fluir (Flow). Una psicología de la felicidad”. Fluir (Flow). Una psicología de la felicidad”.
Mihaly Csikszenmihali Mihaly Csikszenmihali
Inteligencia Artificial en Inteligencia Artificial en
Videojuegos Videojuegos
Javier Alcalá Javier Alcalá
GRACIAS GRACIAS
Ciclo de conferencias Game Spirit 2 Ciclo de conferencias Game Spirit 2