Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
● Las decisiones complejas a menudo son
secuencias de decisiones más simples pero
relacionadas y dependientes entre sí
Reglas y planificación 2
Motivación
Decisiones simples Decisiones complejas
● Problemas episódicos (= que
vienen de uno en uno)
● Maximizar el beneficio que
espero conseguir de esa acción
● Problemas secuenciales
● Puede requerir búsqueda,
planificación, varios agentes
involucrados a la vez...
● Por ahora los enfoques para
decidir que hemos visto
son reactivos
○ Se trata de responder bien a las percepciones
○ Podemos “fingir” que el agente tiene deseos y
metas propias, pero no es cierto
● Para que sea verdaderamente
proactivo tenemos que
modelar sus propios objetivos
y decidir en base a ellos
Reglas y planificación 3
Motivación
● F.E.A.R. (2005) usó planificación
(tipo GOAP) para la decisión de
sus personajes, y popularizó esta técnica
○ Como hizo Halo con los árboles de comportamiento
● The Sims y los de su género suelen usar
agentes con objetivos
○ Ej. Ghost Master (2003)
Reglas y planificación 4
Hitos históricos
● Desde hace años se experimenta con ello,
creando bots con herramientas tipo GOAP
para jugar títulos como Overcooked (2016)
○ Behavior Planner, experimento de la empresa Unity
https://youtu.be/ZdN8dDa0ff4
Reglas y planificación 5
Hitos históricos
● Actualmente hay algunos complementos
disponibles que permiten usar reglas o
planificación en entornos de desarrollo
Reglas y planificación 6
Hitos históricos
AI Rule Engine (Unity) GOAP NPC (Unreal Engine)
● Un sistema de toma de decisiones puede
basarse en objetivos y acciones
● Objetivos, cada agente tendrá activo 1 al
menos, cada uno con su nivel de insistencia
○ Lo que buscamos es rebajar la insistencia de esos
objetivos, idealmente a 0.0 (cumplirlo al completo)
○ Ej. Mantener a raya a un enemigo vs. eliminarlo
● Acciones, cada agente tendrá un repertorio
disponible según el contexto concreto
○ El entorno (inteligente) puede añadir algunas más
○ Cada acción modifica la insistencia de X objetivos
Reglas y planificación 7
Acciones orientadas a objetivos
GOAL-ORIENTED ACTIONS / GOAL-ORIENTED BEHAVIORS
● Situación del agente
○ Tengo Hambre (4.0) y Sueño (3.5)
○ Puedo comer pollo (H-2) o donuts (H-1)
○ Puedo dormir mucho (S-4) o una siesta (S-2)
● ¿Qué acción decide hacer?
○ Una política razonable: podría ocuparme del
objetivo más insistente, el Hambre, para entonces
tratar de minimizar su insistencia, comiendo pollo
Reglas y planificación 8
Ejemplo
● Uno de los más sencillos es el que escoge
objetivo prioritario y luego la mejor acción
para reducir su insistencia
○ Implica recorrer primero todos los
objetivos y luego todas las
acciones posibles
○ No tiene en cuenta efectos colaterales de las
acciones (ni la satisfacción general, pensando en el
conjunto de todos los demás objetivos)
○ Tampoco tiene en cuenta el tiempo que se tarda en
realizarlas ni en navegar hasta la posición desde
donde poder realizarlas
Reglas y planificación 9
Algoritmo básico
Espacio = O(1)
Tiempo = O(n+m)
donde n es el número de objetivos
y m el de posibles acciones
● Situación del agente
○ Tengo Sed (4.0) y Ganas de ir al baño (3.0)
○ Puedo beber agua (S-2; G+2) o ir al baño (G-4)
○ Existe un nivel de insatisfacción que es la suma de
la insistencia (al cuadrado*) de cada objetivo
● ¿Qué acción decide hacer?
○ Podría minimizar la insatisfacción y así tener en
cuenta ambos objetivos y no sólo el más insistente,
eligiendo ir al baño (insatisfacción final 16) antes
que beber agua (insatisfacción final 29), ¡lógico!
■ Lo que implica más cálculos, O(n*m)
Reglas y planificación 10
Ejemplo
*
Para
dar
más
relevancia
a
los
valores
altos
● Situación del agente
○ Estoy perdiendo Sangre (4.0)
a 4/min. y Combustible (3.0) a 1/min.
○ Puedo hacer un torniquete (S-2) en 1 min. o coser
la herida (S-40) en 10 min.
○ Puedo repostar combustible (C-5) en 2 min.
● ¿Qué acción decide hacer?
○ Teniendo en cuenta cómo queda la insatisfacción
tras el tiempo que dura cada acción, es mejor
hacer el torniquete (61) que coser la herida (185) o
que repostar (144)... y encima es lo más rápido
Reglas y planificación 11
Ejemplo
● Lo anterior funciona, hasta
que tenemos acciones que habilitan o
deshabilitan acciones en futuros pasos
○ Ej. Cargar hechizos, gastar dinero…
● Se pueden probar todas las combinaciones
en k pasos, y minimizar insatisfacción final
○ ¡En esencia esto viene a ser la planificación!
○ Son demasiados cálculos, O(n * m^k)
○ Además es necesario mantener un modelo que
represente el estado del mundo tras cada paso
Reglas y planificación 12
Planificación
PLANNING
● En 1971 Fikes y Nilsson crearon STRIPS, un
planificador muy influyente hoy día
○ Llamamos así a su lenguaje de representación
Reglas y planificación 13
Lenguaje STRIPS
STANFORD RESEARCH INSTITUTE PROBLEM SOLVER
Estado inicial
Condiciones de estado objetivo
Conjunto de operadores/acciones (se llaman “lenguaje de acciones”),
cada una con sus precondiciones y poscondiciones
Solución, secuencia óptima de operadores/acciones que permite llegar del
estado inicial a uno que cumpla todas las condiciones de estado objetivo
● Esencialmente es un algoritmo de búsqueda
○ Podría ser tipo A*, aunque suele sobrar con una
búsqueda iterativa (y exhaustiva) utilizando
primero en profundidad con profundidad limitada
■ También por la dificultad de hallar heurística
○ Tiene profundidad máxima de pasos a planificar
○ Mantiene un modelo del mundo a cada paso, más
otro para hacer cálculos intermedios
○ Mantiene la mejor secuencia encontrada hasta el
momento, con el valor de insatisfacción
correspondiente
Reglas y planificación 15
Algoritmo GOAP
GOAL-ORIENTED ACTION PLANNING
DEPTH-LIMITED
SEARCH (DLS)
Reglas y planificación 16
Pseudocódigo
* Sólo si se alcanza la
profundidad máxima,
compruebo la insatisfacción del
modelo resultante…
y vuelvo atrás
Reglas y planificación 17
Pseudocódigo
* Copia profunda del modelo
* Siempre que pueda seguir
profundizando, lo hago…
intentando usar una acción
que no haya usado antes para
ese modelo, hasta agotar
todas las que haya
● Interfaces y estructura de datos
○ Los cálculos vienen a ser los mismos, O(n * m^k)
aunque si buscamos un único objetivo, una
búsqueda tipo IDA* es mejor solución
Reglas y planificación 18
Pseudocódigo
* Devuelve las acciones
posibles, de una en una
* En vez de clase Goal,
a veces se les numera
* El cambio en
insistencia
● Aún hoy es tecnología potente para muchos
juegos, aunque compleja de implementar
○ Lo ideal es aprovechar la expresividad de las reglas
(Ej. Age of Empires),
si no, es mejor
hacer la IA con un
árbol de decisión o
de comportamiento
Reglas y planificación 19
Sistema basado en reglas
● De moda en los 70 y parte de los 80, se usa
en videojuegos desde los 90… pero es raro
○ Base de conocimiento
con hechos
○ Reglas “SI-ENTONCES”
■ Activar reglas que
cumplen la
condición “SI”
○ Árbitro que escoge
una regla activa
■ Disparar una regla activa, ejecutando las
acciones externas e internas “ENTONCES”
Reglas y planificación 20
Sistema basado en reglas
RULE-BASED SYSTEM
TRIGGER
● Hay dos optimizaciones básicas que a veces
requieren estos sistemas
○ Agrupar reglas para que no se activen demasiadas a
la vez, haciendo
ineficiente el algoritmo
○ Anotar las causas
(reglas ejecutadas) de
cada hecho añadido o
borrado, para poder
depurar y justificar
mejor el sistema
Reglas y planificación 21
Sistema basado en reglas
● ¿Qué mide la insatisfacción de un agente?
A. Cómo de insistentes son sus acciones en conjunto
B. Cuánto tiempo falta para realizar sus acciones
C. Cuánto tiempo falta para alcanzar sus objetivos
D. Cómo de insistentes son sus objetivos en conjunto
● Desarrolla tu respuesta (en texto libre)
Reglas y planificación 22
Participación
● de Byl, P.: Goal Driven Behavior
https://learn.unity.com/project/goal-driven-behaviour?uv=2021.
3
https://learn.unity.com/tutorial/the-goap-planner#
● Millington, I.: Artificial Intelligence for Games.
CRC Press, 3rd Edition (2019)
● Orkin, J.: Goal-Oriented Action Planning
http://alumni.media.mit.edu/~jorkin/goap.html
● Unity: AI for Behavior: Advanced Research for
Intelligent Decision Making. Unity (2018)
https://www.youtube.com/watch?v=ZdN8dDa0ff4
Reglas y planificación 23
Más información
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2022)
www.federicopeinado.es
Críticas, dudas, sugerencias...