Thoughts on preventing UNDO for numbered choices?

I have a lot of choices in my parser WIP that really do matter for the endgame. They’re all numbered choices in menus. I’ve been thinking about preventing the player from undoing those so they have to think carefully before choosing and don’t just run through every number to see which is the best one for the outcome they want. I’d leave UNDO for everything else, although you can’t (hopefully) do anything to soft lock yourself or lose.

There are other options. I could just not worry about it. Or I could, for example, instead give a message for UNDO saying that this really isn’t in the spirit of the game and do they really want to do that and then allow it if they want to.

Preventing UNDO for those choices wouldn’t keep the player from, say, saving often and just reloading saves to get past the undo prevention, but I figure if you’re THAT determined to cheat, so be it.

What does everyone think about this? Is it reasonable? Annoying? Anything I haven’t considered?


I would be laissez-faire about it, personally - folks typo all the time, for one thing, and if the choices are having an impact in the endgame the immediate consequences aren’t all that matter (I might flag that to the player in the ABOUT text so they understand that their choices do have broader impacts).


Yeah, maybe, but if the endgame bit is not too long, you could cancel undo until you win the game, whereupon UNDO would being you back to that choice. If that’s okay in the spirit of the game.


I think it would be very surprising for a game to let me freely use UNDO most of the time, but then suddenly there’s a particular action it won’t let me undo. Regardless of one’s stance on UNDO, its presence or absence can significantly shape how one engages with the game, so if you flip-flop on it, that by itself can be worse than not having it at all. In the same vein, I’ve played at least one Inform game that has UNDO, but for technical reasons it doesn’t work properly in some situations, and that’s also very frustrating when you want to undo at that moment.

At minimum, it should be extremely well-telegraphed (1) that some choices can’t be undone and (2) when such a choice is being made. If any player ends up typing “UNDO” and is surprised it doesn’t work, they would be justified in being extremely frustrated. I don’t think any reasonable amount of text will 100% ensure that nobody will ever run into such a situation, so I would definitely shy away from it even I felt the urge to control how people use UNDO (which I very much don’t).


I’m with Mike ala I’m laissez-fair. In my WIP, there are long conversations with choices amongst parser stuff, and they’re not lawnmowery. I decided to treat them the way the rest of the game is; you can always UNDO a step.

In matters like this, there’s also a chance that if you feel the game’s fighting you, you will fight back. Whereas if you realise the game will let you have your experience with it, your focus is more likely to remain on that experience, rather than on getting one over on that bastard Gareth.

I was trying to google up a certain Peanuts comic where the girls in the baseball team leave the field while shouting something like “La De Da! Win or lose! Who cares? We don’t care! We don’t care!” Then possibly Charlie Brown clutches his stomach and says, “The pain has suddenly increased.” So that’s where this topic took me.



There are about 15 places where there’s a choice, so that wouldn’t work, unfortunately.

It would be. Very, very well.

But it looks like nobody likes this, and y’all are my audience, so I’m going with the clear majority opinion here and dropping the idea.

Thanks for the feedback, everyone!


Inspired by an idea that @JoshGrams gave me:

The player—at the start of the game—can choose to either have free UNDO, a limited number of UNDO, or no UNDO. The idea is the mindset of the player before playing the game tends to be a lot more strict and adherent to principles of play than a player stuck in a conundrum mid-game. The consequences are entirely the player’s own choice and responsibility. If a player wants to freely explore the game and choose every combination of things, then they can. Players who want to engage with the game according to your intended design will probably pick limited or no UNDO.

I feel like save-scumming (not intending to put any weight on the term; there are games where I’ve done it too) is one of those things where devious players will say “Aha! I can still UNDO!” But that method is pretty tedious, which is a kind of cost.

EDIT: I’m not claiming that this is the solution to your project or anything; I’m just hoping this at least helps with brainstorming some other potential options. :grin:


I really like this idea (and I feel like it ties in with some of the recent agency-in-games discussions, albeit on a meta level). I remember playing a game or two that had “undo” disabled, and it irked me a bit that the author was attempting to control my experience to that extent. But if the game starts out by saying “This game is meant to be played without using undo, but it’s your choice whether you want to play that way or not”, I’ll appreciate having the agency to choose how I engage with the game, and because of that I’ll very likely play it with no “undo” as the author intended.


Hmm. Since I only wanted to prevent UNDO after numbered choices and not for any other action, this sounds like a lot of explanation that would be difficult to convey before the game has started, since I’d have to explain that you’ll have a lot of menus with numbered choices, and that’s where the UNDo won’t work, but only if you pick X option, etc. As is my wont, I already have a lot of information at the beginning and I don’t want to throw anything else at the player then.

Since it sounds as if most people are pretty opposed to the idea, I’m just going to let it go. We’ll see what testers say. I’ll of course keep UNDO wide open for testing since I want everything seen, and maybe testers will have opinions after they’ve played.


I’m messing with UNDO in my current work in progress… and also tightly restricting inventory. Rules are made to be broken, as long as you understand why they were there.

I do think the assumption that players can and should be able to undo actions is a bit of a strange part of IF culture that you don’t see in other genres so much, but I think the reason it’s there is:

  1. Players may encounter a game over or an unwinnable state or end up on an undesirable (to them) branch of the story, and not have thought to save recently or at all.
  2. It can be hard to interact with parser games. Players may perform actions they don’t fully understand or the wrong action.
  3. Separately, all branching narratives have the risk that a player will feel that, after selecting a choice, the story doesn’t proceed in a way that they feel fairly reflects their intentions. (This is common to a lot of different types of games, but outside of parser and hypertext IF they often just make you live with it or reload a save.)

