Sunteți pe pagina 1din 63

Inteligencia Artificial en

Videojuegos
Seminario de Videojuegos y Tecnologas Interactivas

INCO, Facultad de Ingeniera (UDELAR)
Noviembre 2008
IA acadmica
IA en videojuegos
conceptos bsicos de IA
motor de IA
IA acadmica
definiciones de IA
agentes
test de Turing
campos de IA
aplicaciones
definiciones de IA
"The exciting new effort to make computers
think . . . machines with minds, in the full
and literal sense" (Haugeland, 1985)

"[The automation of] activities that we associate
with human thinking, activities such as
decision-making, problem solving, learning
... (Bellman, 1978)
"The study of mental faculties through the
use of computational models"
(Charniak and McDermott, 1985)

"The study of the computations that make
it possible to perceive, reason, and act"
(Winston, 1992)
"The art of creating machines that perform
functions that require intelligence when
performed by people" (Kurzweil, 1990)

"The study of how to make computers do
things at which, at the moment, people are
better" (Rich and Knight, 1991 )
"A field of study that seeks to explain and
emulate intelligent behavior in terms of
computational processes" (Schalkoff, 1990)

"The branch of computer science that is
Concerned with the automation of intelligent
behavior" (Luger and Stubblefield, 1993)
sistemas que piensan como humanos
sistemas que actan como humanos sistemas que actan racionalmente
sistemas que piensan racionalmente
test de Turing
Planteado en 1950 por Alan Turing
en su paper Computing
Machinery and Intelligence.

Propona cambiar la pregunta
pueden las mquinas pensar?
por pueden las mquinas hacer
lo que nosotros hacemos?

Una mquina es inteligente si un
interlocutor no puede distinguir
sus respuestas de las de un
humano.
agentes
Es uno de los enfoques ms comunes de la IA.

La define como el estudio y diseo de agentes
inteligentes, considerados como sistemas que
perciben su entorno y toman acciones para
maximizar sus posibilidades de xito.

Los agentes ms sencillos son los que resuelven un
nico problema especfico.

Esto permite a los investigadores centrarse en
problemas aislados.

campos de IA

razonamiento
aprendizaje
movimiento y manipulacin
procesamiento de leng. natural
percepcin
planeamiento
inteligencia social
inteligencia general
creatividad
aplicaciones
IA en videojuegos
particularidades
metas
IA en los distintos gneros
particularidades
Si se usara el enfoque de Turing, se dira que un juego
posee IA nicamente cuando el jugador no puede
distinguir un adversario humano de uno controlado por
el sistema.

Sin embargo, en videojuegos, se habla de IA para
referirse a la lgica que maneja el comportamiento de
los NPCs.

No se busca obtener la IA ms potente, sino maximizar
el entretenimiento brindado por el juego.

La cantidad y calidad de IA necesarias dependen del
tipo de juego.

Debe tomarse en cuenta desde la etapa de diseo.
metas
Independientemente del tipo de juego, se deben buscar
algunas metas comunes:
Presentar un reto para el jugador

No hacer cosas estpidas

Ser impredecible

Contribuir a la historia

Construir un mundo creble

metas
Bsicamente, si el jugador cree que el juego
es inteligente, el trabajo est hecho.

IA en cada gnero: racing
IA bsica, en muchos casos se
limita al control de los oponentes
para seguir un camino ptimo a
lo largo de la pista.

Los avances han sido mucho
menores que en el rea de
grficos.

Algunos ttulos presentan
innovaciones que mejoran el
gameplay (Total Immersion
Racing, Forza Motorsport).

IA en cada gnero: RTS
El ritmo ms lento permite
dedicar ms procesador a la IA.

Bsicos: comportamiento
predeterminado, tareas de alto
nivel y planeamiento estratgico.



IA en cada gnero: aventura
Aunque pueden haber escenas de
accin, el juego se centra
bsicamente en los puzzles y la
accin es bastante lineal.

Se pueden usar mquinas de
estado finitas para definir el
comportamiento de los NPCs,
agregando habilidades bsicas de
pathfinding para encontrar y
perseguir al PC.


