SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Mehr von Federico Peinado

Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimientoFederico Peinado
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasFederico Peinado
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entornoFederico Peinado
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosFederico 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
 
Postproducción y distribución
Postproducción y distribuciónPostproducción y distribución
Postproducción y distribuciónFederico Peinado
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localizaciónFederico Peinado
 

Mehr von Federico Peinado (20)

Á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
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estados
 
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
 
Postproducción y distribución
Postproducción y distribuciónPostproducción y distribución
Postproducción y distribución
 
Mercadotecnia
MercadotecniaMercadotecnia
Mercadotecnia
 
Criatura y persona
Criatura y personaCriatura y persona
Criatura y persona
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localización
 
Objeto y máquina
Objeto y máquinaObjeto y máquina
Objeto y máquina
 

Máquina de estados

  • 2. ● 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
  • 3. ● 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
  • 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á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
  • 6. ● 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
  • 7. ● 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
  • 8. Máquina de estados 8 Pseudocódigo
  • 9. Máquina de estados 9 Pseudocódigo Espacio = O(1) Tiempo = O(m) donde m es el número de transiciones por estado
  • 10. ● Interfaces del estado y de la transición Máquina de estados 10 Pseudocódigo * Acciones DURANTE, ANTES y DESPUÉS del estado...
  • 11. ● 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!
  • 12. Máquina de estados 12 Pseudocódigo
  • 13. Máquina de estados 13 Pseudocódigo
  • 14. ● 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
  • 15. ● 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)
  • 16. ● 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
  • 17. ● 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
  • 18. ● 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
  • 19. ● 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
  • 20. ● ¿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
  • 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 el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias... 22