Meaningful Choices

To be more than mere walking simulators, our games should have choices. But more than that: These choices should be meaningful.

i gotta pee / pee in her mouth / divorce

First: So what are choices? Obviously a dialogue-driven multiple-choice story has choices, but really, anytime the player makes a decision, that’s a choice, by definition. Deciding on a character build, on an action in combat, which of multiple paths to take, which ending to go for - all of these, and more, are choices.

So what do we mean by meaningful? You may have heard the phrase “meaningful choice” as a buzzword in MMORPGs, and while it has use beyond those, it’s a good place to start:

Consider an RPG talent tree. Ideally, deciding on your talent build should be a meaningful choice. Specifically:

  • There shouldn’t be one build that is clearly stronger than all the others. (Though your players will probably develop a metagame and proclaim certain builds to be OP in their youtube videos, regardless.)
  • Playing different builds should feel different - just doing 5% more fire damage doesn’t really feel any different most of the time.
  • There should be a way for players to make smart choices: Using synergies and game knowledge to make choices that are more powerful than just randomly rolling dice and picking the corresponding talents.
  • This implies that it should be mechanically possible to make bad choices - if all choices are smart, then none really are. That’s not to say that players should be left to pick blindly: A game could offer hints to emphasize synergies, or even just suggest recommended builds for players who don’t want to deal with the depth of the talent system right now.

Now let’s pick apart these ideas a bit more:

Linearization

We don’t want one choice to be clearly superior to another, such that no reasonable player would ever pick the weaker choice. In the simplest case, if one choice does 4 damage to an enemy, and another choice does 10 damage, I almost never want the weaker choice, unless I’m in a specific situation where I need to hit a particular damage bracket.

More generally, whenever veteran players advise “never take X, if you’re going that path, you should just take Y, it’s pretty much always better” you might have a problem. The simple fix might be to just make X stronger, but at that point, you might risk things feeling too same-y. If you can, it might be better to look at this as “so X and Y are too similar, what could differentiate them better?”

Your players are going to linearize the crap out of any mechanic you give them, because players are often notorious minmaxers, and mapping something to a linear scale makes it easier to reason about. But as the game’s designer, you shouldn’t always do the same - mechanics are, and should be, somewhat complex.

Dimensions

For instance, a player might simplify a build into “what build lets me, a veteran player, finish a speedrun in the least amount of time?” - which is a very linear measure, and makes it possible to compare any two builds, given enough time to experiment. But that’s not the only measure we could use, for instance:

  • Which build is the easiest to execute well as a new player?
  • Which build has the highest outcome when you get lucky?
  • Which build has the best outcome even if you get unlucky?
  • Which build has the most/least variance?
  • Which build creates the most interesting stories?
  • Which build can be played one-handed while munching pizza?

All of these might be considered by players trying to pick a build, and different players will have different priorities, leading to them making different choices - or even the same player to make different choices depending on how they feel that day.

Some of these can provide real tradeoffs that don’t linearize well: A slow but reliable path is good for a player that is worried about losing, but may be too slow for someone looking to go fast. A high-variance build is good for a player who wants the 1-in-100 chance of the odds lining up just right, and bad for a player who hates RNG getting in their way.

As a basic example, if I have a skill that does 5 damage every time, and another skill that does 15 damage when it hits, but only hits 50% of the time, mathematically the 15 damage skill is better, but I might prefer the more reliable predictability of the other skill. Of course, when I’m fighting an enemy that only has 4HP, the guaranteed lower-damage skill is always better.

In the RPG example, for instance, a fire caster might be decent overall, an ice caster won’t do as much damage but will slow enemies, making it easier to dodge, and a lightning caster might have much more variable damage. Or you might have a build that’s good against large groups and another build that’s good against beefy single targets.

Ultimately, what matters is that each choice should have a way to argue “yup, this is the right choice in that situation because…” - it should have a time when it is a good choice and a time when it is a bad choice.

Notable difference

