View Issue Details
|ID||Category||Date Submitted||Last Update|
|0003305||Bug Report||2021-08-29 15:04||2021-08-29 15:04|
|Summary||0003305: Repeatedly saving and loading a game still increases save fiile size dramatically|
|Description||This is a follow-up on issue 0002678 which I created for version 0.19.5 already. Nobody bothered to take notice since and the problem is still there in current version 0.20.11.|
The issue is that whenever you load a save and save it immediately after (or, bettter: do not let enough in-game time pass) it will become significantly larger each time, until you run into out-of-memory issues. In worst case players will lose their save and all progress.
I narrowed it down to a potential solution in file state_machine.rpy. In method Machine.__init__, there is at the end the initialization of two class members:
self.backup_default_loc = deepcopy(default_loc)
self.backup_vars = copy(self._vars)
Those backup_* variables are used in only one place: method Machine.set_state. And this method set_state is not used at all.
This means that generally, the (deep)copies of those variables are not needed at all. I patched this file, replacing with the following:
self.backup_default_loc = default_loc
self.backup_vars = self._vars
This means that the backup_* variables are only references to their templates instead of copies, but since they are never used, it does not make a difference (at least if I am not overseeing something).
As a result, the saves being produced (see initial problem description) do no longer grow by 2 Megabytes each time but only by some few hundred Kilobytes, i.e. out-of-memory situations are much less likely to occur.
I really hope the dev team would look into this issue. I would think the coming tech update would be a good point to give this serious consideration. I read in the forums many times of players running into this or related problems.