IA en cada gnero: accin
Los enfrentamientos son la clave
del juego, por lo que muchas
veces se requiere IA ms
sofisticada.

Se utilizan los mismos
mecanismos bsicos que en el
gnero de aventura, pero se
busca innovar ms.

Se han utilizado tcnicas como
algoritmos genticos y redes
neuronales para entrenar a los
oponentes.
IA en cada gnero: RPG
Es probablemente el gnero que
permite aplicar mayor variedad
de tcnicas de IA.

FSM (tanto en PCs como en
NPCs), pathfinding, scripts
modificables por el jugador, etc.


conceptos bsicos de IA
autmatas finitos
pathfinding
aprendizaje
coordinacin de NPCs
movimiento
lgica fuzzy
autmatas finitos
Una de las herramientas ms simples para
implementar comportamiento de los NPCs.

Se compone de un conjunto finito de estados y
condiciones que llevan de un estado a otro.

Slo resuelve qu hacer en distintas situaciones, se
debern implementar otras tcnicas para ejecutar
cada accin.



autmatas finitos

lgica fuzzy
No siempre la pertenencia a un estado es un valor
booleano.
lgica fuzzy

Adems, puede haber varios factores incidiendo en
la conducta de un personaje.

Por ejemplo, un jugador de ftbol decide qu
hacer tenindo en cuenta su posicin relativa con
respecto a otros jugadores, pero adems debe
actuar distinto dependiendo de qu equipo (o
jugador) tenga la posesin de la pelota.

En estos casos, se generan matrices de accin, y se
calcula el nivel de pertenencia a cada estado.
lgica fuzzy
Para el ejemplo del jugador:
Pathfinding

Se refiere a encontrar un camino entre
dos puntos venciendo obstculos como
pueden ser paredes, agua, puertas, etc.

Es utilizado en una amplia variedad de
juegos.



Algoritmo A* (star)
Definir el rea de trabajo
NODOS
DESTINO
ORIGEN
ZONA INTRANSITABLE
Algoritmo A* (star)
Referencia de colores
PUNTERO
AL PADRE
LISTA
CERRADA
LISTA
ABIERTA
Algoritmo A* (star)
Puntuando el camino
A cada cuadro se le da un peso F que se calcula de la
siguiente forma:
F = G + H

donde
G = el coste de movimiento para ir desde un cuadro
seleccionado en un momento dado a un cierto cuadro de la
rejilla.
H = el coste de movimiento estimado para ir desde ese
cuadro de la rejilla hasta el destino final (Heurstica)
Algoritmo A* (star)
Bsqueda
1. Aade el cuadro inicial a la lista abierta.
2. Repite lo siguiente:


a) Busca el cuadro con el coste F ms bajo en la lista
abierta. Nos referimos a este como el cuadro actual.
b) Cmbialo a la lista cerrada

Algoritmo A* (star)
c) Para cada uno de los 8 cuadros adyacentes al cuadro actual
Si no es transitable o si est en la lista cerrada, ignralo.
Si no est en la lista abierta, adelo a la lista abierta. Haz que el
cuadro actual sea el padre de este cuadro. Almacena los costes F, G
y H del cuadro.
Si ya est en la lista abierta, comprueba si el camino para ese es
mejor usando el coste G como baremo. Un coste G menor significa
que este es un mejor camino. Si es as, cambia el padre del cuadrado
al cuadro actual y recalcula G y F del cuadro.
Algoritmo A* (star)
d) Para cuando:
aadas el cuadro objetivo a la lista abierta en cuyo caso el
camino ha sido encontrado, o
falles en encontrar el cuadro objetivo y la lista abierta est
vaca. En este caso no hay camino.
Algoritmo A* (star)
3. Guarda el camino. Muvete hacia atrs desde el cuadro
objetivo, ve desde cada cuadro a su padre hasta que alcances
el cuadro inicial. El camino seguido es el que buscas.

Algoritmo A* (star)
Sobre la implementacin
1. Mantenimiento de la lista abierta:



