Está en la página 1de 46

Inteligencia Artificial en

Videojuegos
Javier Alcal

Ciclo de conferencias Game Spirit 2


Definicin de Inteligencia Artificial
La Inteligencia Artificial (IA) intenta simular la inteligencia
natural
Qu es la inteligencia natural?
Segn la RAE:
inteligencia
(Del lat. intelligenta)
1. f. Capacidad de entender o comprender
2. f. Capacidad de resolver problemas
3. f. Conocimiento, comprensin, acto de entender
4. f. Sentido en que se puede tomar una sentencia, un dicho o una
expresin
5. f. Habilidad, destreza y experiencia
6. f. Trato y correspondencia secreta de dos o ms personas o
naciones entre s
7. f. Sustancia puramente espiritual
Falta mencionar el aprendizaje y la memoria
Inteligencia Artificial en Videojuegos 2
Javier Alcal
Definicin de Inteligencia Artificial
Entonces qu es la IA?
Segn la RAE:
inteligencia artificial
1. f. Inform. Desarrollo y utilizacin de ordenadores
con los que se intenta reproducir los procesos de la
inteligencia humana
Definicin emprica:

?
Test de Turing

Inteligencia Artificial en Videojuegos 3


Javier Alcal
Definicin de Inteligencia Artificial
Test de Turing para humanos: captcha

Inteligencia Artificial en Videojuegos 4


Javier Alcal
Definicin de Inteligencia Artificial
IA en videojuegos:
Es la simulacin de comportamientos de los
personajes no manejados por el jugador: NPCs,
enemigos, jefes finales, animales

Inteligencia Artificial en Videojuegos 5


Javier Alcal
Orgenes de la IA en videojuegos
Los primeros sistemas de
IA (aos 50) se aplicaron a
juegos de mesa:
damas (Arthur Samuel) y
ajedrez (Claude Shannon)

En los aos 60 se
desarrollaron juegos como
el Pong o Spacewar!
basados en la lgica

Inteligencia Artificial en Videojuegos 6


Javier Alcal
Orgenes de la IA en videojuegos
En los 70 surgieron
juegos de 1 jugador
contra enemigos que
se movan mediante
patrones almacenados
Space Invaders (1978)
aadi dificultad
creciente y responda
a las acciones del
jugador
Inteligencia Artificial en Videojuegos 7
Javier Alcal
Orgenes de la IA en videojuegos
Pac-Man (1980)
incorpor algoritmos
de bsqueda en
laberintos

Dragon Warrior (1990)


fue el primer RPG.
Permita variar las
rutinas de la IA de los
enemigos durante las
batallas
Inteligencia Artificial en Videojuegos 8
Javier Alcal
Orgenes de la IA en videojuegos
En los aos 90 se produjo un boom de
nuevos gneros y nuevas tcnicas de IA
Mquinas de estados finitos
Redes de neuronas
Computacin evolutiva
Lgica difusa

Inteligencia Artificial en Videojuegos 9


Javier Alcal
Orgenes de la IA en videojuegos
Battelcruiser 3000AD (1996) incorpora
redes de neuronas

Inteligencia Artificial en Videojuegos 10


Javier Alcal
Tcnicas de IA empleadas
Juegos de suma cero: Minimax
Bsqueda de caminos: A*
Agentes inteligentes
Maquina de estados finitos
Redes de neuronas
Algoritmos genticos
Redes evolutivas: rtNeat

Inteligencia Artificial en Videojuegos 11


Javier Alcal
Juegos de suma cero
Son juegos entre 2 adversarios en los que los
intereses de los jugadores son contrarios:
Si uno gana, el otro pierde, aunque puede haber tablas
Cada jugador conoce las posibles jugadas del
contrario
No interviene el azar en la eleccin de la mejor
jugada
Se genera un rbol finito
Ejemplo: damas, ajedrez, go

Inteligencia Artificial en Videojuegos 12


