-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MAXSAVEGAMES 50 #816
Comments
This is one of those things that continiously get postponed because they are "less important". (This limit only persists if developer used built-in functions to fill the save list) It should be trivial to remove this limit. IMPORTANT UPDATE: not so trivial, please read this: |
Hmm... ok, not so trivial, because of this: https://github.com/adventuregamestudio/ags/blob/release-3.5.0/Engine/ac/game.cpp#L2523 |
Is it possible for the game to determine if there's enough space for a new save game? Or does it have to rely on an error message occurring on save? |
Do you mean a disk space, an available save slot, or available element in the internal array limited by MAXSAVEGAMES? |
I guess all of the above. A I know some games already check if the save game listbox (after calling FillSaveGameList) has 50 items so they can show their own warning message. In fact it looks like it's recommended in the manual. With available diskspace, I realise it's difficult to predict because save games will increase in size over time (e.g. 2meg initial room, 6 meg last room) |
Also, some games use custom save slot numbers (like 101, or maybe even 21) for auto save. They can pick these numbers because the engine dialog only reserves slots 1-20. |
Yes, I did not consider that at first. This could be a real problem. Also, there's no way to predict game expectations about reserved slots without practical experiment. On a quick thought, what may be possible to do for now is:
Above would allow to have more saves in legacy games. This config option has to be annotated with a warning that this is not compatible with reserved save slots and should be used with care. This is as much as I can suggest right now. But guess ideal solution is to revise savegame API by e.g. allowing developers to tell the range of slots shown in the listbox. Or introduce new slot system which has a separation between regular slots and special reserved slots. |
PS. Actually, the obvious workaround (which I used myself in some games, even in old Sierra games like QFG) is to move older saves to subdirectories and copy them back when necessary. |
Instead of a config option, we could search scripts to see if they use
Currently we check if at least 2 meg is available. Which isn't quite enough for larger games. Refer to https://github.com/adventuregamestudio/ags/blob/master/Engine/ac/game.cpp#L1096 |
PS. It's on my list to investigate using zlib to compress the games, so instead of saves being 2-8 megs, they're only 64k to 700k. |
How does the save size and disk space is relevant to this particular request?
This would require to run through all the script modules and all the room scripts? |
It's another variable that can determine the max save game limit. Sorry, wasn't trying to derail discussion.
Ah I didn't consider plugins. I guess if plugins exist, you can't expand either. But I thought scripts only had the function imports they used? At least from the scripts I've looked at. It's how I was able to determine which functions were used over time. |
I'm afraid this kind of detection also does not have much sense, because it is FillSaveGameList that has 50 slots limit, the one that is suggested for removal. Such detection would only affect SaveGameDialog() with 20 slots which is not used often in recent games. |
This comment was marked as abuse.
This comment was marked as abuse.
Some platforms don't have valid free space checks. |
This comment was marked as abuse.
This comment was marked as abuse.
Yes I agree, because otherwise you also have to accomodate differences in how different filesystem report freespace as well as how you would establish that the location is writeable. |
So, to sum up, there are following relevant problems: Legacy API.
Contemporary API
Logical problem
This leads to two questions:
|
I agree there's an issue with race conditions, but that's assuming there are other processes writing to disk :) edit: I suppose for games on those platforms you can just set an arbitrary limit inside the game itself |
Fixed by #2541. Among other things added a new config setting:
where N will be the topmost save used in standard save/restore dialogs. In case this problem appears in another game which has its own custom save menu, there's a emergency solution, added some time earlier: save_game_key and restore_game_key settings as explained here: |
with quest for infamy, i'm constantly hitting this limit. this is pretty annoying, i constantly have to delete old savegames.
the gui part even seems to be unable to display more than the latest 20 savegames (macro gets redefined). can't really figure out a good reason why it shouldn't be possible to display all savegames in the listbox.
The text was updated successfully, but these errors were encountered: