Opened 2 years ago

Last modified 2 years ago

#10134 new enhancement

SCUMMVM: Please add a 'Prompt to Save' feature to games.

Reported by: macca8 Owned by:
Priority: normal Component: --Other--
Keywords: Cc:
Game:

Description

Currently, whenever the player exits the game in progress for any reason (Quit, Return to Launcher, Load), any unsaved changes will be lost without warning. This puts the onus back on the player to remember to save before exiting the game. In my opinion, this is really poor form.

Where a save mechanism is available, it makes sense to prompt the player to save any unsaved changes when it's most needed.

If the feature already exists or is pending, then that's great, but if not, here's the basic concept as I see it:

  • monitoring of unsaved changes.
  • an appropriate dialog to alert the player & initiate the save (if required).
  • identify the player actions to activate the feature.

1. Unsaved changes.
A property (_saveChanges) should be established & initialised/set to false in these situations:

  • starting a new game.
  • loading a saved game.
  • after completing a save.

This property is set to true by the first valid mouse, or keyboard navigation, event (something changes) that follows any of these situations. Supporting this with an appropriate conditional statement avoids unnecessary resets (for example, if !_saveChanges then set _saveChanges to true).

2. Dialog.
The dialog should contain a simple message & three buttons:
*Message: Save changes?
*Buttons (left to right):

  • Cancel: return to game.
  • Don't Save: continue player exit call.
  • Save: open usual Save screen, then, if save completed: continue player exit call.

Cancelling in either the Save or Load screen should always return to the game.
This guarantees that the player can only exit a game without saving unsaved changes by clicking Don't Save, the desired result.

3. Trigger actions.
Dialog should only appear if _saveChanges is true.
If true, then any of these player initiated exit calls:

  • Global Main Menu (Ctrl-F5): Quit, Load, Return to Launcher.
  • Keyboard: Cmd-Q (Quit on Mac OS X) & its equivalent on other platforms.

If a game has its own unique menu, then:

  • Game Options Menu: Quit, Load.

No doubt, implementing this feature is probably more complex than it appears here, but then, this isn't a trivial request, so I hope it's viewed favourably.

As an end user, I'd expect this as a standard feature for any game with save support. As such, there's an expectation of built-in protection against any predictable loss of unsaved changes.

Please don't leave games vulnerable to what is basically an avoidable error.

Thanks for your consideration.

This replaces #10133.

Change History (1)

comment:1 by macca8, 2 years ago

In #10133 bgK commented: "It's not possible to save in some situations like when in the middle of cutscenes. So the confirmation dialog cannot offer to save when trying to quit in that case."

Thanks for your insight. Just a few thoughts in response...

When ScummVM encounters your example, the Save button is disabled in the GMM (and any game-specific menu), so for consistency, I'd expect the same behaviour in the confirmation dialog.

As such, I'm tempted to keep the dialog as proposed, and simply add an extra message whenever the Save option is disabled (for example, "If you wish to save, please allow any activity to complete before exiting the game."). Whatever condition/s currently disable the Save button should also add the extra message to the dialog.

As for completing the save, the player cancels back to the game (the only other available option is Don't Save), completes the cutscene (as per instruction), then either saves directly or, if not, when prompted on quit.

Note: See TracTickets for help on using tickets.