Javier Alcal
Juegos de suma cero
Algoritmo Minimax
Se basa en probar todas las posibles jugadas y sus respuestas
hasta un nivel mximo

Inteligencia Artificial en Videojuegos 13


Javier Alcal
Juegos de suma cero
Llegado a ese nivel se evala el tablero y se da un valor positivo,
si es buena la jugada,
o negativo, si es mala

1 0 0 0 -1 0
Inteligencia Artificial en Videojuegos 14
Javier Alcal
Juegos de suma cero
Se propaga el valor hasta el nivel 0

Max 0

Min 0 0 -1

1 0 0 0 -1 0
Inteligencia Artificial en Videojuegos 15
Javier Alcal
Juegos de suma cero
Algoritmo Minimax
El algoritmo responde con la mejor jugada
posible suponiendo que el adversario tambin
elige su mejor jugada
Optimizacin con poda alfa-beta

Inteligencia Artificial en Videojuegos 16


Javier Alcal
Juegos de suma cero
Partidas histricas de ajedrez:

Kasparov 4 Deep Thought 2 (1996)


Kasparov 2.5 DEEP BLUE 3.5 (1997)
Kasparov 4 Deep Fritz 4 (2002)
Kasparov 3 Deep Junior 3 (2003)

Inteligencia Artificial en Videojuegos 17


Javier Alcal
Juegos de suma cero
rbol inicial del ajedrez:
Juega blancas:
Pen 1 escaque x8
Pen 2 escaques x8
Caballo x4
20 movimientos posibles
Juega negras:
Las mismas posibilidades
A nivel 2 hay 400 posibilidades
A nivel 4 hay unas 20.000 posibilidades
Crecimiento exponencial Desarrollar el rbol completo genera
ms posibilidades que tomos hay en la galaxia
Nuevos retos: Go, a nivel 2 hay unas 130.000 posibilidades

Inteligencia Artificial en Videojuegos 18


Javier Alcal
Bsqueda de caminos
Tambin llamado pathfinding
Son algoritmos que buscan un camino
existente entre un nodo inicial y un nodo
final de un grafo
Se tiene en cuenta un coste entre nodos
(distancia, dificultad del terreno)
Algoritmos tpicos:
Dijkstra, escalada, primero el mejor, A*
El A* nos garantiza el camino ptimo
Inteligencia Artificial en Videojuegos 19
Javier Alcal
Bsqueda de caminos
7
3 4
2
2
1
4 3
2 3 2 4
5
3 5 3
4 7
5

8 2

Inteligencia Artificial en Videojuegos 20


Javier Alcal
Bsqueda de caminos
El nivel de un juego se debe disear con un
grid o rejilla y sta se convierte en un grafo

Inteligencia Artificial en Videojuegos 21


Javier Alcal
Bsqueda de caminos
Dijkstra A*

Comparativa de mtodos

Inteligencia Artificial en Videojuegos 22


Javier Alcal
Agentes Inteligentes
Un agente inteligente es una entidad que
percibe y acta sobre un entorno de forma
razonada

Inteligencia Artificial en Videojuegos 23


Javier Alcal
Agentes Inteligentes
Tipos de agentes inteligentes

Agentes
Inteligentes

Agentes Agentes Agentes


Biolgicos Hardware Software

Inteligencia Artificial en Videojuegos 24


Javier Alcal
Agentes Inteligentes
Qu es un agente software?
Es una entidad que percibe su entorno a travs
de sensores y acta de forma autnoma y
razonada con la mejor accin posible sobre ese
entorno mediante actuadores
Utiliza el bucle:
PPA (Percepcin Planificacin Actuacin)

Percepcin Planificacin Actuacin

Inteligencia Artificial en Videojuegos 25


Javier Alcal
Agentes Inteligentes
Sensores: Actuadores:
Detectores de Piernas
obstculos Brazos
Micrfonos Ruedas
0
1
1
1 Detecta rincn Realiza
1 Decide girar el
1 a la izquierda giro
0
0

Inteligencia Artificial en Videojuegos 26


