Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.
2. ● La Inteligencia Artificial (IA) en juegos no es
un concepto académico sino un conjunto de
soluciones a problemas muy concretos
● Queremos enriquecer los juegos con:
Inteligencia artificial 2
Motivación
Toma de
decisiones
ACCIONES
(como movimiento,
interacción, navegación
por el entorno…)
Análisis del
entorno
Percepción de
cada agente
3. ● Para lo que, en Unreal Engine, existen
diversos sistemas que ayudan a realizar
cada una de estas tareas
Inteligencia artificial 3
Motivación
4. ● Percepción
● Movimiento y navegación
● Árboles de comportamiento
○ Ejemplo
● Sistema de consulta al entorno
● Herramientas de depuración
Inteligencia artificial 4
Puntos clave
5. ● Los agentes pueden tener sentidos y
percibir daño, ruido, presencia de alguien
(por vista, tacto…), anticiparse al
movimiento de otro…
○ Antiguamente se
usaba una solución
sencilla pero poco
eficiente llamada
Pawn Sensing
Inteligencia artificial 5
Percepción
https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/
AIPerception/index.html
6. ● Añade lo siguiente al controlador del NPC
○ El componente AIPerception, los sentidos que necesites en
SensesConfig y eventos del tipo de OnPerceptionUpdate
● Todos los actores “percibibles” se deben
autoregistrar en el sentido correspondiente,
usando RegisterPerceptionStimuliSource
Inteligencia artificial 6
Percepción
7. ● Tener mallas de navegación en los niveles y
agentes capaces de navegarlas es esencial
○ Parte de la inteligencia está en el mundo, y parte
en la navegación por ruta óptima del propio agente
Inteligencia artificial 7
Navegación
8. ● El espacio potencialmente navegable se
cubrirá con un NavMeshBoundsVolume
○ Pulsando P vemos la malla de navegación
autogenerada en base al suelo y los obstáculos
○ ¡Los controladores de IA ya saben navegar aquí!
● Colocando actores NavLinkProxy es posible
saltar o dejarse caer de un punto a otro
● El componente Nav Modifier puede cambiar
el coste u otras propiedades de una zona
○ Lo normal es que las IAs busquen caminos mínimos
en términos de coste
Inteligencia artificial 8
Navegación
9. ● Para decidir, el paradigma por defecto que
ofrece Unreal son los árboles de
comportamiento (para razonar) junto a las
pizarras (para compartir conocimiento)
Inteligencia artificial 9
Árboles de comportamiento
10. ● Jerarquizan tareas, con este aspecto:
Inteligencia artificial 10
Árboles de comportamiento
BEHAVIOR TREES
11. ● Son árboles dirigidos
○ Tienen un nodo raíz,
nodos de control de flujo
y nodos de ejecución
(las tareas)
* Que pueden estar en ejecución
o terminar con éxito o con fracaso
● Dos nodos principales de control de flujo:
○ Nodo Selector (?), tiene éxito si uno de sus hijos
tiene éxito, probando de izquierda a derecha
○ Nodo Secuencia (→) , tiene éxito si todos sus hijos
tienen éxito, de izquierda a derecha
Inteligencia artificial 11
Árboles de comportamiento
12. Inteligencia artificial 12
Árboles de comportamiento
La pizarra tiene registros
clave-valor que se usarán en el BT
(son las variables locales)
Nodos de secuencia o selección,
alternan el orden de ejecución
14. Inteligencia artificial 14
Árboles de comportamiento
Finalmente se crea un AIController y se lanza el BT
https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/
BehaviorTrees/BehaviorTreesOverview/index.html
Las tareas se programan en respuesta a eventos del BT y pueden usar de todo
15. ● ¿Cuál es la diferencia entre un nodo
selector y un nodo secuencia?
A. El primero es una “Y” lógica y el segundo una “O”
B. El primero evalúa a derechas y el segundo al revés
C. El primero es nodo de flujo y el segundo ejecución
D. El primero es una “O” lógica y el segundo una “Y”
Inteligencia artificial 15
Participación
16. ● Existen otras formas de decidir:
○ Máquinas de estado
○ Teoría de la decisión/utilidad
○ Sistemas de reglas
○ Planificación automática
○ …
● Implementarlas es difícil y se suele recurrir
a herramientas de terceros
Inteligencia artificial 16
Otros paradigmas
17. ● Se basa en dar objetivos a los personajes,
que construirán sus propios planes según las
acciones que pueden realizar
○ ¡Os animo a probarla… y a valorarla!
Inteligencia artificial 17
Ejemplo: GOAP NPC
18. ● El sistema EQS (Environment Query System)
es la interfaz con el mundo y sirve no sólo
para percibir sino para probar condiciones
“tácticas” sobre el entorno
○ ¿Quien domina el campo
de batalla?
○ ¿Dónde hay una buena
cobertura para mi?
○ ...
Inteligencia artificial 18
Sistema de consulta al entorno
https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/
EQS/EQSQuickStart/index.html
19. ● Si usamos BTs o percepción, se activan con
apóstrofe (‘/?)... y luego control numérico
○ ¡Son extremadamente útiles para depurar!
Inteligencia artificial 19
Herramientas de depuración
https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/
AIDebugging/index.html
20. ● Las mallas de navegación son la
infraestructura básica para añadir la IA
● Los árboles de comportamiento sirven
concretar la toma de decisiones
● La interfaz con el mundo se llama “sistema
de consulta al entorno” (EQS) en Unreal
● La percepción son los sentidos subjetivos
que activas en cada uno de los agentes
● Las herramientas de depuración de todos
estos sistemas están integradas
Inteligencia artificial 20
Resumen