One of the key parts of the save/load process in Factorio is that it must be deterministic. This means that for a given save file (when no external factors change) saving, exiting, and loading the save shouldn't change any observable behavior.
There are a few reasons and benefits for this strict requirement:
- Without it: You couldn't join a running multiplayer game (and by proxy save, exit, and resume one)
- Without it: the replay system wouldn't work if you ever saved, exited, and resumed playing.
- With it: we can easily test that saving and loading produces no observable change letting us know we implemented save/load correctly.
- With it: you won't see things change randomly as a result of "reloading" like you do in so many other games.