Listas
Listas ordenadas
Heap (+ de 10 veces ms rpido en caminos largos)
2. Otras unidades:



3. Mejorar la velocidad:



No considerar otras unidades en el cdigo del
pathfinding
Cdigo separado para el manejo de colisiones
Utilizar un mapa ms pequeo o unos pocos personajes
No buscar el camino para varios personajes al mismo
tiempo
Pathfinding A* de dos niveles
Caminos precalculados incluidos en el juego
Algoritmo A* (star)
5. Variable de costo de terreno:



Diferenciar el terreno en base al costo de la superficie
Caminos de menor costo puede significar recorrer una
distancia ms larga.
Mapas de influencia
6. Manejo de reas inexploradas:



Si los personajes siempre saben que camino tomar
puede resultar un tanto irreal.
Manejar informacin sobre el rea que cada jugador ha
explorado y considerar el resto del mapa como
transitable hasta que se demuestre lo contrario.
4. Caminos ms suavizados:



El camino ms corto y de menor costo no tiene
porque ser el ms suavizado.
Penalizar cuadros donde el cambio de direccin
es abrupto.
Introduccin NPCs
Originalmente los NPCs eran
implementados mediante
mquinas de estado finitas o
scripts.

Nmero determinado de acciones
y reacciones previamente
conocidas y programadas por el
desarrollador.

Estrecha jugabilidad, deja de ser
entretenido.


Algunas definiciones
Un NPC es un personaje de en juego que es controlado
automticamente por inteligencia artificial u otra
tcnica.

Un agente autnomo es un sistema situado en un
entorno de donde percibe informacin y sobre el cual
acta a lo largo del tiempo persiguiendo su objetivo.

Difieren de un programa normal
Pro-activos: No solo actan ante la accin de un
usuario
Persistentes: Continan funcionando aunque el
usuario no interacte con ellos.



Redes Neuronales Artificiales
Las RNA son dispositivos o software programado de
manera tal que funcionen como las neuronas biolgicas
de los seres vivos.

El objetivo es conseguir que las mquinas den
respuestas similares a las que es capaz de dar el
cerebro

Las RNA estn compuestas de muchos elementos
sencillos que operan en paralelo.

El diseo de la red est determinado mayormente por
las conexiones entre sus elementos. Al igual que las
conexiones de las neuronas cerebrales.
Redes Neuronales Artificiales
Las RNA pueden ser entrenadas para la solucin de
problemas que son difciles para sistemas
computacionales comunes o para el ser humano.

Tipo de pesos
Fijos
Variables

Tipo de aprendizaje
Supervisado
No supervisado

Fases de operacin
Entrenamiento de la red.
Recuperacin de lo aprendido.
Aplicacin a los NPCs
Necesidad de crear juegos ms divertidos y
de mayor vida til.

Se pueden crear juegos ms realistas con
comportamientos inteligentes.
Se pretende que los NPCs puedan ir aprendiendo en
cada sesin de juego e interactuar con los escenarios
virtuales de forma inteligente con un mnimo
conocimiento inicial.
reas de influencia
1. Conocimiento, entendimiento y explotacin del terreno.
Escondites o refugios
Atajos
Lugares de ataque estratgicos

2. Uso eficiente del trabajo en equipo
Interaccin de NPCs para lograr un mismo objetivo

3. Habilidad para cazar
Habilidad de NPCs para perseguir al jugador

