With some assistance from the compiler, Inform games could more easily and reliably enable cross-release saves. This could possibly even be included by default.
The standard way of saving/restoring is to basically create a memory dump. Very simple and efficient, but it requires the storyfile to be identical because there's no way of understanding a memory dump for another release.
Cross-release saves must instead create a structured savefile. Imagine serialising all the data into JSON. (In fact we could use JSON, but probably it would be more efficient to use a binary format. Or we could embed gzip into Glulx so that we don't have to worry about being verbose.)
Start with objects. A structured save would:
- Loop through each object
- Output an dict using a unique name for each object. Inform already has these, except for anonymous objects, which it would be reasonable to give seqential names to.