Adapting for concurrent state machines
Other than prototypes or extremely simple games, you’ll likely run into situations where you need to keep track of multiple objects with their own internal states. This problem can quickly become a rabbit hole of concurrency and interdependence, but it boils down to whether the current states are related or not. We’ll start by updating our example to deal with unrelated state machines and end the section with recommendations for handling dependent scenarios.
Imagine we wanted to add states for weather conditions – one for sunny days and one for cloudy days. If we used a single state machine context to manage two sets of states, we would need concrete states for each combination (battle states x weather states) to keep tracking a single internal state. In our example, four battle states quickly turn into eight battle/weather combination states, and that’s just with two weather options. What if we wanted a third...