diasurgical / devilutionX

Diablo build for modern operating systems
Other
8.03k stars 787 forks source link

Remind player to save game before quitting #6228

Open BileDemon opened 1 year ago

BileDemon commented 1 year ago

I started a new character for v1.5.0 and since I know the game fairly well, I cleared about 4 levels without saving just once. I just didn't think about it.

A few minutes ago I wanted to wrap it up for today, pressed ESC and quit the game. At that moment I saw the "Save Game" menu option but it was too late. Progress gone... 2 hours of gameplay for the trashcan, all the loot vanished. I'm pretty sure I won't be replaying all of that again, so that's it for me, unfortunately. In my defense: Just yesterday I played a game that does not even have a save/load menu option. You just quit and continue automatically wherever you are. I guess that's what confused me, I promise you, I'm not an idiot.

Maybe it could be a good idea to remind the player that he has in fact not saved the game in a while and that much of the progress will be lost. Maybe the game could remind the player that quitting without saving is in fact exactly that.

julealgon commented 1 year ago

Interesting idea.

I'd agree but would suggest adding a time window to the decision (that could be configurable): e.g. only show the option if it's been "X" minutes since the person last saved.

Otherwise, this could become annoying in normal flows.

DakkJaniels commented 1 year ago

Another idea could be autosave when going through stairs as an option. I can't really think of any reasons why you would want to reload a save after completing multiple levels as opposed to reloading a save at the start of a level.

yuripourre commented 1 year ago

@DakkJaniels autosave on stairs is an interesting idea. Although, if you are trying to collect your items after dying, it can be really troublesome, sometimes is better losing the progress but keeping your items.

DakkJaniels commented 1 year ago

@DakkJaniels autosave on stairs is an interesting idea. Although, if you are trying to collect your items after dying, it can be really troublesome, sometimes is better losing the progress but keeping your items.

There is no saving in multiplayer, at least not in the sense we are talking about here. You just die in single player, you don't drop items.

yuripourre commented 1 year ago

@DakkJaniels Ops, my bad, I never play single player!

FitzRoyX commented 1 year ago

"Are you sure?" type prompts are annoying and manual saving is not exactly rare in old video games. We've also gone years without getting a similar complaint. I think you just learn from the mistake here.

AJenbo commented 1 year ago

I have seen lots of videos where players are shocked the game doesn't save automatically. If you just lost 6 levels of progress you might not feel like retrying. It's not always that they are even sure how saving works after that. The world seams to have changed a bit.

StephenCWills commented 1 year ago

I'd agree but would suggest adding a time window to the decision (that could be configurable): e.g. only show the option if it's been "X" minutes since the person last saved.

Otherwise, this could become annoying in normal flows.

I'm not sure, but I think this suggestion might actually be more annoying than an unconditional prompt. Instead of memorizing the exact sequence of clicks/keypresses to exit the game every time, you may occasionally get surprised by an additional prompt that isn't intuitively conditional. Mobile games do this kind of thing to get you to click on ads, and it can be infuriating.

BileDemon commented 1 year ago

So what about having an autosave slot that always saves at the last positive level transition, which you can get back to when something like that happens, so you won't lose as much progress. Also the game might crash and you're left with nothing. I've seen other games from that era with one or more autosave slots. These can be highly convenient for the player.

FitzRoyX commented 1 year ago

So what about having an autosave slot that always saves at the last positive level transition, which you can get back to when something like that happens, so you won't lose as much progress. Also the game might crash and you're left with nothing. I've seen other games from that era with one or more autosave slots. These can be highly convenient for the player.

People could become so reliant on the autosave system that they get in the habit of loading it even when it isn't the furthest progress. You're probably more likely to lose progress by confusing multiple saves per character than doing what you did.

And if you autosave in the background invisibly, now there's no indicator that it's even happening. You'd have made this same thread, the only difference is we'd have told you where the autobackup saves are to recover your data and everyone else gets their ssd hard drives thrashed.

StephenCWills commented 1 year ago

... everyone else gets their ssd hard drives thrashed.

The game is already writing to the save file whenever you use the stairs. This isn't going to harm your SSD.

AJenbo commented 1 year ago

And if you autosave in the background invisibly, now there's no indicator that it's even happening.

There might be a solution to that :thinking:

DakkJaniels commented 1 year ago

Any problem with what I suggested? I was going to see if I can figure out how to add something to the game menu to add an autosave option.

AJenbo commented 1 year ago

sounds fine, could have it as "continue from last checkpoint" kinda thing, each level is saved as a temp already, so you could set it to a state where it will load them rather then the perm files. Then you only need to save the game state as a temp and you would be good to go.

julealgon commented 1 year ago

So what about having an autosave slot that always saves at the last positive level transition, which you can get back to when something like that happens, so you won't lose as much progress.

This is a very nice approach to it indeed and fairly standard these days. With a separate autosave slot, I'd probably be a bit more liberal with how often it is saved, as well, although limiting it initially to level transitions seems like a very decent approach.

Also the game might crash and you're left with nothing. I've seen other games from that era with one or more autosave slots. These can be highly convenient for the player.

Also very relevant... the autosave could potentially corrupt the main save data in some corner scenarios...

