8 hours, persisting world state.
In preparation for checkpoint by phase I have begun saving data about the games state on each phase advance to be loaded when the player restarts from the top of the phase. The trigger is a player being respawned on a non-0 phase in a non-0 section.
The save data so far:
Currently saved player variables: location, velocity, heath, last time damaged, if boosted, time last pick up, if launched, if in launch selection state. There are issues with loading these in to regenerate the player's exact state because certain functions inside the player are dodged by directly setting the bools. More variables need to be saved about the player, they will be coming.
At this point in time I intend to preserve access to launch actions, but not launch actions in the process of being performed. The way the load is so abrupt the player will have troubled grabbing back onto an action in process, better to just let them have another go at it.
Standard pick up : location, velocity and ignored duration. All seem to be saving and loading well.
Pick Up Bound for Portal : location and velocity. All seems well.
Portal: pick ups by section. All seems well.
Walker spawner junk: Location, rotation, launch target, remaining lifetime, time created, time landed, if landed. All seems well.
Flier spawner junk: Location, rotation, health, remaining lifetime, starting pitch, desired pitch, if bounced, if landed, if moving, pivot point rotation. If bounced is true we alter the colliders. All seems good.
Run pause menu offers the same suite of options as the run post play menu.