Download - Movimiento en Videojuegos
-
7/27/2019 Movimiento en Videojuegos
1/76
Diego C. Martnez - DCIC-UNS
Inteligencia Artificial enVideojuegos
DiegoC.Martnez
LaboratoriodeInvestigacinyDesarrolloenInteligenciaArtificial
DepartamentodeCienciaseIngenieradelaComputacinUniversidadNacionaldelSur
-
7/27/2019 Movimiento en Videojuegos
2/76
Diego C. Martnez - DCIC-UNS
Introduccin
Diego C. [email protected]
http://cs.uns.edu.ar/~dcmDepartamento de Ciencias e Ingeniera de la Computacin.Universidad Nacional del Sur.(0291)-4595135 interno 2614
Laboratorio de Investigacin y Desarrollo en Inteligencia ArtificialLIDIA - http://lidia.cs.uns.edu.ar
Mis principales actividades de investigacinArgumentacin rebatibleInteligencia Artificial en juegos interactivos digitales
-
7/27/2019 Movimiento en Videojuegos
3/76
Diego C. Martnez - DCIC-UNS
InteligenciaArtificial
No es fcil definir qu es inteligencia artificial
qu es la inteligencia?
qu cosas son inteligentes y qu cosas no?cundo estamos frente a una manifestacin de inteligencia?
J ohn McCarthy
IA
una ciencia objetivo cientfico: comprender losprincipios del comportamiento inteligente.
una disciplinaingenieril
objetivo :especificar mtodos para eldiseo de artefactos inteligentes.
-
7/27/2019 Movimiento en Videojuegos
4/76 Diego C. Martnez - DCIC-UNS
InteligenciaArtificial
Crear comportamiento inteligente automatizado es complicado.La inteligencia tiene muchos aspectos.
Algunas areas de investigacin tpicas de Inteligencia Artificial:
aprendizaje representacin de conocimiento y razonamiento sistemas multiagente procesamiento de lenguaje natural gestacinde planes y agendas robtica bsqueda incertidumbre
optimizacin reconocimiento de imgenes razonamiento espacial...
Bsicamente, cualquier aspecto que requiera inteligencia ha sidoanalizado por los investigadores de Inteligencia Artificial.
Aunque no lo parezca, la IA tiene una relacin antigua con los juegos...
-
7/27/2019 Movimiento en Videojuegos
5/76 Diego C. Martnez - DCIC-UNS
InteligenciaArtificialyJuegos
Los primeros intentos en crear comportamiento inteligente se basaron en juegoscomo el ajedrez.
De hecho, la inteligencia artificial en juegos fue considerada por variosprceres de la ciencia de la computacin:
Claude Shannon (1950)Programming a Computer for Playing Chess - Philosophical
Magazine, 7th series, 41, no. 314 (March 1950): 256-75.
Alan Turing (~1948)Cre un programa para jugar ajedrez para unacomputadora que todava no exista.
Arthur Samuel (~1958)Cre un programa para jugar damas, con la posibilidadde aprendizaje de movidas.
-
7/27/2019 Movimiento en Videojuegos
6/76
InteligenciaArtificialyJuegos
Diego C. Martnez - DCIC-UNS
Durante muchos aos ms la IA fu desarrollada pensando en la capacidad de
jugar como ejemplo de habilidad inteligente.La inteligencia consista en poder jugar el juego.
Con el tiempo, sin embargo, se fu diluyendo un poco esa relacin:
Los juegos de tablero y cartas pierden atractivo lentamenteCon los aos dej de ser un escenario motivador
Otros desarrollos cientficos demandaban mayor atencinLas computadoras se multiplicabn en la sociedad
Las redes comenzaban a cobrar protagonismo.
-
7/27/2019 Movimiento en Videojuegos
7/76 Diego C. Martnez - DCIC-UNS
InteligenciaArtificialyJuegos
Mientras la IA olvidaba un poco los juegos, surgieron losjuegos de entretenimientodigital, que crecan ao a ao
en calidad visual en satisfaccin de entretenimiento
en rubro comercial
Recin a principios de este siglo la comunidad cientfica de InteligenciaArtificialvuelve a prestar atencin a los juegos, esta vez a los de entretenimientointeractivo digital.
Este reencuentro surge justo cuando
la comunidad de IA ve a los videojuegos como campo de exploracin, y
la comunidad de videojuegos demanda mayor innovacin en IA
-
7/27/2019 Movimiento en Videojuegos
8/76 Diego C. Martnez - DCIC-UNS
IAAcadmicavsIAenvideojuegos
IA Acadmica IA videojuegos
Usualmente se buscanefectos puntuales
A veces el costo no justifica el efecto
Superar siempre al humano noes negocio
Ideas y desarrollo acotadopor el mercado
No se busca unefecto particular,sino comportamiento general
A veces el efecto justifica el costo
Algunas reas de investigacin
buscan superar al humano
Sin limitaciones de ideas ydesarrollo
-
7/27/2019 Movimiento en Videojuegos
9/76 Diego C. Martnez - DCIC-UNS
GnerosdeJuegos(gamegenre)
Actualmente existe una gran variedad de juegos...
Action
Role-playing
Adventure
Rhythm Games
Board
ShootersFirst-person Shooters
Tactical Shooters
SimulationsCombat SimulationsManagement Simulations
Life Simulations
SportsSoccer, Golf, Baseball
Wrestling, Racing
Basketball, Football, Hockey
StrategyReal-time strategy
Turn-based strategy
I d l IA d i l id j
-
7/27/2019 Movimiento en Videojuegos
10/76
Diego C. Martnez - DCIC-UNS
InteresesdelaIAacadmicaenlosvideojuegos
J Laird, M. van Lent.Human-level AI's Killer Application: Interactive Computer Games
Gneros de juegos
Accin
RPG
Aventuras
J uegos Estratgicos
Deportes en equipo
Deportes individuales
Problemas de IA
Interactuar con el entorno
Adaptarse al entorno
Adaptarse al jugador humano
Interactuar con otras IAs
Coordinar comportamiento
Navegacin
Uso de tctica y estrategia
Respuestas humanas
Comportamiento emocional
Areas de IA Acadmica
Percepcin de entorno
Razonamiento de sentido comn
Planning & counter-planning
Modelado de conocimiento
Modelado del oponente
Respuesta en tiempo real
Teamwork
Pathfinding
Razonamiento temporal
Aprendizaje automatizado
Deliberacin
Adquisicin de conocimiento. . .
I t d l IA d i l id j
-
7/27/2019 Movimiento en Videojuegos
11/76
Diego C. Martnez - DCIC-UNS
InteresesdelaIAacadmicaenlosvideojuegos
La comunidad de IA ve con buenos ojos el campo de los videojuegos.La comunidad de videojuegos muestra inters en la IA.
Algunas seales en esta direccin:
Artificial Intelligence and Interactive Digital Entertainment Conference AIIDE(2005-2012). Antecedentes desde el 99.
AI Summit Game Developers Conference.
IGDA Artificial Intelligence Interface Standard Committee (AISC)
Artificial Intelligence and Games Research Network(empresas+investigadores) United Kingdom.
IEEE Symposium on Computational Intelligence and Games.
Libros:AI Game Programming Wisdom I-IV, Steve Rabin (Nintendo of America)
Artificial Intelligence for Computer Games: an Introduction. J ohn Funge.Artificial Intelligence for Games. Ian Millington
Varios grupos de investigacin en diferentes universidades...
I t d l IA d i l id j
-
7/27/2019 Movimiento en Videojuegos
12/76
Diego C. Martnez - DCIC-UNS
InteresesdelaIAacadmicaenlosvideojuegos
Algunos Laboratorios o Grupos de Investigacin en Inteligencia Artificialque trabajan en juegos
GAMES Group, Universidad de Alberta. Canad.
IRCL Group, Universidad de Alberta. Canad.
Games and AI Group. Universiteit Maastritch, Holanda
Center for Games Research Group. University of Copenhagen, Dinamarca
Entertainment Technology Center, Carnegie Mellon, EEUU.
NUS Game Development Group, National University of Singapore.
Artificial Intelligence Lab, University of Michigan, EEUU
Donde sar AI en j egos?
-
7/27/2019 Movimiento en Videojuegos
13/76
Diego C. Martnez - DCIC-UNS
DondeusarAIenjuegos?
En los enemigos:
Saben navegar por el mapa y/o terreno
Saben ocultarse y percibir nuestra cercana.Saben cuando y cmo perseguirnos.
Adoptan estrategias dinmicas.
En nuestras unidades:
Se mueven en formaciones inteligentes.Reaccionan adecuadamente anteataques inesperados.
Son proactivos y reactivos.
En los amigos:
Pueden seguirnos adecuadamente por el terreno.Saben dar apoyo de manera inteligente.
Donde usar AI en juegos?
-
7/27/2019 Movimiento en Videojuegos
14/76
Diego C. Martnez - DCIC-UNS
DondeusarAIenjuegos?
Otros posibilidades:
En la generacin de dilogos en RPGs.En la generacin de enemigos ms inteligentes(algo pueden aprender luego de un tiempo).
En la simulacin completa de un jugador virtual (bot).
En la generacin de mapas y terrenos.
En el comportamiento emocional de los NPC.
en crear mejores oponentes, en ayudar al jugador,en extender el tiempo de vida del juego,
en ser un producto diferente a los dems.
Ejecutando el juego
-
7/27/2019 Movimiento en Videojuegos
15/76
Diego C. Martnez - DCIC-UNS
Ejecutandoeljuego...
Durante el transcursodel juego, varias
computaciones sonnecesarias
procesar input del usuario
procesar lgica del juego
mantener representaciones del mundo virtual
mostrar la representacin grfica del juego
En muchos casos, todo esto casi simultneamente
con el agravante de quealgunas de estas tareas son costosas en tiempo y recursosalgunas no pueden posponerse!
tiempo
frame frame frame
Ejecutando el juego
-
7/27/2019 Movimiento en Videojuegos
16/76
Diego C. Martnez - DCIC-UNS
Ejecutandoeljuego...
Como en cualquier aplicacin, la performance depende mucho de las capacidades delhardware...
En algunos casos es necesario regular el nivel de detalle (level of detail)
Graphics Level of Detail
La reduccin de carga de procesamiento favorece la fluidez del juego
Occlussion culling
On-off de otros efectos visuales(antialiasing, filtros visuales, etc)
Diferentes detalles de texturas
Diferentes niveles de complejidad geomtrica
Ejecutando el juego
-
7/27/2019 Movimiento en Videojuegos
17/76
Diego C. Martnez - DCIC-UNS
Ejecutandoeljuego...
AI Level of Detail
Diferentes niveles de profundidad de bsqueda
Diferentes parmetros para la toma de decisiones
Diferentes tipos de realismo de comportamiento
(eg, puntera)
Diferentes niveles de detalle de comportamiento grupal
Como en cualquier aplicacin, la performance depende mucho de las capacidades delhardware...
En algunos casos es necesario regular el nivel de detalle (level of detail)
La reduccin de carga de procesamiento favorece la fluidez del juego
Tipos de AI en juegos
-
7/27/2019 Movimiento en Videojuegos
18/76
Diego C. Martnez - DCIC-UNS
TiposdeAIenjuegos
Hacks
Efectos puntuales, usualmente plasmados directamente en el
cdigo como recurso de programacin.No representan realmente una tcnica de Inteligencia Artificial.Ejemplo: fantasmas del PacMan.
Heursticas
Tcnicas o reglas que aplicadas pueden servir pararesolver un problema puntual.La bsqueda es terreno habitual de heursticasEjemplo: atacar la unidad enemiga ms dbil.
Algoritmos
Algoritmos que sustentan comportamiento inteligente,basados en tcnicas generales aplicables a variosescenarios.Ejemplo: pathfinding, planificacin, anlisis de terrenos,movimientos coordinados en grupos, etc..
AI Model (Millington-Funge)
-
7/27/2019 Movimiento en Videojuegos
19/76
Diego C. Martnez - DCIC-UNS
AIModel(Millington Funge)
World
Interface
Execution Management
Group AI
Character AI
Strategy
Decision Making
Movement
Content Creation
Scripting
Animation Physics
AI getsinformation
AI gets processor time
AI has implications forrelated technologies
AI turns into on-screenaction
AI Model (Millington-Funge)
-
7/27/2019 Movimiento en Videojuegos
20/76
Diego C. Martnez - DCIC-UNS
AIModel(Millington Funge)
Execution Management
Group AI
Character AI
Strategy
Decision Making
Movement
MovementAlgoritmos y tcnicas para elmovimiento de los caracteres sintticos(moverse, buscar, perseguir, esquivar,escapar, pasear, etc)
Decision MakingAlgoritmos y tcnicas para la toma de
decisiones de los caracteres sintticos(atacar, defender, construir, destruir,seleccin de acciones encadenadas,planificacin, etc)
Decision StrategyAlgoritmos y tcnicas enfocados en el
comportamiento grupal(actitud agresiva, defensiva, toma decontrol del terreno, etc)
-
7/27/2019 Movimiento en Videojuegos
21/76
IA en videojuegos: Movimiento
-
7/27/2019 Movimiento en Videojuegos
22/76
Diego C. Martnez - DCIC-UNS
IAenvideojuegos:Movimiento
El movimiento de caracteres sintticos es probablemente el aspecto ms elementalde inteligencia artificial en un juego.
Una buena parte de la actividad cientfica en videojuegos se centra en aspectos demovimiento:
Tcnicas de bsqueda de caminos Tcnicas de generacin de waypoints de navegacin Movimientos coordinados de grupos de unidades Movimientos de multitudes (crowd) Movimientos crebles Planificacin de movimientos
Este rea de IA en J uegos tiene estrecha relacin con el rea de animacin
Estructuradeunalgoritmodemovimiento
-
7/27/2019 Movimiento en Videojuegos
23/76
Diego C. Martnez - DCIC-UNS
g
ALGORITMOde Movimiento
Movement request
nueva posicinnueva velocidad
Character
posicinvelocidad
Game
otros caracteresgeometria del nivelpathsestado del juego
Steeringbehaviors
-
7/27/2019 Movimiento en Videojuegos
24/76
Diego C. Martnez - DCIC-UNS
g
Crayg Reynolds present en 1999 el concepto de steering behaviors paracaracteres autnomos
Steering Behaviors for Autonomous Characters
Crayg Reynods. Game Developer Conference 99.
Autonomous characters are a type ofautonomous agent intended for use incomputer animation and interactive media such as games and virtual reality.These agents represent a character in a story or game and have some ability toimprovise their actions
situated, embodied, reactive, virtual agents
situado en unmundo virtual
junto con otrasentidades
con unamanifestacinfsica concreta
sus accionesson inducidas
por eventos delentorno
agentes realesen un mundo
virtual
Steeringbehaviors
-
7/27/2019 Movimiento en Videojuegos
25/76
Diego C. Martnez - DCIC-UNS
g
Sugiere que el comportamiento de un agente autnomo puede descomponerse entres capas:
Action Selection
Steering
Locomotion
Decide las acciones deacuerdo a las metasseleccionadas.
Calcula las trajectoriasdeseadas para cumplir lodecidido en la capa anterior
Aspectos mecnicos delmovimiento del agente
Steeringbehaviors
-
7/27/2019 Movimiento en Videojuegos
26/76
Diego C. Martnez - DCIC-UNS
g
brakingthrust
steering
ste
ering
Steering Layer
Decision Layer
Locomotion Layer
Eliminar el enemigo X
Acercarse mientras ste se mueve
EjemplosdeSteeringBehaviors:Seek
-
7/27/2019 Movimiento en Videojuegos
27/76
Diego C. Martnez - DCIC-UNS
velocidad actual
velocidaddeterminada
porseek
velocidad deseada
(max velocidad directa)
trayectoria
EjemplosdeSteeringBehaviors:Wander
-
7/27/2019 Movimiento en Videojuegos
28/76
Diego C. Martnez - DCIC-UNS
Wander es un movimiento cinemtico frecuente.Representa un andar aleatorio con una orientacin general de poca variacin.
La orientacin est dada por un ngulo de rotacin aleatorio, tendiente a 0
Puede implementarse tambin en base a Seek generando puntos al azar:
radio dewandering
EjemplosdeSteeringBehaviors:Flocking
-
7/27/2019 Movimiento en Videojuegos
29/76
Diego C. Martnez - DCIC-UNS
Los steering behaviors pueden combinarse y ponderarse para construircomportamientos complejos y variados.
Un ejemplo muy popular es flocking.
Flocking es un comportamiento emergente que se logra fcilmente combinandotres steering behaviors: separacin cohesin alineacin
Flocking- separation
-
7/27/2019 Movimiento en Videojuegos
30/76
Diego C. Martnez - DCIC-UNS
El behavior Separation crea una fuerza que procura mantener una distancia entreel agente y sus vecinos
radio decercana ovecindad
vecinos
Flocking- separation
-
7/27/2019 Movimiento en Videojuegos
31/76
Diego C. Martnez - DCIC-UNS
El behavior Separation funciona mejor cuando hay cierto grado de alineacin entrelos caracteres sintticos vecinos.
Flocking- alineacin
-
7/27/2019 Movimiento en Videojuegos
32/76
Diego C. Martnez - DCIC-UNS
El behaviorAlignment le permite al caracter sinttico alinearse con los agentes vecinos.Se calcula una orientacin promedio de todos sus vecinos
Flocking- cohesin
-
7/27/2019 Movimiento en Videojuegos
33/76
Diego C. Martnez - DCIC-UNS
El behavior Cohesin le permite al caracter sinttico manterse prximo a sus vecinos.Se calcula un centro de masa como el promedio de las posiciones de los vecinos.
Movimientoscoordinados
-
7/27/2019 Movimiento en Videojuegos
34/76
Diego C. Martnez - DCIC-UNS
En muchos juegos los agentes sintticos deben moverse de manera coordinada.Por ejemplo: pelotn de soldados, escuadra de aviones.Esto se suele denominar movimiento de formaciones.
Age of Empires Homeworld
A veces las formaciones son fijas (como las anteriores)y otras veces ms dinmicas (como en Company of Heroes)
Formaciones:fijas,escalables,emergentes
-
7/27/2019 Movimiento en Videojuegos
35/76
Diego C. Martnez - DCIC-UNS
Las formaciones adoptan una distribucin geomtrica especfica distribuyendoposiciones para cada participante.
arrive
arrive
arrive
arrive
Rolesenlasformaciones
-
7/27/2019 Movimiento en Videojuegos
36/76
Diego C. Martnez - DCIC-UNS
La estructura de las formaciones puede enriquecerse con mayor informacin.Pueden definirse slots ocupables slo por ciertas unidades.
caballeracombate de contacto
fuertes en choque
infanteriacombate de contactoagiles en movimiento
arqueroscombate a distanciadbiles en proteccin
catapultasartilleria de mayor rango de ataque
estructura frgil
Age of Empires
Rolesenlasformaciones
-
7/27/2019 Movimiento en Videojuegos
37/76
Diego C. Martnez - DCIC-UNS
Lo adecuado es definir estructuras de formaciones donde los slots admitendiferentes tipos de unidades.
Una aproximacin es flexibilizar la ocupacin de slots asignando costos.Estos se denominan soft slots.
melee rango medio rango alto
arquero
infanteracaballera
catapulta
melee rango medio rango alto
0100
1000
4000
300500
0
100
500500
100
0
La asignacin de slots se realiza procurando minimizar los costos.
Formacionesdinmicas
-
7/27/2019 Movimiento en Videojuegos
38/76
Diego C. Martnez - DCIC-UNS
Las formaciones no necesariamente deben tener posiciones fijas.En algunas simulaciones es necesario dar algunos grados de libertad a la posicinde los slots
Ejemplo:CompanyofHeroes- formaciones
-
7/27/2019 Movimiento en Videojuegos
39/76
Diego C. Martnez - DCIC-UNS
Company of Heroes es un juego de estrategia en tiempo real basado en WWII.Una de las innovaciones fu el realismo de la dinmica de las formaciones.
escuadrn de infantera targets de posicin
El jugador da rdenes nicamente a los escuadrones completos.La IA del escuadrn procura exhibir un comportamiento inteligente al ejecutar lasordenes recibidas.
Ejemplo:CompanyofHeroes- formaciones
-
7/27/2019 Movimiento en Videojuegos
40/76
Diego C. Martnez - DCIC-UNS
squad
core
left flank
right flank
Cada uno tiene un lider
El lider es asignado dinmicamente y cambia cuandoalguna unidad es eliminada o el escuadrn reforzado.
Varias reglas definen la asignacin de posiciones, entre ellas: los lideres van en el core los Aliados ubican las armas pesadas en los flancos, el Eje en el core.
squad leader
flank leaderflank leader
follower
follower follower
Ejemplo:CompanyofHeroes- formaciones
-
7/27/2019 Movimiento en Videojuegos
41/76
Diego C. Martnez - DCIC-UNS
target determinado por elusuario (click)
futura posicin (2 seg)offset follower
Ejemplo:CompanyofHeroes- formaciones
-
7/27/2019 Movimiento en Videojuegos
42/76
Diego C. Martnez - DCIC-UNS
target determinado por elusuario (click)
futura posicin (2 seg)offset follower
speed modifier
adelante = aceleraatrs = frena
Conservar la formacin a pesarde la diferencia de velocidades
Ejemplo:CompanyofHeroes- formaciones
-
7/27/2019 Movimiento en Videojuegos
43/76
Diego C. Martnez - DCIC-UNS
target determinado por elusuario (click)
futura posicin (2 seg)
offsetfollower
Flexibilizar la formacin deacuerdo al espacio en el terreno
obstculo
bsqueda A* de
otra posicin
Ejemplo:CompanyofHeroes- formaciones
-
7/27/2019 Movimiento en Videojuegos
44/76
Diego C. Martnez - DCIC-UNS
leapfrogging target determinado por elusuario (click)
futura posicin (2 seg)
offsetfollower
punto de inters(cover)
radio debsqueda
Caminos
En la mayora de los juegos modernos existen caracteres sintticos que en tiempo
-
7/27/2019 Movimiento en Videojuegos
45/76
Diego C. Martnez - DCIC-UNS
La tarea de encontrar un camino desde una
posicin a otra en el escenario del juego sedenomina pathfinding o path planning.
Se trabaja con una abstraccin delescenario (navigation graph / mesh).
Los algoritmos de bsqueda de caminos
analizan este grafo de navegacin paradeterminar las rutas que guiarn al agente.
El agente NO necesariamente debemoverse por los arcos.
La bsqueda debe:
contemplar el modelo del agente hacerse reiteradamenteser rpida
En la mayora de los juegos modernos, existen caracteres sintticos que en tiempode ejecucin deben decidir por dnde moverse.
Grafodenavegacin
Los algoritmos ms utili ados para la bsqueda de caminos son Dij kt A*
-
7/27/2019 Movimiento en Videojuegos
46/76
Diego C. Martnez - DCIC-UNS
Los algoritmos ms utilizados para la bsqueda de caminos son Dijsktra yA*Existen adems muchas variaciones y optimizaciones.
Todos estos algoritmos presuponen un espacio de bsqueda discreto (grafo)
El grafo de navegacin puede generarse en forma automtica, a partir del escenario modelado en forma manual, por el diseador del escenario.
Existen varias tcnicas para generar esta estructura y existen varios tipos de grafos.
Navmeshes
Muchos juegos utilizan navmesh para pathfinding
-
7/27/2019 Movimiento en Videojuegos
47/76
Diego C. Martnez - DCIC-UNS
Muchos juegos utilizan navmesh para pathfinding.
red de polgonos convexosque define reas transitables
usualmente definido por elartista / diseador
Navmeshes-
El SDK de Valve incluye un sistema de generacin automtica del navmesh
-
7/27/2019 Movimiento en Videojuegos
48/76
Diego C. Martnez - DCIC-UNS
El SDK de Valve incluye un sistema de generacin automtica del navmesh.
En el primer intento de jugar un mapa, se computa:
Comenzando en el spawn-point, se detecta el espacio caminable, por flood-filling
Se crean reas rectangulares caminables en este espacio detectado Se computan hiding spots - sniper spots. etc
Incluye tambin la posibilidad de generar el navmesh en forma manual.Permite crear areas caminables, unirlas, ubicar sectores especiales..
-
7/27/2019 Movimiento en Videojuegos
49/76
Decisionesinteligentes
La toma de decisiones es una habilidad natural del comportamiento inteligente
-
7/27/2019 Movimiento en Videojuegos
50/76
Diego C. Martnez - DCIC-UNS
La toma de decisiones es una habilidad natural del comportamiento inteligente. Es central a la implementacin de inteligentes en juegos An as, en muchos casos la implementacin es simple y eso es suficiente.
Existen varias tcnicas clsicas para implementar decisores en juegos.
Decisor
Conocimiento interno
Conocimiento externo
Accin
Vida promedio de un NPC en los FPS : 12 segundosCantidad de NPC que mueren en los FPS por da: 20.000.000
Arbolesdedecisin
Los rboles de decisin son estructuras de conocimiento que permiten asociar
-
7/27/2019 Movimiento en Videojuegos
51/76
Diego C. Martnez - DCIC-UNS
Los rboles de decisin son estructuras de conocimiento que permiten asociaracciones con grupos de piezas de conocimiento externo e interno
hay enemigos cerca?
tengo armas disponibles?
tengo energia suficiente?
he llegado a destino?
no si
no si
sino
no
atacarcubrirse
esquivarcaminar
Mquinasdeestados
Las mquinas de estados o autmatas finitos (FSM) son utilizados para modelar
-
7/27/2019 Movimiento en Videojuegos
52/76
Diego C. Martnez - DCIC-UNS
Las mquinas de estados o autmatas finitos (FSM) son utilizados para modelarcomportamiento basado en estados de actividad.
perseguir, ocultarse, disparar, huir, esperar
buscar, recolectar, descargar, huir
patrullar atacar
regresara base
enemigo_detectado
enemigo_eliminado
poca_energiaenergia_recargada
FuzzyLogic
La lgica difusa permite modelar propiedades difusas
-
7/27/2019 Movimiento en Videojuegos
53/76
Diego C. Martnez - DCIC-UNS
La lgica difusa permite modelar propiedades difusas.No es muy popular en la IA acadmica, pero es usada en varios juegos
Lgica difusa
Un elemento tienegrados de pertenencia
a un conjunto
fuzzy sets
grado numrico de pertenencia
hambre: 0,5cansancio: 0,2
salud0% 100%
0
1herido sano
Seleccionandoarmas
Variables difusas (fuzzy linguistic variables):
-
7/27/2019 Movimiento en Videojuegos
54/76
Diego C. Martnez - DCIC-UNS
( y g ) distanceToTarget: close, medium, far ammoStatus: low, okay, loads
Evaluacin de cada arma: desirability: indeseable, deseable, muyDeseable
0 mt 100 mt
0
1close medium far
0 b 50 b
0
1low okayloads
0 b 50 b
0
1 indes. deseablemuyDeseable
Seleccionandoarmas
-
7/27/2019 Movimiento en Videojuegos
55/76
Diego C. Martnez - DCIC-UNS
IF target_FarAND ammo_LoadsTHEN muyDeseable
0 mt 100 mt
0
1close medium far
0 b 50 b
0
1low okay loads
35
55mt
muyDeseable = 0,8
BehaviorTrees
Los rboles de comportamiento fueron usados con xito en varios juegos.
-
7/27/2019 Movimiento en Videojuegos
56/76
Diego C. Martnez - DCIC-UNS
El Halo 2 y el Spore utilizan rboles de comportamiento.
Son intuitivamentefciles de construir
Existen editoresgrficos de rboles de
comportamiento!
Halo 2 Spore
BehaviorTrees
Son estructuras jerrquicas de tareas.
-
7/27/2019 Movimiento en Videojuegos
57/76
Diego C. Martnez - DCIC-UNS
Cada tarea realiza las computaciones pertinentes.Devuelve un valor de status: exito o falla.
Las tareas pueden ser simples o compuestos.Las tareas compuestas adoptan diferentes esquemas de ejecucin de sus partessubordinadas
Condiciones: testean propiedades del juego y del agente.Similar a Decision Trees.
Acciones: alteran el estado del juego. Pueden seranimaciones, tareas de AI, o acciones en general.Similar a Decision Trees.
Composiciones: agrupan acciones, condiciones o mascomposiciones. Usualmente nodos internos del rbol.
tareas
xyz?
doX
?
-
7/27/2019 Movimiento en Videojuegos
58/76
BehaviorTrees- ejemplo
-
7/27/2019 Movimiento en Videojuegos
59/76
Diego C. Martnez - DCIC-UNS
ir a la puertaabrir
puertaentrar
?
puertaabierta?
entrar
if is_open(puerta) then
move_to(habitacion)
else:
move_to(puerta)
open(puerta)
move_to(habitacion)
BehaviorTrees- ejemplo
-
7/27/2019 Movimiento en Videojuegos
60/76
Diego C. Martnez - DCIC-UNS
ir a la puertaabrir
puerta
entrar?
puertaabierta?
if not is_open(puerta) then
move_to(puerta)
open(puerta)
move_to(habitacion)
Comportamientobasadoenmetas
Es posible utilizar un modelado de agente basado en metas.L i d l t i t l li i t d i t t
-
7/27/2019 Movimiento en Videojuegos
61/76
Diego C. Martnez - DCIC-UNS
Las acciones del agente se orientan al cumplimiento de ciertas metas
Esto se denomina Goal Oriented Behavior (GOB)
NO son muy frecuentes en los juegos, excepto algunos recientes.
The Ghost Master (2003)The Sims (2000 - )
Comportamientobasadoenmetas
metas objetivos a satisfacer por el agente
-
7/27/2019 Movimiento en Videojuegos
62/76
Diego C. Martnez - DCIC-UNS
metas objetivos a satisfacer por el agente
ganar energia, vengarse, conseguir el item X
pueden poseer un nivel de importancia o insistencia
Satisfacer una meta es disminuir su nivel de importancia
ganar energia es menos importante cuantomayor energa tiene el agente.
eliminar a X pierde toda importancia unavez que X es eliminado.
acciones dependientes del agente y el entorno
agente:caminar hacia posicion P , disparar a Xpuerta: abrir, cerrar, trabar, destrabarenemigo: matar
La seleccin de acciones se hace en funcin de la satisfaccin de las metas
Comportamientobasadoenmetas
Un esquema de seleccin simple:
-
7/27/2019 Movimiento en Videojuegos
63/76
Diego C. Martnez - DCIC-UNS
1. Seleccionar la meta de mayor importancia o insistencia2. Seleccionar la(s) accion(es) que provee mayor satisfaccin de la meta
comer[ imp: 5 ]
dormir en sof : dormir - 2
dormir[ imp: 2 ]
comer snack : comer - 1
comer cena : comer - 5
dormir en cama : dormir - 5
Metas Acciones
Este esquema no contempla efectoscolaterales de las acciones.
Por ejemplo, preparar la cena generacansancio, e incrementa la meta de dormir.
Planificacinbasadaenmetas
Las acciones son dependientes de la situacinLa ejecucin de algunas acciones puede inhabilitar o habilitar otras acciones
-
7/27/2019 Movimiento en Videojuegos
64/76
Diego C. Martnez - DCIC-UNS
La ejecucin de algunas acciones puede inhabilitar o habilitar otras acciones
PlanningBuscar la secuencia de acciones que nos resulte ms beneficiosa
El proceso se denomina Plan FormulationGOAL ORIENTED ACTION PLANNING
Planificar implica conocerlas condiciones necesarias para ejecutar las acciones
los efectos de la ejecucin de cada accin
Goal: Heal = 4Goal: Kill-Ogre = 3Action: Fireball (Kill-Ogre 2) 3 energy-slotsAction: Lesser-Healing (Heal 2) 2 energy-slotsAction: Greater-Healing (Heal 4) 3 energy-slots
GOAP- F.E.A.R.
-
7/27/2019 Movimiento en Videojuegos
65/76
Diego C. Martnez - DCIC-UNS
F.E.A.R (First Encounter Assault Recon)
First-Person Shooter (2005)Psychological horror
Muy buen empleo de Inteligencia Artificial(Ver Three States and a Plan: The A.I. of F.E.A.R. Jeff Orkin)
GOAP- F.E.A.R.
FEAR utiliza una variacin del planificador STRIPS
STRIPS ST f d R h I i P bl S l
-
7/27/2019 Movimiento en Videojuegos
66/76
Diego C. Martnez - DCIC-UNS
STRIPS = STanford Research Institute Problem SolverFormulado originalmente en 1970
STRIPS
Goals
Actions
descripcin del estado del mundoque queremos alcanzar
definidas en trminos de
precondiciones efectosel estado del mundo
necesario para ejecutarla accin
el impacto de laaccin en el
estado del mundo
GOAP F.E.A.R.- STRIPS
ordenar
-
7/27/2019 Movimiento en Videojuegos
67/76
Diego C. Martnez - DCIC-UNS
cocinar
Acciones:
ordenar_pizza
Precondicin:telefono_pizzeria(true)
Efectos:DELETE hambriento(true)ADD hambriento(false)
cocinar_pastel
Precondicin:receta(true)
Efectos:DELETE hambriento(true)ADD hambriento(false)
Three States and a Plan: The A.I. of F.E.A.R. Jeff Orkin
GOAP F.E.A.R.
Para cada caracter del juego puede determinarse un conjunto de metas (goals) yun conjunto de acciones.
-
7/27/2019 Movimiento en Videojuegos
68/76
Diego C. Martnez - DCIC-UNS
un conjunto de acciones.
soldier assasin rat
Testbedsparalaacademia
En el mundo acadmico se utilizan algunas plataformas de videojuegos para el testde nuevas tcnicas de inteligencia artificial.
-
7/27/2019 Movimiento en Videojuegos
69/76
Diego C. Martnez - DCIC-UNS
de ue as c cas de e ge c a a c a
Muchos adoptan una arquitectura cliente-servidor para mejor flexibilidad.
Escenario modeladoServidorCliente
Percepcin delescenario
Acciones sobreel escenario
-
7/27/2019 Movimiento en Videojuegos
70/76
PokerCompetition
LaAssociation for the Advancement of Artificial Intelligence (AAAI) organizal t l P k C titi di d lid d
-
7/27/2019 Movimiento en Videojuegos
71/76
Diego C. Martnez - DCIC-UNS
anualmente la Poker Competition, en diversas modalidades.
La modalidad es cliente-servidor.
Varios "jugadores" con mucha tradicin y desarrollo.
Polaris (U of Alberta)juega al poker en la competencia del 2007
Existe una competencia anual !
ORTS- OpenRealTimeStrategy
-
7/27/2019 Movimiento en Videojuegos
72/76
Diego C. Martnez - DCIC-UNS
Similar al StarcraftCreado por la Universidad de Alberta, Canad, especficamente
para la investigacin acadmica en Inteligencia Artificial
Algo discontinuado
StarcraftUtiliza un hack del StarcraftBroodwar que permiteuna inyeccin de dll.
-
7/27/2019 Movimiento en Videojuegos
73/76
Diego C. Martnez - DCIC-UNS
BWAPI Brood
WarApplicationProgrammingInterface
Es un framework C++ open source para crear mdulos de AI para el Starcraft.
Simple de instalar
API fcil de usar (emula la interfaz del juego: rightClick())
Obtiene toda la informacin relevante del juego.
Permite anotaciones para debug
Existe una competencia anual !
TORCS
The Open Racing Car Simulator es unsimulador de carreras open source.
-
7/27/2019 Movimiento en Videojuegos
74/76
Diego C. Martnez - DCIC-UNS
simulador de carreras open source.
Modela con buen detalle los vehculos
(aceleracin, frenos, friccin, marchas, etc)
Un API desarrollada por la UniversitatTubingen (Alemania) ofrece: 36 sensores para presencia de oponentes 19 sensores de borde de pista sensores de orientacin sensores del estado del auto
Un pequeo parche permite que unprograma (J ava, C++, C#) se conecte alservidor en un juego multiplayer
Existe una competencia anual !
Unity3DUnity es un motor de juegos.Permite la creacin de juegos en escenarios 3D-2D,
i C# J S i t
-
7/27/2019 Movimiento en Videojuegos
75/76
Diego C. Martnez - DCIC-UNS
con programacin en C#o J avaScript.Es gratuito!
Puede usarse para testear tcnicas de IA en escenarios personalizados
-
7/27/2019 Movimiento en Videojuegos
76/76
Diego C. Martnez - DCIC-UNS
Gracias!