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.
● En esta lección veremos técnicas para
obtener toda la información táctica posible
al evaluar un determinado escenario, para
así poder decidir en consecuencia
○ Alternativas al uso
de un grafo con
puntos de ruta
tácticos
Análisis táctico 2
Motivación
● Unreal trae de serie un sistema de
consultas al entorno (EQS) para, por
ejemplo, posicionarse para para disparar
● En Unity existe la herramienta de pago
APEX Utility AI
Análisis táctico 3
Motivación
● Una de las primeras técnicas para obtener
información táctica en videojuegos fueron
los mapas de influencia
○ Se comenzaron a usar en
juegos RTS y se hicieron
muy populares en el género
Análisis táctico 4
Hitos históricos
Herzog Zwei (1989), primer RTS
y precursor del MOBA
● Millington prefiere este término, más
genérico y no necesariamente militar
● El entorno debe representarse en regiones
usando algún esquema de división
○ Para ello, se pueden utilizar los mismos esquemas
que explicamos para la navegación
■ Por herencia de los RTS es tradición usar grafo
de baldosas (principal) o teselación de Dirichlet
● La técnica básica es el mapa de influencia
○ Consiste en que la IA reconozca zonas de influencia
para cada ejército en el escenario
Análisis táctico 5
Análisis táctico
TACTICAL ANALYSIS
Análisis táctico 6
Mapa de influencia
* Ejemplo: el círculo denota
una zona buena para
organizar un ataque contra
W, su frontera tiene menos
influencia de su ejército
que la nuestra, la de los B
(¡Ojo! tanto para W como
para B, cuanto más claro es
el gris, mayor influencia)
INFLUENCE MAP
● En cada región los factores básicos son la
proximidad de unidades y/o bases de un
ejército y su poder militar (relativo al otro)
● Simple y eficaz, aunque con complejidad
O(unid. * regiones) que debe optimizarse
a. Radio de efecto limitado, a partir del cual ya no
hay influencia (es decir, nos ahorramos calcularla)
b. Filtros de convolución (como el Gaussiano), la
utilidad táctica de una región se calcula en
función de sus vecinas directas (iterando mucho)
c. Inundación del mapa, copiar el mismo valor en todo
el radio de influencia de la unidad Análisis táctico 7
Mapa de influencia
LIMITED
RADIUS OF
EFFECT
CONVOLUTION
FILTERS
MAP
FLOODING * Rápido y burdo
Análisis táctico 8
Mapa de influencia
* Lógicamente, la incertidumbre (desconocer parte del escenario) puede hacerte
creer que estás en una situación muy diferente a la real
● Tras los mapas de influencia, centrados en
el enemigo, la segunda técnica más
frecuente es analizar propiedades del
terreno como movilidad, alcance…
○ Ej. Buscar la mejor región desde donde disparar
○ Es habitual distinguir tipos de terreno y combinar
eso con la altura (relativa a vecinas) de la región
○ El alcance de una región suele medirse también en
número de regiones que son visibles desde allí
Análisis táctico 9
Análisis de terrenos
TERRAIN ANALYSIS
● Si se registran partidas, puede hacerse
aprendizaje mediante mapas de bajas
○ La utilidad táctica de una región sube
si desde allí se matan enemigos, y baja
si allí te matan unidades propias
Análisis táctico 10
Análisis de terrenos
FRAG MAPS
● Millington propone un modelo multicapa:
unificar los mapas de influencia con el
análisis de varias propiedades del terreno
Análisis táctico 11
Análisis multicapa
MULTI-LAYER ANALYSES
● Cada capa del modelo recoge una categoría
de propiedades, que podemos o no incluir
Análisis táctico 12
Análisis multicapa
Propiedades estáticas
Terreno, topología, iluminación
estática...
Propiedades evolutivas
Influencia, recursos...
Propiedades dinámicas
Peligro, iluminación dinámica
(sombras)...
Se puede procesar en
tiempo de desarrollo
Se puede procesar de
forma interrumpible
Requiere consultas
ad hoc
Propiedades
multicapa
Combina
cualquiera
de
las
categorías
CATEGORÍA 1
CATEGORÍA 2
CATEGORÍA 3
● En el diseño pueden proponerse multitud de
factores tácticos, a veces a distintos niveles
■ Ej. Calcular varios mapas de influencia y luego
combinarlos para hallar la utilidad táctica final
■ Ej. Utilidad de poner una torreta en región X =
Seguridad de X * Alcance de X * Distancia a otras
torretas
● A veces se crea un servidor de análisis
táctico que muestra los niveles del
juego para depurar, ofrece una API al
desarrollador, hace cálculos pesados...
Análisis táctico 13
Análisis multicapa
● Un algoritmo
de inundación
del mapa…
¡básicamente
es el algoritmo
de Dijkstra!
Análisis táctico 14
Pseudocódigo
● Estructuras de datos e interfaces
Análisis táctico 18
Pseudocódigo
Espacio = O(n)
Tiempo = O(n*m)
donde n es el número de
localizaciones y m el número de
vecinos por cada localización
● Es un conjunto sencillo de reglas para
actualizar el valor de una célula (casilla del
mapa de influencia) según el de sus vecinas
○ Más flexible que la inundación de mapas
Análisis táctico 19
Autómata celular
● Se trata de modificar la navegación
habitual, añadiendo info. táctica al COSTE
○ Los puntos de ruta tácticos y el análisis táctico sólo
aportan info. táctica a cada punto/región
■ A veces hay que analizar conexiones entre
puntos/regiones, añadiendo esa info al grafo
■ El coste de la conexiones suele calcularse como
la media de la utilidad táctica de los extremos
○ El coste de cada conexión (C) debería ser la
distancia (D) o el tiempo, más un sumatorio
de factores tácticos (Ti
) -idealmente propios-
con ciertos pesos (wi
)
Análisis táctico 20
Navegación táctica
TACTICAL PATHFINDING
■ ¡Si recurres
a hacer la
media, ojo
al calcularla!
■ Ej. A y B son
buenas
coberturas,
pero ir de
una a otra no es buena idea
■ Fuerza que el coste sea siempre positivo y
procura usar luego heurísticas válidas (a pesar
de que sabemos que los factores tácticos
fluctúan constantemente durante el juego...)
Análisis táctico 21
Navegación táctica
A B
● ¿Cómo optimizar mapas de influencia?
A. Ignorando las regiones vecinas directas
B. Copiando el valor de una unidad por todo el nivel
C. Limitando el radio de influencia de las unidades
D. Recurriendo a incertidumbre, ignorar regiones
● Desarrolla tu respuesta (en texto libre)
Análisis táctico 22
Participación
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...