I feel like the situation you’re describing bumps into all 3 of these things (even 2, given that it’s possible to just type the wrong number), but I also really understand that it can suck to see players just time travel to their best timeline instead of seeing the consequences of something through to the end. (“I took that option to try and help that character and I hurt them instead!” Yes, that happens, what are you going to DO about it?)

Expanding on @inventor200’s idea, could you provide a limited number of undos just for these choices? Enough to help a player who thinks the game has been unfair with them but not enough to let them lawnmower through all the options?


That’s an excellent breakdown of why UNDO exists. Thank you. That really crystallized my thinking. If you don’t mind sharing, what are you doing with UNDO in your WIP? If you don’t want to give that away publicly, no worries. Just curious.

I’ll keep the “limited UNDO” idea in mind. I think the ultimate say here will rest with testers. I’m getting my first tester tomorrow-- my BFF always looks at everything before anyone else. She’s crap at finding bugs and hammering on a game, but she’s priceless for seeing how to organize information sensibly and for tweaking the level of cluing.


For longer games with meaningful choices I want to give the option of an “ironman mode” I saw in other games: You only have 1 save file, saved automatically when you exit. That way you can let the player opt-in to a “no takebacks” experience or let them save often and explore all different branches and options without worry. That’s basically the extreme version of “limited undos”, but with the player choosing if they want it.


Sure, why not. My WIP has slightly randomised elements and various roaming dangers. So I’ve tweaked UNDO into more of a checkpointing system. If you die or manually restore a checkpoint, you get returned to the last time you left a safe room. You can also only save in a safe room (excepting interpreter-level shenanigans).

The idea is that dying or manually reloading a checkpoint sets the player back a bit, so dying carries a bit more weight, and reloading checkpoints might feel a bit more arduous than just persisting when something has gone a bit wrong.


I’ve come across a similar issue in a game I’m working on where there’s a particular action that I don’t want to be undone but I’d rather not stop saving or undoing just for that one thing. So the idea I’m working on is to have that specific actions be undo and save resistant. It should be easily doable in glulx via external files but I think I may have a way to do this without them.

If you need testers that are good at finding bugs, I’m happy to offer to beta test if needed! :slight_smile:

1 Like

My question to you is the same as my question to Amanda: do you think any player will have a better experience if they try to undo and find it suddenly not working?


Or to put it differently—

Players pretty much universally get frustrated when conveniences are taken away, even when there’s a good reason for them. Reliques of Tolti-Aph has turn-based dice-rolling combat that wouldn’t work at all if you could UNDO and reroll any time the dice weren’t in your favor, and it’s still thoroughly panned for blocking UNDO and SAVE.

Which puts authors in a bit of a bind, because there are concepts (like Tolti-Aph) that just don’t function well when everything can be undone…but you have to weigh the two bad options of “players not experiencing your game the intended way” against “players getting frustrated and quitting without getting to the end”.

Is there a good solution to this? Honestly I don’t know of one. If Tolti-Aph allowed undoing, I foresee a lot of people saying “this game isn’t fun, combat is grindy because you have to UNDO over and over until you roll a nat 20”. Maybe someone else will have some good insights here. I think Amanda’s “these choices impact the endgame far in the future, so you can’t foresee which is the ‘best’ choice right away” will probably work well. For climbingstars’s idea, maybe do it like in Counterfeit Monkey? You can UNDO the decisive choice in Cold Storage all you want, but you have to get out of that room one way or another. For Tolti-Aph…well, I don’t see a better solution than the one Graham Nelson took, in the end.


It’s a different flavor of frustration, but deterministic randomness I think can work for this kind of thing – like, generate the “die rolls” all at once when a fight starts so that UNDO doesn’t actually allow another bite at the apple (though does allow for choosing different strategies or approaches, I suppose).


Oh, I’ll definitely take you up on that. I’ve got with an initial tester right now who will discover any big bad unsolvable puzzles or game-breaking bugs, and once I’m sure it actually works all the way through I’ll be haranguing everyone to test it.


I don’t think any player will have a better experience if they try to undo and find it suddenly not working, especially if it was working before, which is why I made the suggestion. For clarity, when I say “the idea I’m working on is to have that specific actions be undo and save resistant”, I don’t mean you can’t undo the particular actions (and also the actions before that one), I mean the undo will work absolutely fine but the results of that action (eg. dice roll) will survive the undo, even if the player undoes to the beginning of the game. That way the player still get to use undo but doesn’t get to redo certain elements that are meant to be permanent.

That said, if the issue is dice rolls (the case I’m thinking of isn’t) then this isn’t really needed, it’s a little over kill. If you use procedural random number generation, then you’ll always get the same randomised dice rolls no matter how many times you undo and redo!


Note that this is only true if the state of the RNG is saved/restored/undone along with the rest of the game’s state. In Glulx, this is not the case for the built-in RNG used by the usual Inform phrases such as “say [one of]” or “a random number from 10 to 99” — this RNG is not rewound to an earlier state when restoring, it’ll give different results after undoing and trying again. If an author wants randomness to play out the same way every time, they need to implement a RNG in Inform code (or use an extension doing it) whose current state is saved in an ordinary variable that is saved and restored like any other. Or if it’s a small number of decisions throughout the game, they could make the random decisions when play begins and hold onto the outcome until it’s needed.