Javier Alcal
Agentes Inteligentes
Propiedades:
Autonoma: acta por cuenta propia
Inteligencia: cerrada o adaptable (aprendizaje)
Actividad:
Reactivo: acta despus de algn suceso producido en el
entorno
Proactivo: decide actuar antes de que se d un suceso

Sociabilidad: se comunican con el usuario u otros


agentes
Cooperacin: coopera con otros agentes para realizar
tareas ms complejas
Inteligencia Artificial en Videojuegos 27
Javier Alcal
Agentes Inteligentes
Aplicaciones en los videojuegos:
Comportamientos inteligentes
Agente reactivo: guardin de un castillo
Agente proactivo: exploradores, atacantes

Simulacin de personalidades
Exploracin de mapas desconocidos
Simulacin de multitudes

Inteligencia Artificial en Videojuegos 28


Javier Alcal
Mquinas de Estados Finitos
Una mquina 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 mquina genera una serie de
acciones segn el estado actual en el que
se encuentre

Inteligencia Artificial en Videojuegos 29


Javier Alcal
Mquinas de Estados Finitos
Cada estado representa una accin: moverse,
disparar, perseguir, etc.
Cuando se produce un evento, hay una transicin
de un estado a otro: no hay enemigos, enemigo a
la vista, poca municin, etc.
No hay
enemigos

No hay Enemigo
enemigos Patrullar Disparar a la vista

Enemigo
a la vista
Inteligencia Artificial en Videojuegos 30
Javier Alcal
Mquinas de Estados Finitos
MEF para un fantasma de Pac-Man
Pac-Man
Pac-Man cerca
lejos
Pac-Man
cerca

Buscar Perseguir
Time out Pac-Man
lejos Pac-Man
alcanzado
Inicio Modo comible
activado Modo comible
Modo comible activado
desactivado
Comer

Pac-Man alcanza Huir


al fantasma
Modo comible
activado
Inteligencia Artificial en Videojuegos 31
Javier Alcal
Redes de Neuronas
Una Red de Neuronas Artificiales (RNA) es un
sistema computacional que imita las capacidades
de los sistemas biolgicos utilizando muchos
elementos simples interconectados
Neurona formal

Inteligencia Artificial en Videojuegos 32


Javier Alcal
Redes de Neuronas
Caractersticas:
Clasifican patrones de entrada
Necesitan entrenamiento supervisado con
muchos ejemplos
Son capaces de generalizar el reconocimiento
de patrones
Ante una entrada desconocida devuelve la
clase ms parecida
Una vez entrenadas, funcionan en tiempo real
Inteligencia Artificial en Videojuegos 33
Javier Alcal
Redes de Neuronas
Percetrn simple

Entrada Salida

Perceptrn multicapa

Entrada Oculta Salida


Inteligencia Artificial en Videojuegos 34
Javier Alcal
Redes de Neuronas
Uso en videojuegos

Izquierda Girar a la
izquierda

Frontal Girar a la
derecha

Derecha Seguir de
frente

Inteligencia Artificial en Videojuegos 35


Javier Alcal
Algoritmos Genticos
Si no disponemos de ejemplos para realizar el
aprendizaje, tenemos que emplear mecanismos
basados en aprendizaje por ensayo y error
Los Algoritmos Genticos (AG) se utilizan en
aquellos casos en los que no existe un algoritmo
convencional
Resuelven problemas de optimizacin
Se basan en la Teora de la Evolucin de Darwin
(El origen de las especies, 1859)
Son sistemas muy robustos

Inteligencia Artificial en Videojuegos 36


