SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Inteligencia Artificial
para Videojuegos
Navegación
Representación del entorno
● 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
● 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
● 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
● 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
● 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
● 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
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)
● 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
● 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
● 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
● 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
● 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
● 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
● 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
● 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
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
● 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
● 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
● ¿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
● 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
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...

Mais conteúdo relacionado

Mais de Federico Peinado

Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje naturalFederico Peinado
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimientoFederico Peinado
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de direcciónFederico Peinado
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Federico Peinado
 
Aplicación según tipología del juego
Aplicación según tipología del juegoAplicación según tipología del juego
Aplicación según tipología del juegoFederico Peinado
 
Inteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosInteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosFederico Peinado
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligenteFederico Peinado
 

Mais de Federico Peinado (20)

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
 
Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
 
Árbol de comportamiento
Árbol de comportamientoÁrbol de comportamiento
Árbol de comportamiento
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
 
Percepción
PercepciónPercepción
Percepción
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
 
Física y animación
Física y animaciónFísica y animación
Física y animación
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)
 
Aplicación según tipología del juego
Aplicación según tipología del juegoAplicación según tipología del juego
Aplicación según tipología del juego
 
Inteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosInteligencia Artificial para Videojuegos
Inteligencia Artificial para Videojuegos
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligente
 
Industria y negocio
Industria y negocioIndustria y negocio
Industria y negocio
 

IA Videojuegos Navegación Representación Entorno

  • 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...