Working on timeline data structures!

Updates

Terminology

  • Paused: Time immune
  • Playing: Not time immune
  • Game-level player actions: move, rewind, forward
    • Note you can also undo & restart, but these are “outside of the logical game environment”
  • Execute: Player move (up/down/left/right)
  • Undo: Perfect undo of the last user action - ignore paused logic
  • Rewind: Go backwards in time - apply paused logic
  • Unwind: Go forwards in time - apply paused logic

Forward Time Travel (Unwind)

I think I have worked out a way to allow forward and backward time travel by the user. It will be as generic as possible. Some situations allow for forward time travel:

  • Player is paused, and moves around
    • By moving, you are not rewriting the “end” of the timeline, so unwind is allowed up till the end.
  • Player is in any state, and rewinds
    • Rewinding can happen all the way to the beginning, and unwind is still allowed to be used all the way till the end.
    • As soon as a playing (non-paused) player moves, or any non-paused object’s state changes, the timeline will get truncated to this point, and the “old” future gets overwritten.

Rewind/Forward Enablers

There will be items in the game that the player must consume to enable traveling through time in each direction. There are a few reasons for this:

  • It gives an opportunity to show the player a notification of new controls, and that there is a new element to the game.
  • It allows to dial down the overpowered nature of having both rewind/forward abilities.
  • It keeps additional constraints in-place for the player to be able to learn at a less overwhelming rate.