Javier Alcal
Algoritmos Genticos
Principios de la evolucin por Seleccin Natural:
1. Cada individuo tiende a transmitir sus rasgos a su
progenie
2. La naturaleza produce individuos con rasgos
diferentes, debido a mutaciones
3. Los individuos ms adaptados, cuyos rasgos son ms
favorables para desenvolverse en el medio, tienden a
producir ms progenie (sobreviven los ms adaptados)
4. Durante largos perodos de tiempo se puede acumular
la variacin produciendo nuevas especies
completamente adaptadas a nichos particulares
Inteligencia Artificial en Videojuegos 37
Javier Alcal
Algoritmos Genticos
Componentes de un AG:
Individuo: representado por un cromosoma con la
informacin que queremos optimizar
Calidad o fitness: da una medida del grado de
adaptacin al medio (objetivo, principio 4)
Operador seleccin: con probabilidad de seleccin de
cada individuo proporcional a la calidad (principio 3)
Operador emparejamiento o reproduccin: que
producir nuevos individuos en la siguiente generacin
(principio 1)
Operador mutacin: capaz de alterar el cdigo de los
nuevos individuos, incrementando la riqueza gentica
de la poblacin (principio 2)

Inteligencia Artificial en Videojuegos 38


Javier Alcal
Algoritmos Genticos
Algoritmo:
Generar una Poblacin aleatoria de NI individuos
Repetir hasta haber realizado N generaciones
Repetir hasta alcanzar NI individuos
Aplicar operador SELECCIN: extrae 2 individuos
Aplicar operador EMPAREJAMIENTO: cruza su informacin
gentica. Esto genera 2 nuevos individuos
Aplicar operador MUTACION a cada individuo generado

Devolver el individuo con mayor calidad de la poblacin

Inteligencia Artificial en Videojuegos 39


Javier Alcal
Redes Neuronales Evolutivas
Se combinan las redes neuronales con los
algoritmos genticos
Consiste en definir la entrada y la salida de una
red neuronal y los algoritmos genticos se
encargan de definir la topologa interna y los
pesos de cada neurona
NEAT (NeuroEvolution of Augmenting Topologies)
rtNEAT (real time NeuroEvolution of Augmenting
Topologies)

Inteligencia Artificial en Videojuegos 40


Javier Alcal
Redes Neuronales Evolutivas
Los personajes entrenados con este
sistema se adaptan fcilmente durante el
juego a los cambios en el entorno
Juego NERO (nerogame.org)

Inteligencia Artificial en Videojuegos 41


Javier Alcal
I+D en IA para Videojuegos
Un campo de investigacin muy abierto
Normalmente se basa en combinar varias
tcnicas
Por ejemplo, mquinas de estados finitos con
algoritmos genticos
Se conseguiran comportamientos
desconocidos, absurdos, divertidos, que
mejoran la experiencia de juego
Se trata de evitar esto:
Inteligencia Artificial en Videojuegos 42
Javier Alcal
I+D en IA para Videojuegos
Hay que procurar que el jugador est inmerso en
el juego sin aburrirse, adaptando el nivel de los
enemigos al nivel del jugador Concepto de flujo
Flujo (Mihaly Csikszenmihali)
Es el estado mental operativo en el cual la persona est
completamente inmersa en la actividad que est
ejecutando
Se caracteriza por un sentimiento de enfocar la energa,
de total implicacin con la tarea y de xito en la
realizacin de la actividad

Inteligencia Artificial en Videojuegos 43


Javier Alcal
I+D en IA para Videojuegos
Canal de flujo


(Mucho)
Ansiedad
f f as e D

Aburrimiento
C
na

(Poco)
la

0
ed

0 Habilidades
sl o

(Poca)
ju

(Mucha)
o

Inteligencia Artificial en Videojuegos 44


Javier Alcal
Consultas

Contacto: jalcala@eui.upm.es

http://aigamedev.com/
theory.stanford.edu/~amitp/GameProgramming/
http://nerogame.org/
Fluir (Flow). Una psicologa de la felicidad.
Mihaly Csikszenmihali
interactive.usc.edu/projects/cloud/flowing/

Inteligencia Artificial en Videojuegos 45


Javier Alcal
Inteligencia Artificial en
Videojuegos
Javier Alcal

GRACIAS
Ciclo de conferencias Game Spirit 2

También podría gustarte