Vous êtes sur la page 1sur 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 Javier Alcal 2

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 Javier Alcal

Definicin de Inteligencia Artificial


Test de Turing para humanos: captcha

Inteligencia Artificial en Videojuegos 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 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 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 Javier Alcal 7

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 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 Javier Alcal

Orgenes de la IA en videojuegos
Battelcruiser 3000AD (1996) incorpora

redes de neuronas

Inteligencia Artificial en Videojuegos Javier Alcal

10

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 Javier Alcal 11

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 Javier Alcal 12

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 Javier Alcal

13

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 14

Inteligencia Artificial en Videojuegos Javier Alcal

Juegos de suma cero


Se propaga el valor hasta el nivel 0
Max 0

Min

-1

-1 15

Inteligencia Artificial en Videojuegos 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 Javier Alcal

16

Juegos de suma cero


Partidas histricas de ajedrez:

Kasparov 4 Kasparov 2.5 Kasparov 4 Kasparov 3

Deep Thought 2 DEEP BLUE 3.5 Deep Fritz 4 Deep Junior 3

(1996) (1997) (2002) (2003)

Inteligencia Artificial en Videojuegos Javier Alcal

17

Juegos de suma cero

rbol inicial del ajedrez:


Juega blancas:
Pen 1 escaque Pen 2 escaques Caballo 20 movimientos posibles

x8 x8 x4

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


18

Inteligencia Artificial en Videojuegos 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 Javier Alcal 19

Bsqueda de caminos
3 2 4 2 3 5 8 2 3 5 3 4 7 1 2 3 4 5 4 7 2

Inteligencia Artificial en Videojuegos Javier Alcal

20

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 Javier Alcal

21

Bsqueda de caminos
Dijkstra A*

Comparativa de mtodos
Inteligencia Artificial en Videojuegos Javier Alcal 22

Agentes Inteligentes
Un agente inteligente es una entidad que

percibe y acta sobre un entorno de forma razonada

Inteligencia Artificial en Videojuegos Javier Alcal

23

Agentes Inteligentes
Tipos de agentes inteligentes
Agentes Inteligentes

Agentes Biolgicos

Agentes Hardware

Agentes Software

Inteligencia Artificial en Videojuegos Javier Alcal

24

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 Javier Alcal

25

Agentes Inteligentes
Sensores: Actuadores:

Detectores de obstculos Micrfonos


0 1 1 1 1 1 0 0

Piernas Brazos Ruedas

Detecta rincn Decide girar a la izquierda

Realiza el giro

Inteligencia Artificial en Videojuegos Javier Alcal

26

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 Javier Alcal 27

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 Javier Alcal

28

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 Javier Alcal 29

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 enemigos

Patrullar

Disparar

Enemigo a la vista

Inteligencia Artificial en Videojuegos Javier Alcal

Enemigo a la vista

30

Mquinas de Estados Finitos


MEF para un fantasma de Pac-Man
Pac-Man lejos Pac-Man cerca Pac-Man cerca

Buscar
Time out Pac-Man lejos Modo comible activado

Perseguir
Pac-Man alcanzado Modo comible activado

Inicio
Modo comible desactivado Pac-Man alcanza al fantasma

Comer

Huir
Modo comible activado

Inteligencia Artificial en Videojuegos Javier Alcal

31

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 Javier Alcal

32

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 Javier Alcal 33

Redes de Neuronas
Percetrn simple

Entrada

Salida

Perceptrn multicapa

Entrada

Oculta

Salida

Inteligencia Artificial en Videojuegos Javier Alcal

34

Redes de Neuronas
Uso en videojuegos

Izquierda

Girar a la izquierda Girar a la derecha Seguir de frente

Frontal

Derecha

Inteligencia Artificial en Videojuegos Javier Alcal

35

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 Javier Alcal 36

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 Javier Alcal

37

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)
38

Inteligencia Artificial en Videojuegos 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 Javier Alcal

39

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 Javier Alcal 40

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 Javier Alcal

41

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 Javier Alcal 42

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 Javier Alcal 43

I+D en IA para Videojuegos


Canal de flujo

(Mucho)

Ansiedad

ju f f as e D sl o ed la na C

Aburrimiento

(Poco) 0

0 (Poca)

Habilidades

(Mucha)

Inteligencia Artificial en Videojuegos Javier Alcal

44

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 Javier Alcal 45

Inteligencia Artificial en Videojuegos


Javier Alcal

GRACIAS
Ciclo de conferencias Game Spirit 2

Vous aimerez peut-être aussi