A very recent game that immediately comes to mind (since I'm playing it) is Zelda TOTK which autosaves and allows manual saves.

We could also autosave on game exit, BTW.

StephenCWills commented 1 year ago

Also very relevant... the autosave could potentially corrupt the main save data in some corner scenarios...

I agree that it's relevant, but it should be two different solutions. Autosaves can protect you from losing progress due to human error (with some additional side benefits). Automatic backups can protect you from save file corruption.

FitzRoyX commented 1 year ago

Isn't it possible that you go down stairs purely to escape monsters and now you've got low hp, no tp, and the game autosaves you into a pickle? What if you haven't been manually saving the whole time because of the convenience of relying on the autosave, you just start a new game with that char?

galaxyhaxz commented 1 year ago

Isn't it possible that you go down stairs purely to escape monsters and now you've got low hp, no tp, and the game autosaves you into a pickle?

Back in the 90s, video games didn't hold your hand. They do this now to prevent people from getting mad and quitting the game, ending their constant stream of revenue from microtransactions. It's part of psychological manipulation. Most Diablo players are older and will learn from their mistakes.

AJenbo commented 1 year ago

Isn't it possible that you go down stairs purely to escape monsters and now you've got low hp, no tp, and the game autosaves you into a pickle? What if you haven't been manually saving the whole time because of the convenience of relying on the autosave, you just start a new game with that char?

I don't see how that is relevant to what is being proposed. Are you commenting on an earlier part?

galaxyhaxz commented 1 year ago

That autosave should potentially be disregarded as it could save players in a bad position. It means, you have to play much more carefully, not attempting to take on more than you can handle, or the game will save and thus you face the consequence. The single player save system is already quite abusable.

AJenbo commented 1 year ago

I think you guys missed the part where we said it would be a separate from the manual save.

StephenCWills commented 1 year ago

Isn't it possible that you go down stairs purely to escape monsters and now you've got low hp, no tp, and the game autosaves you into a pickle? What if you haven't been manually saving the whole time because of the convenience of relying on the autosave, you just start a new game with that char?

Yes, it's possible the autosave could put you into unavoidable danger. Manual save already allows this, so that really just represents a problem that is not solved by autosave as opposed to a downside to having it. That said, having options for both a manual save and autosave might give players another avenue for recovery if they happen to compromise one of them in this way. So it's still probably better to have autosave than not.

galaxyhaxz commented 1 year ago

Given that devilutionx provides a few options for a mostly vanilla experience without most additions, you could just have "Autosave: On/Off" in the main menu, it would save every 5 mins or so.

AJenbo commented 1 year ago

it would save every 5 mins or so

Just drop the check for the existing auto save only applying for MP then. But I don't like that idea so much.

kphoenix137 commented 1 year ago

How about

The only way to screw up is to hit load Game and lose progress then. If a player doesn't want to Save while quitting, they can just load Game first then hit Save and Exit.

AJenbo commented 1 year ago

I would like to revamp it. A lot of people fail to realize that "new game" is the way to get back to the menu and instead restart the game each time. On consoles and phones quit takes you to the main menu, since you can exit the application. But it should still be possible to quit without saving i think.

julealgon commented 1 year ago

But it should still be possible to quit without saving i think.

Agreed.

The way the game works is just too different from say D2 where it "constantly saves" the game anyways so it makes 100% sense that quitting also saves.

kphoenix137 commented 1 year ago

How do you really fix this issue specifically? The problem is that the player forgot to save and then exited the game. I agree New Game should be renamed to something like "Exit Without Saving". Would that be enough of a reminder for the player to save though? The entire problem was a result of mindless clicking when the player is used to other modern games automatically saving. One extremely complex but potential solution might be to do it the same way that games like GTA5, RDR2, and Skyrim do it. You'd have a unique directory for the character you want to play (or mpq directory), then hero directory has the capacity for multiple saves. For example you could manually save the game before the butcher, hen manually save before Lazarus, then decide to load up the save you did before the butcher, then load the save before Lazarus again. In addition to managing multiple save points per hero, you'd have a save file labeled auto-save, which at intervals will automatically auto save the game to that save point, always saving most recent gameplay to it.

kphoenix137 commented 1 year ago

How do you really fix this issue specifically? The problem is that the player forgot to save and then exited the game. I agree New Game should be renamed to something like "Exit Without Saving". Would that be enough of a reminder for the player to save though? The entire problem was a result of mindless clicking when the player is used to other modern games automatically saving. One extremely complex but potential solution might be to do it the same way that games like GTA5, RDR2, and Skyrim do it. You'd have a unique directory for the character you want to play (or mpq directory), then hero directory has the capacity for multiple saves. For example you could manually save the game before the butcher, then manually save before Lazarus, then decide to load up the save you did before the butcher, then load the save before Lazarus again. In addition to managing multiple save points per hero, you'd have a save file labeled auto-save, which at intervals will automatically auto save the game to that save point, always saving most recent gameplay to it.

Auto-save is like a lazy option to saving then with the option to save and load manual save points without accidentally overwriting anything.

julealgon commented 1 year ago

You'd have a unique directory for the character you want to play (or mpq directory), then hero directory has the capacity for multiple saves. For example you could manually save the game before the butcher, hen manually save before Lazarus, then decide to load up the save you did before the butcher, then load the save before Lazarus again. In addition to managing multiple save points per hero, you'd have a save file labeled auto-save, which at intervals will automatically auto save the game to that save point, always saving most recent gameplay to it.

I wouldn't go as far as saying that you need separate manual save slots, but I do think having at least a passive autosave slot (that also auto-saves when exiting) alongside a fully manual slot would be a dramatic improvement over what the game currently offers and should fully prevent those accidents where people forget to save for whatever reason especially when exiting the game.

Another option to a manually-managed multi-slot solution, would be to keep the last "N" manual saves but not allow the player to pick the save slot when saving. Personally, I don't like that because it just increases the exploitability of the game but sure... would certainly open up more options for players and make the game feel more "modern".