4. Instinto de supervivencia
Planificar los ataques
STEERING
Necesario para la creacin de agentes autnomos
Sistema situado en y parte de un entorno que siente ese
entorno y acta sobre l, a travs del tiempo,
persiguiendo sus propios objetivos de forma que afecte lo
que siente en el futuro.
Maniobrabilidad (Steering) es la habilidad de
moverse segn lo que se encuentra en su entorno
intentando cumplir un objetivo dado
FPS
Uso extensivo de maniobrabilidad
Llegar a destino
Evitar obstculos
Persecuciones
Huir
Etc
STEERING
Individuales
Grupales
Uso de un vector fuerza (Steering Force), masa,
posicin y orientacin.
Se calcula la fuerza
necesaria que se debe aplicar
para alcanzar el objetivo. Se
la disminuye segn la
velocidad mxima y se aplica
como aceleracin
Comportamientos bsicos individuales
Bsqueda (Seek)
Huir (Flee)
Llegar (Arrive)
Persecucin (Pursuit)
Evadir (Evade)
Vagar(Wander)
Evitar obstculos (Obstacle avoidance)
Evitar muros(Wall avoidance
Interponerse(Interpose)
Esconderse(Hide)
Seguimiento de ruta (Path following)
Persecusin a distancia (Offset pursuit)
Comportamientos bsicos grupales
Separacin (Separation)
Alineamiento (Alignment)
Coehsin (Cohesion)
Bandada (Flocking)
Motor de IA
Data driven

Decision Making
Base del sistema

Perception System
El entorno al que se debe responder

Navigation
Ir del punto A al B


Motor de IA IA Distribuida
Basado en capas
Capa de percepcin (Perception layer)
Capa de comportamiento (Behavior layer)
Capa de animacin (Animation layer)
Capa de movimiento (Motion layer)
Toma de decisiones a corto plazo (Short term
decision making)
Toma de decisiones a largo plazo (Long term
decision making)
Capa de informacin basada en la posicin
Motor de IA Brooks Subsumption
Basado en capas
Ms bsico que la IA Distribuida.
Intenta llegar a una inteligencia de insecto
robusta
Muchas veces todo lo que se necesita
Mentalidad de colmena en RTS

Motor de IA
Consideraciones de diseo
Data driven
One track mind (OTM)
Nivel de detalle
IA de soporte
Ideas de diseo
Ideas de implementacin


Ejemplos
Los 10 juegos ms influyentes
(Lista de controversias)
Mejores IA
Mejores diseos
Ms innovadores
Ms vendidos
#10 Half Life (1998)
Cut Scenes interactivas
IA NPC que acompaa al jugador
Squad AI
#9 Total War (2000)
Miles de NPCs controlados simultaneamente
Modela las emociones de grupos de soldados
(segn el Arte de la guerra de Tsun-Tzu)
#8 Warcraft (1994)
Cientos de personajes manejados por IA
Uso de pathfinding en grandes cantidades de
personajes simultaneamente
#7 Thief (1998)
Modelo sensorial que permite responder con
Realismo a luces y sombras
Voces pregrabadas para dar a entender al
Jugador que es lo que est pasando
#6 Sims (2000)
Uso de objetos inteligentes para decirle al
personaje como actuar
Modelado de emociones y deseos
#5 Creatures (1996)
Aprendizaje automtico
Uso de redes neuronales
Gran avance en ALife
#4 Halo (2001)
Los enemigos se cubren inteligentemente
uso de grandas y fuego al sorprender
La situacin del grupo afecta a los individuos
Behavior Tree
#3 Faade (2005)
Uso de lenguaje natural
Historia dinmica
#2 FEAR (2005)
Uso de planificador en motor de IA
Uso del entorno (puertas, mesas, etc)
Muy buenas tcticas grupales
#1 Black & White
Interaccin con una criatura inteligente que
aprende a base de premios y castigos
Integracin de vida artificial con estrategia
Arquitectura IA basada en la
ciencia cognitiva
Belief Desire Intention (BDI)
Preguntas ?
Referencias
Artificial Intelligence: A Modern Aproach, Stuart J. Russell and
Peter Norvig (Prentice Hall 1995)
Game Design Foundations, by Roger E. Pedersen (Wordware
Publishing 2003)
Game Design Theory and Practice, Second Edition,
Richard Rouse (Wordware Publishing 2005)
Game Programming All In One, Bruno Miguel de Texeira
Sosa (Premier Press 2002)
Game Programming Gems 6
Referencias
AI Game Engine Programming , by Bryan Schuab (Charles River Media
2004)
Programming Game AI By Example, by Matt Buckland (Wordware
Publishing 2005)
AI Game Programming Wisdom 2, by Steve Ravin
www.aigamedev.com
www.gameai.com
www.gamasutra.com

S-ar putea să vă placă și