1. Is "save game" functionality intra-frame or post-frame? Which of the following are correct?
A. Post-frame: When "save game" action is called, after all events in this frame (or tick, if you prefer) have finished executing, all data in this particular frame are saved.
B. Intra-frame: When "save game" action is called, all data in this particular frame are saved, right when "save game" is called. This implies, if there is another variable set after "save game", that variable will not have this value in the saved data. However, when "load game" is called, the actions and events after "save game" action will be executed, along with "on load complete" trigger in the next frame.
C. None of the above.
2. I am curious about internal working of "save game" functionality. Is the following paragraph correct?
When "save game" action is called, a separate thread is created. Since saving might not be complete in one game frame, and to ensure that there is no hiccup, a copy of all data is created right on the frame that "save game" is invoked. This halts the game execution until all data are copied. The thread for "save game" then write everything down with the copy of all data, and call "on save complete" afterward.