Before describing the replay system design that we will be implementing in this chapter, we have to declare some specifications about our game that can influence the way in which we will implement it.
Specifications to keep in mind are as follows:
- Deterministic: Everything in our game is deterministic, which means we don't have any entities with random behaviors, and that makes our replay system simpler to implement because we don't have to worry about recording positions or states of entities that move in our scene like enemy drones. We know they will move and behave the same way during the replay sequence.
- Physics: We are minimizing the use of the physics features of the Unity engine as our entities' movements are not determined by any physical properties or interactions. Therefore, we do not have to worry about unexpected behaviors when objects collide.
- Digital: All our inputs are digital, so we do not bother to capture or handle...