ifrotz / iosfrotz

Frotz for iOS source (formerly at code.google.com/p/iphonefrotz)
Other
49 stars 16 forks source link

Suggestion: better support for updating games #270

Open PeterPiers opened 8 years ago

PeterPiers commented 8 years ago

Updating games is currently a bit of a chore. Not a big one, but a chore nonetheless. If, say, a new version of Scroll Thief comes out (I picked this example because there were a lot of updates to Scroll Thief), updating means first deleting the game from iFrotz and then importing the new version.

Except that saved games and external files are still kept, so to ensure that iFrotz won't try to start the NEW version with an autosave from the OLD version, I have to go into the save/restore interface, make sure to delete all saved games, then go to the game's INFO panel to delete the autosave, and only then can I safely delete the game and import the newest version.

I have a couple of suggestions on how this could be improved. Firstly, would it be possible for iFrotz, upon importing a game that it knows to already exist (i.e., I'm importing Scroll Thief.gblorb and iFrotz knows it already has a Scroll Thief.gblorb file) for it to check the sizes of both files? If they're the same it could proceed as it already does, starting the game already in its database; if not, it could prompt the player that it's probably a different version, and would they like to replace? If so, clear all saved games, as they're no longer compatible, but give the option to keep external files (which are usually version-independant, containing configuration or achievements).

The other suggestion may be simpler - have an option on iFrotz (or prompt the player every time they delete a game) to delete associated saved games, and another option to delete associated external files, when a game is deleted. Then the player can more easily delete the old version and import the new one.

It's worth noting that iFrotz's behaviour of keeping saved games after deletion is A Good Thing. This is just a tweak that would enhance it, making it easier to update.