Inteligencia Artificial
para Videojuegos
Decisión
Máquina de estados
● A menudo los personajes de videojuego
están haciendo siempre lo mismo
○ Hasta que ocurre algo que les hace cambiar
○ Ej. Patrullan y patrullan… hasta que encuentran al
avatar del jugador y entonces: comienzan a pelear
Máquina de estados 2
Motivación
● La máquina de estados decide según el
conocimiento externo (como el árbol de
decisión) pero también según el interno
○ ¡Junto con la
guionización, es la
técnica de decisión más
utilizada en la industria!
Máquina de estados 3
Motivación
● De nuevo, los fantasmas de Pac-Man (1980)
tienen las primeras máquinas de estados de
la historia (codificadas “a fuego”) que
“parecen inteligentes”
● Llevan décadas usándose
○ Golden Axe (1989) fue
pionero en tener enemigos
que corren y te rodean, con
una máquina de estados
Máquina de estados 4
Hitos históricos
● Las máquinas de estados se sofisticaron y
popularizaron con los bots del género FPS
○ Entonces eran cruciales, había poco juego online
○ Se combinaban con otras técnicas como anotar
escenarios con puntos de ruta y de acción, usar
mallas de navegación, etc.
Máquina de estados 5
Hitos históricos
Quake 3 Arena
(1999)
Unreal Tournament
1999
etc. * Lenguaje Quake-C
● También llamada máquina de estados
finitos, son el modelo más flexible y
popular del comportamiento en juegos
○ La toma de decisiones reside en las transiciones
Máquina de estados 6
Máquina de estados
FINITE STATE MACHINE (FSM)
STATE MACHINE
● Muy a menudo, cuando
hay prisa por optimizar
se recurre a soluciones
ad hoc como una
máquina de estados
codificada “a fuego”
○ Decidir con lo básico:
switch (= ifs) y enumerados
Máquina de estados 7
Máquina de estados
HARD-CODED
FSMs
Máquina de estados 8
Pseudocódigo
Máquina de estados 9
Pseudocódigo
Espacio = O(1)
Tiempo = O(m)
donde m es el número de
transiciones por estado
● Interfaces del estado y de la transición
Máquina de estados 10
Pseudocódigo
* Acciones DURANTE, ANTES y DESPUÉS del estado...
● A menudo los estados son estructuras que
se leen de fichero y sus transiciones se
generalizan a combinación de condiciones
Máquina de estados 11
Transiciones generalizadas
*¡Tendrás que programarte lo
que es una condición lógica!
Máquina de estados 12
Pseudocódigo
Máquina de estados 13
Pseudocódigo
● Se usa tanto para decisión de agentes
racionales, como para implementar el bucle
de juego o el flujo de los menús
Máquina de estados 14
Múltiples usos
● Si tenemos el típico
agente inteligente que es
un robot limpiador, su
máquina de estados admite variantes
○ No determinista
■ Ej. Aleatoria
○ De estado múltiple
○ …
○ Jerárquicas
■ Para reducir tamaño
y reutilizar código
en ciertos casos
Máquina de estados 15
Variantes
HIERARCHICAL
FSM (HFSM)
● Se usan las máquinas de estados jerárquicas
si el agente puede recibir interrupciones
○ Ej. Alarma que hace que interrumpa su patrulla
○ ¡La implementación de transiciones se complica!
● Pueden combinarse
con árboles de decisión
○ Precisamente
sustituyendo las
transiciones condicionales
por árboles de decisión
Máquina de estados 16
Máquina de estados jerárquica
● Así se implementan las “interrupciones” en
máquinas de estados (Ej. nivel de energía)
Máquina de estados 17
Máquina de estados jerárquica
● Versión mejorada con una máquina de
estados jerárquica (estados con subestados)
Máquina de estados 18
Máquina de estados jerárquica
H* señala el “subestado histórico”
por dónde empezará el estado,
aunque al salir, se recordará el
último subestado en el que estuvo
● Máquina de estados jerárquica con una
transición que cruza la jerarquía
Máquina de estados 19
Máquina de estados jerárquica
● ¿Cómo se define un estado aquí?
A. Por sus acciones y sus transiciones
B. Por sus acciones de entrada y de salida
C. Por sus acciones de entrada, salida y de estado
D. Por sus transiciones
● Desarrolla tu respuesta (en texto libre)
Máquina de estados 20
Participación
● de Byl, P.: Finite State Machines
https://learn.unity.com/project/finite-state-machin
es-1
● Millington, I.: Artificial Intelligence for Games. CRC
Press, 3rd Edition (2019)
● Unity: Introduction to Visual Scripting
https://learn.unity.com/project/introduction-to-vis
ual-scripting
● Unity: Script Machines and State Machines
https://docs.unity3d.com/Packages/com.unity.visua
lscripting@1.8/manual/vs-graph-machine-types.html
Máquina de estados 21
Más información
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...
22

