Anúncio
Anúncio

Mais conteúdo relacionado

Anúncio

Máquina de estados

  1. Inteligencia Artificial para Videojuegos Decisión 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
Anúncio