We’ve already talked about differences a bit in the preceding section, but what makes things feel different? Obviously there’s visuals and sound and all those multimedia bits, which are important, but should ideally not be the only thing.

I come from IT, which has desensitized me to percentages. Unless you’re using a stopwatch or other measurement device, a 5% difference is utterly invisible. If one day you’re waiting 5 minutes for the bus, and another you’re waiting 4m45s for the bus, you would not notice, unless you’re specifically timing it.

For something to feel noticeably different, ideally you want a factor of 2 - twice as big, or half as long. Those differences tend to be noticeable even when players aren’t actively trying to measure them. You might be able to get away with a factor of 1.5 but that’s pushing it sometimes.

That said, beware of compounding: If you had 5 upgrades that each increased effectiveness by a factor of 2, in a way that scales multiplicatively, you’ve now increased player effectiveness by a factor of 32. That’s a little absurd. That’s a room that used to take 4 minutes to clear getting cleared in 8 seconds. If you have many things compounding on each other, the individual increases can be a good bit smaller: If a max level 4 upgrade reduces casting times by 60%, each level could just be a 15% difference - individually not super noticeable but significant if you stick with it.

Prediction

Another angle here is player knowledge and expectations.

Consider basic rock-paper-scissors, where you pick between 3 options, then the computer picks a random answer, and you get an outcome for winning, tying, or losing.

No matter how different these outcomes are, this is never going to feel like a meaningful choice, because to the player, their choice doesn’t matter, the machine then rolls a random outcome and hands it to them. The problem here is that the choices depend solely on something the player cannot know, and thus they might as well pick randomly.

You could fix this by adding subtle visual cues about what the enemy is going to throw, but that just makes it a pattern-recognition skill game. You could give the enemy certain patterns for the player to try and exploit (In practice, even with full RNG, players will find patterns, because humans are just wired to find patterns anywhere). You could also add different outcomes depending on what the player picked, and possibly have the AI try and predict player patterns.

Ultimately, though, rock-paper-scissors is just a bad game mechanic on its own. It is a very good mechanic to use as a piece in larger systems, it’s just kind of bad purely on its own, with no extra elements to differentiate the options.

This ties back to our earlier argument that choices should be situational: What the player knows about the game state, and what the player is trying to achieve, should ideally inform which choice they want to pick.

A special note on dialogue games: Systems like ren’py make it easy to have small, inline choices that don’t impact any more than the next few lines of dialogue. Which is a great way to make things feel more interactive, though it did frustrate me on occasion when I was unsure whether a choice was merely local flavor, or was a central story branch that would have consequences much later throughout the game. Some games would specially mark “this choice will have a lasting impact” which helps people like me play through these games without second-guessing our every minor-dialogue choice.

Dude, where’s my porn?

Yes, I know. But CrazyPerson, you say, isn’t this supposed to be a porn game blog? Apart from a throwaway image joke, there’s been nothing remotely pornographic here.

True, but I think it’s important to set up the fundamentals, and we should still be using good game design even when we’re making porn games. The principle of meaningful choice is one we’ll need many times, so I wanted to get it out of the way early.

For instance, where it comes up is status effects: I love games with sexy status effects - they just provide a very intuitive and omnipresent way of representing porny things in a way that ties heavily into gameplay. But I think a good status effect needs meaningful choice: Is there any way I can take advantage of this effect? Should I spend the time and resources to cleanse the status, or should I just try to rush down the current encounter, hoping to finish all the enemies before the accumulated statuses become too debilitating?

Or as another example that I’ll expand on more in another post: In my opinion, giving the player a straight-up choice between “game progression” and “see porn”, as so many GoR games do, can feel a bit awkward. Heck, sometimes even “do you want to submit to the tentacle monster?” can be an awkward choice - depending on mood/attitude, players might not like actively making the first move towards sexytimes. But if you give them a choice that’s meaningful even without the sex, like “slap tentacle monster for 4 damage, or kick it for 10 damage but risk getting grabbed” your players have more of an excuse to go for the sexy path, which some may appreciate.

Apologies, I’m rambling again. I should probably stop, for now.