Máquina de estados

  • 1.
  • 2.
    ● A menudolos personajes de videojuego están haciendo siempre lo mismo ○ Hasta que ocurre algo que les hace cambiar ○ Ej. Patrullan y patrullan… hasta que encuentran al avatar del jugador y entonces: comienzan a pelear Máquina de estados 2 Motivación
  • 3.
    ● La máquinade estados decide según el conocimiento externo (como el árbol de decisión) pero también según el interno ○ ¡Junto con la guionización, es la técnica de decisión más utilizada en la industria! Máquina de estados 3 Motivación
  • 4.
    ● De nuevo,los fantasmas de Pac-Man (1980) tienen las primeras máquinas de estados de la historia (codificadas “a fuego”) que “parecen inteligentes” ● Llevan décadas usándose ○ Golden Axe (1989) fue pionero en tener enemigos que corren y te rodean, con una máquina de estados Máquina de estados 4 Hitos históricos
  • 5.
    ● Las máquinasde estados se sofisticaron y popularizaron con los bots del género FPS ○ Entonces eran cruciales, había poco juego online ○ Se combinaban con otras técnicas como anotar escenarios con puntos de ruta y de acción, usar mallas de navegación, etc. Máquina de estados 5 Hitos históricos Quake 3 Arena (1999) Unreal Tournament 1999 etc. * Lenguaje Quake-C
  • 6.
    ● También llamadamáquina de estados finitos, son el modelo más flexible y popular del comportamiento en juegos ○ La toma de decisiones reside en las transiciones Máquina de estados 6 Máquina de estados FINITE STATE MACHINE (FSM) STATE MACHINE
  • 7.
    ● Muy amenudo, cuando hay prisa por optimizar se recurre a soluciones ad hoc como una máquina de estados codificada “a fuego” ○ Decidir con lo básico: switch (= ifs) y enumerados Máquina de estados 7 Máquina de estados HARD-CODED FSMs
  • 8.
    Máquina de estados8 Pseudocódigo
  • 9.
    Máquina de estados9 Pseudocódigo Espacio = O(1) Tiempo = O(m) donde m es el número de transiciones por estado
  • 10.
    ● Interfaces delestado y de la transición Máquina de estados 10 Pseudocódigo * Acciones DURANTE, ANTES y DESPUÉS del estado...
  • 11.
    ● A menudolos estados son estructuras que se leen de fichero y sus transiciones se generalizan a combinación de condiciones Máquina de estados 11 Transiciones generalizadas *¡Tendrás que programarte lo que es una condición lógica!
  • 12.
    Máquina de estados12 Pseudocódigo
  • 13.
    Máquina de estados13 Pseudocódigo
  • 14.
    ● Se usatanto para decisión de agentes racionales, como para implementar el bucle de juego o el flujo de los menús Máquina de estados 14 Múltiples usos
  • 15.
    ● Si tenemosel típico agente inteligente que es un robot limpiador, su máquina de estados admite variantes ○ No determinista ■ Ej. Aleatoria ○ De estado múltiple ○ … ○ Jerárquicas ■ Para reducir tamaño y reutilizar código en ciertos casos Máquina de estados 15 Variantes HIERARCHICAL FSM (HFSM)
  • 16.
    ● Se usanlas máquinas de estados jerárquicas si el agente puede recibir interrupciones ○ Ej. Alarma que hace que interrumpa su patrulla ○ ¡La implementación de transiciones se complica! ● Pueden combinarse con árboles de decisión ○ Precisamente sustituyendo las transiciones condicionales por árboles de decisión Máquina de estados 16 Máquina de estados jerárquica
  • 17.
    ● Así seimplementan las “interrupciones” en máquinas de estados (Ej. nivel de energía) Máquina de estados 17 Máquina de estados jerárquica
  • 18.
    ● Versión mejoradacon una máquina de estados jerárquica (estados con subestados) Máquina de estados 18 Máquina de estados jerárquica H* señala el “subestado histórico” por dónde empezará el estado, aunque al salir, se recordará el último subestado en el que estuvo
  • 19.
    ● Máquina deestados jerárquica con una transición que cruza la jerarquía Máquina de estados 19 Máquina de estados jerárquica
  • 20.
    ● ¿Cómo sedefine un estado aquí? A. Por sus acciones y sus transiciones B. Por sus acciones de entrada y de salida C. Por sus acciones de entrada, salida y de estado D. Por sus transiciones ● Desarrolla tu respuesta (en texto libre) Máquina de estados 20 Participación
  • 21.
    ● de Byl,P.: Finite State Machines https://learn.unity.com/project/finite-state-machin es-1 ● Millington, I.: Artificial Intelligence for Games. CRC Press, 3rd Edition (2019) ● Unity: Introduction to Visual Scripting https://learn.unity.com/project/introduction-to-vis ual-scripting ● Unity: Script Machines and State Machines https://docs.unity3d.com/Packages/com.unity.visua lscripting@1.8/manual/vs-graph-machine-types.html Máquina de estados 21 Más información
  • 22.
    * Excepto elcontenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias... 22