State Machine Framework

State Machines provide a framework to manage the logic of an event-driven dynamic system. Many aspects of game-design/development can be modeled and implemented by state-machines. For visual novels, we can consider each Scene as a game-state, where player decisions are the events that allow change between scenes. State Machines provide a simplified perspective of a complex system, which simplifies the logic required to implement dynamic game logic.
State Machine is a System Model
A State Machine models a complex system which is simplified according to these rules:
- There exists a finite set of well-defined states that the system can be in. 
- There exists a finite set of discrete events which can cause the system to transition into a different state 
- There is a well-defined set of State-Event relationships that specify valid transitions for the system. 
- Events can be considered as enternal signals that impact the system. 
- It is necessary to specify the starting state of the system 
- It is necessary to have program memory which maintains track of the current system state. - We implement the StateManager class to manage the State Machine structure. - State-Machines structure: 
- a finite set of states, 
- a well-defined set of events that correspond to transitions between states 
- tracking the currently active state - State: A State can represent a wide range of things: a scene, an animation clip, a behavior of an NPC. 
Event: Events can be due to a variety of causes such as user input or due to gameObjects interacting with each other.
State-Event Transitions: A logical structure specifies which events cause valid transitions for each CurrentState-Event-NextState transition relationship.
UML Class Diagrams: State-Manager System
State-Machine Framework

Last updated
Was this helpful?
