Inteligencia Artificial Para Videojuegos

Anuncio
Inteligencia Artificial
Para Videojuegos
Diego Fernando Loaiza Buitrago
Pontificia Universidad Javeriana Cali
Agentes
● Agentes:
○ NPC (Non-player character),
○ Virtual player.
Sen tir, Percibir
Pensar
DECIDIR
Actuar
IA para video juegos: Agentes
Concepto de Agente:
● Sentir, Percibir:
○ Recolectar cambios en sensores de entrada.
○ Actualizar estado con nuevos valores.
● Pensar
○ Usar actividad humana básica.
● Actuar
○ Ejecutar cambios en acciones.
○ Interactuar con entorno.
IA para video juegos: Agentes
Concepto de Agente:
● Sentir, Percibir:
○ Recolectar cambios en sensores de entrada.
○ Actualizar estado con nuevos valores.
● Pensar
○ Usar actividad humana básica.
● Actuar
○ Ejecutar cambios en acciones.
○ Interactuar con entorno.
IA para video juegos: Agentes
Comportamiento: Secuencia de acciones,
dependientes del entorno
● Representación, modelado
● Algoritmos
IA para video juegos: Agentes
Finite State Machines, FSMs
1 comportamiento = 1 FSM
● Estados
● Transiciones
IA para video juegos: Agentes
● Ejemplo: SAGE Engine AI, Command &
Conquer (RTS)
○ 50+ estados
○ Idle, MoveTo, Fire, CollectResources, Reload.
○ Implementación: C++
■ class StateMachine: lista de estados y apuntador
a estado activo.
■ class State: elemento de la lista.
●
●
●
onEnter()
onExit()
Update()
IA para video juegos: Agentes - FSMs
● Pasos implementación:
○ Guión general del comportamiento del agente:
acciones, reacciones, variables de entorno que debe
revisar, etc.
○ Establecer Estados (desglosar comportamiento):
■ ventajas: discretizar tareas
■ crear comportamientos complejos con num.
pequeño de tareas.
■ Escoger nivel de detalle adecuado
○ Establecer transiciones
IA para video juegos: Agentes-FSMs
● Tipos de transiciones
○ Internas
■ FSMs autocontenidas
■ transiciones son disparadas por mismo estado
■ Ejemplo: modelar estado emocional
○ Externas
■ Transición es disparada por evento externo
○ Diferidas
■ Transición es ejecutada en el siguiente "frame":
consistencia con actualizaciones de los demás
sistemas del juego.
■ Asegura que se esté ejecutando máximo una
transición por frame.
■ Ejecución debe ser secuencial.
○ Inmediatas: razones de desempeño.
IA para video juegos: Agentes-FSMs
● Consejos sobre implementación
○ Definir estados como constantes:
#define
#define
#define
kRoam
kChase
kEvade
1
2
3
○ Modelado entidad OOP
■ atributos (privados): get, set.
● posición, salud, fuerza, habilidades especiales,
inventario de armas, etc.
■ Estado actual
IA para video juegos: Agentes-FSMs
●
Modelado entidad OOP
■ Funciones auxiliares.
■ Funciones de manejo de estados.
IA para video juegos: Agentes-FSMs
FSMs más complejas
● # Estados: 100+
● Manejo de:
○
○
○
○
Estados disponibles
Estados activos
Transiciones lícitas
Cómo son representadas
● Solución: HFSM (Hierarchichal Finite State
Machines).
○ Estado raíz, sub-estados.
○ Ejemplo: Refinación de FSM para comportamiento
de NPC de FPS.
IA para video juegos: Agentes-FSMs
Ventajas/Desventajas
● (+) - Sólo 1 estado activo al tiempo.
○ Acciones/herramientas/recursos accedidos por 1
estado: moverse a 2 lugares, disparar a 2 objetivos
al tiempo?
● (-) - Dificultad manejando metas interrumpidas, más de
1 meta al tiempo.
○ Ej: Agente se mueve mientras es atacado - a)
Completa movimiento o b) Deja de moverse y se
defiende.
○ Ej: Manejo de dos metas simultáneas: moverse y
disparar. Difícil con 1 FSM.
○ SOLUCIONES? ...
IA para video juegos: Agentes-FSMs
● State Suspend/Continue
○ suspensión FSM1 ->exec FSM 2-> terminar exec
FSM2
● State Stack
○ PushState, PopState
○ Unreal3 Script
● Estado Alterno
○ Suspend/Continue FSM adicional.
● Múltiples FSMs
○ Cada FSM controla una parte de un agente
○ Representar: metas/acciones.
IA para video juegos: Agentes-FSMs
● Modelo AI Orientado por Metas
● Conjunto de metas posibles: AI escoge una
en determinado momento
● Cada meta tiene un conjunto de acciones
disponibles para llegar a ella
● Modelo consiste de:
○ Metas: Resultado que puede ser logrado a través de
acciones.
○ Acciones: Agregadas conforman un comportamiento
dado hacia el logro de una meta.
○ Herramientas: Recursos u objetos requeridos para
ejecutar una acción.
IA para video juegos: Agentes-FSMs
Modelo AI Orientado por Metas
● Operación de las metas:
○ Metas seleccionadas por jugador/jugador virtual
○ c/Meta tiene 1 prioridad: se empieza a ejecutar meta
con prioridad + alta.
○ Criterios de Activación de meta:
■ Contiene al menos una acción que lleva a
conseguirla.
■ Disponibilidad de herramientas/recursos para
ejecutar acción.
IA para video juegos: Agentes-FSMs
Modelo AI Orientado por Metas
● Jerarquía de metas
○ Metas logradas por acciones que a su vez generan submetas.
○ Se evalúa disponibilidad de recursos.
● Selección de metas
○ Disponibilidad de recursos, jerárquica:
■ Hay soldados para forma escuadrón.
■ Cada soldado tiene medio de transporte.
■ Cada soldado cuenta con un arma.
● Selección de acción
○ Una acción es suficiente para alcanzar meta
○ Todas son requeridas
○ Una o varias
○ Secuenciales o simultáneas?
IA para video juegos: Agentes-FSMs
Modelo AI Orientado por Metas
● Implementación?
Descargar