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?