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.
2. ● El merodeo o los caminos predefinidos no
muestran tanta inteligencia como que un
agente “sepa” llegar a cualquier sitio
Representación del entorno 2
Motivación
3. ● La habilidad de navegar el entorno, consiste
en conocerlo para poder buscar caminos (=
planificar rutas)
○ Normalmente el destino es una decisión ya tomada
● Estos algoritmos de búsqueda
no trabajan directamente con
el entorno, necesitan traducir
su geometría a un modelo que
lo represente de forma simple
○ Típicamente se generan grafos como este:
Representación del entorno 3
Motivación
NAVIGATION
PATHFINDING
4. ● Búsqueda de caminos en
Pac-Man (1980)
Representación del entorno 4
Hitos históricos
Blinky, seguimiento
Pinky, seguimiento con
pseudopredicción (bug incluido)
Inky, seguimiento a un
punto dependiente de Pac-Man
y Blinky (también con bug)
Clyde, como Blinky
aunque huye al acercarse
mucho a Pac-Man
5. ● La Abadía del Crimen (1987)
○ Búsqueda de caminos a dos
niveles, entre regiones y dentro de una
misma región (tamaño pantalla)
○ Entre regiones se permitían
“trampas” para evitar colisiones
● First Queen (1988): Primer
RPG táctico con NPCs que
te siguen (buscan caminos)
○ A diferencia de los cruciales enemigos, los NPCs
compañeros han cobrado importancia después
Representación del entorno 5
Hitos históricos
6. ● No es fácil encontrar información sobre la
“inteligencia artificial revolucionaria” (?)
de Commandos: Behind Enemy Lines (1998)
○ Pero en el propio juego
vemos agentes con visión
(cono explícito con 2
distancias), movimiento
(algo rígido) y navegación
del entorno (siguiendo
objetivos puestos por
el jugador como señuelos)
Representación del entorno 6
Hitos históricos
7. ● Es un grafo ponderado no-negativo (y
muchas veces también dirigido)
○ Traducimos regiones (bueno, su punto más
representativo) a nodos, y vecindad a conexiones
○ Un camino es una serie de conexiones desde un
nodo origen a un destino
○ El coste de un camino es la
suma de los costes de las
conexiones que lo forman
■ Ej. Coste de A-B + B-C
= 4 + 5 = 9
Representación del entorno 7
Grafo de navegación
8. Representación del entorno 8
Grafo de navegación
Grafo ponderado no negativo dirigido (la
conexión A-B no implica que exista B-A,
ni que tengan ambas el mismo coste)
Grafo general
Grafo ponderado (con pesos) no
negativo (típicamente son costes
como tiempo o distancia)
9. ● Pseudocódigo de la representación
Representación del entorno 9
Grafo de navegación
* En IA clásica suele haber clase Nodo, con referencias
tan sólo a su padre; en videojuegos los nodos suelen
implementarse simplemente como un entero
10. ● Lo que representa un nodo en el grafo de
navegación del videojuego no es toda la
región sino su punto más representativo
○ ¿Cómo podemos hallar ese punto?
● Los esquemas de división son maneras de
dividir el entorno y hallar esos puntos
Representación del entorno 10
Esquemas de división
*
Un
nivel
pequeño
de
un
RTS
puede
tener
cientos
de
miles
de
nodos
DIVISION
SCHEME
11. ● Antes de buscar caminos debemos traducir
el entorno (espacio 3D) a un simple grafo
○ Puede hacerse según varios esquemas de división,
cada uno con sus propiedades
■ Cuantificación y localización, cómo traduce de
posiciones del espacio a nodos y viceversa
■ Generación, cómo divide el espacio en regiones
(manual, semiautomática o automáticamente)
■ Validez, cómo garantiza que siempre se llega de
un punto a otro en regiones conectadas
Representación del entorno 11
Esquemas de división
12. ● Grafo de baldosas
○ El entorno puede ser en 3D, pero su estructura no
■ Relación directa con las coordenadas
■ Automática y hasta en tiempo real (es fácil)
■ No suele permitirse bloqueo parcial de baldosas
(salvo que esté muy claro si es hábil o no)
Representación del entorno 12
Esquemas de división
TILES
GRAPH
13. ● Teselación de Dirichlet
○ Partición 2D en regiones de puntos que
comparten un mismo punto característico
más cercano
■ Directamente con los puntos característicos
■ Triangulación de Delaunay… o manualmente
■ Todo revisado empíricamente, no queda otra
Representación del entorno 13
Esquemas de división
DIRICHLET
TESSELLATION
* También dominios, diagramas,
polígonos… de Thiessen o Voronoi
14. ● Puntos de visibilidad
○ Pon puntos característicos
cerca de las esquinas, ya
que el camino óptimo
siempre pasa por ellas
■ Teselación de Dirichlet
sobre estos puntos
■ Dos puntos conectan
si se “ven” entre ellos
■ También toca revisarlo
empíricamente todo
Representación del entorno 14
Esquemas de división
POINTS OF
VISIBILITY
15. ● Mallas de navegación
○ Se construyen a partir de la
geometría del entorno y es
el esquema de división más
popular hoy día
■ Cada punto del polígono*
del suelo es un nodo
■ Los nodos conectan si los
polígonos comparten lado
■ Los polígonos del suelo
deberían ser revisados
(para que no sean diminutos ni enormes…)
Representación del entorno 15
Esquemas de división
NAVIGATION
MESHES
/NAVMESH
* En triángulos (lo habitual) se puede usar el centroide/baricentro,
pero a veces se usan los vértices o los puntos medios de los lados
16. ● Algoritmo que suaviza caminos
quitando algunos de sus puntos
○ Siempre que los puntos restantes los pueda
recorrer en línea recta sin colisionar con nada
○ Ayuda usar comportamientos de dirección
● Pseudocódigo
Representación del entorno 16
Suavizar el camino
SMOOTHING PATHS
* Recibe todas las posiciones por las que debería moverme
(ej. centros de las baldosas del camino) y devuelve sólo
aquellas que necesito seguir para no parecer tan robótico
17. Representación del entorno 17
Suavizar el camino
Tiempo = O(n)
Espacio = O(1)
donde n es el número de nodos del
camino
* Este algoritmo NO
garantiza la suavidad
óptima del camino
resultante (¡habría que
explorar todos los caminos
suavizados posibles!)… pero
en la práctica suele ser
suficiente
18. ● La filosofía de los “entornos inteligentes”
es que sean las regiones del entorno las que
influyan sobre el NPC
○ Buscará un camino estableciendo como destino la
región de mejor ratio utilidad/distancia
Representación del entorno 18
Entornos inteligentes
SMART TERRAIN
19. ● Todo lo extra al hecho de moverse, marcar
puntos de salto, zonas de aterrizaje, etc. y
en general la mayor parte del marcado del
entorno se podría hacer automáticamente
○ Aprovechando el
propio algoritmo de
generación del
esquema de división
que usemos
(para luego buscar
caminos allí)
○ Ej. Unity lo hace con algunos saltos y caídas
Representación del entorno 19
Entornos inteligentes
20. ● ¿En qué situación coste F-G > coste G-F?
A. F es piscina y G bordillo, y no hay escalerilla
B. F es lo más hondo y G lo menos hondo de la piscina
C. F es un trampolín alto y G la piscina
D. F es la playa y G un chiringuito
● Desarrolla tu respuesta (en texto libre)
Representación del entorno 20
Participación
21. ● Giner, A., Pazos, M.: Detrás de los muros de
la Abadía del Crimen (2012)
https://www.youtube.com/watch?v=-Oq21Cea_bo
● Millington, I.: Artificial Intelligence for
Games. CRC Press, 3rd Edition (2019)
● Pittman, J.: The Pac-Man Dossier (2009)
https://www.gamasutra.com/view/feature/13233
0/the_pacman_dossier.php
Representación del entorno 21
Más información
22. * Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...