movimiento en videojuegos

Upload: shakur-shadyds

Post on 02-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 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!