DEV Community

Andres Ramirez
Andres Ramirez

Posted on

Máquinas de Estado

Las máquinas de estados son una de las herramientas mas usadas en el desarrollo de videojuegos, básicamente, definen el comportamiento que especifica las secuencias de estádos por las que atraviesa un objeto durante su ciclo de ejecución en respuesta a una serie de eventos, junto con las respuestas a dichos eventos.
Estas máquinas permiten descomponer el comportamiento general de un agente en pedazos o subestados mas manejables.
Resumiendo tenemos dos conceptos importantes en una máquina de estados:

  • Estádo
  • Transición.

Estádo

Define una condición o una situación en la vida del agente la cual satisface una condición o bien, está vinculada a la realización de una acción o la espera de un evento.

Transición

Define una relación entre dos estados, indicando lo que ha de ocurrir para pasar de un estádo a otro. Los cambios de estádo se producen cuando la transición se dispara, o sea, cuando se cumple la condición para pasar de un estádo a otro.

Ventajas de implementar las máquinas de estádo

  • Son fáciles de implementar
  • Son rápidas
  • Su depuración es sencilla
  • Tienen minima sobrecarga computacional
  • Son intuitivas y se asemejan al modelo de racionamiento humano
  • Son flexibles ya que permiten la integración de nuevos estados sin tener un impacto significativo en el resto y permite combinar otras técnicas como la lógica difusa y las redes neuronales.

Máquina de estados que define el comportamiento de un NPC, Desarrollo de videojuegos Vol 4

Javascript y máquinas de estádo

Algúnos frameworks en Javascript para el manejo de máquinas de estádo son:
-Machina
-Javascript State Machine
-Xstate Mi preferido.

Top comments (0)