When is RNG too much RNG? It's one of the most fundamental questions in game design
Yet, try as he might James has never found any book or article that gave a good answer
Every discussion about it seems to fall back on either "Play Test", or
"Do what your gut tells ya" and while play testing is always a good idea as we start to formalize game design
We can't just have that be the default answer for everything. We don't know. So today we're going to pretentiously present
Portnow's Postulate
The simplest version of it reads: "Player frustration with RNG equals time lost
multiplied by the percentage chance of losing that time." At the highest level
this formula can serve is a simple gut check; a better way to think about what your intuition as a designer is telling you and
While you could go into infinite depth to find the exact numbers for these variables, and
if you're working on a 200 million dollar project
It's probably worth a few hours trying to nail these down.
But, most of the designers I know are looking for a more quick and dirty system
that will give them a loose way to compare games
And see if theirs has a higher than average RNG frustration cost
Small side note: when using quick and dirty exercises like this
It means you're usually going to have to just make an educated guess about how much time is lost by losing a game due to RNG
and then throw in an approximation for how often RNG causes losses
This is always going to be inaccurate, but it forces you to do something perhaps even more important
than run the formula itself. To think about the real time costs of losing your game
So with all that said let's take a look at three games through the lens of this method.
Slay the Spire, Hearthstone, and roulette.
Starting with Hearthstone:
Let's say 25% of the time losses are due to RNG and let's say that hearthstone games are about 10 minutes long
This gives us a player frustration number of 2.5
But actually, wait, that's not correct
Because what happens when you lose a ranked game of hearthstone?
Not only do you not gain anything,
You also lose one game's worth of progress
So when thinking this through the true time loss number for losing is twenty minutes, not 10
This makes RNG losses much more frustrating and leaves us with a player frustration number of five
Next, let's talk about Slay the Spire.
Examining it with this algorithm forces us as designers to immediately recognize the fact that
this game has wildly variable game length.
A death before the first boss may only take 10 minutes
whereas if you die on the final boss, you're probably an hour in.
This equation also makes it clear to us that the further you get,
i.e. the more time you've sunk in, the less randomness should play a determining factor
After all, losing a 1 hour game due to drawing a hand with no blocks
is a lot more frustrating than losing a 10 minute one, but let's look at this practically.
Let's say you were making Slay the Spire and you found a frustration level you felt your players could bear
How would you maintain that across the whole game?
By trying to have progression reduce randomness over the course of play.
Let's say you wanted the game to have a player frustration level of seven throughout the game
Well 20 minutes in, that means that RNG can cause the player to lose
35% of the time
But by the time they get to that last boss an hour in,
only eleven point seven of the games should actually be lost due to RNG and any other loss should just be due to poor play
Which makes a deck-building roguelike a good choice for Slay the Spire,
as the core systems of the game, both roguelikes and deck-building,
Actively reduce randomness as gameplay time increases. It's one of their strengths.
So now let's talk roulette
Let's say you're betting on red.
Roughly 53 percent of the time, you're going to lose due to RNG
Note that even though this is a pure luck game,
we only care about how often you're losing because only losses cause player frustration.
Let's say a spin of roulette takes maybe a minute to play out
so player frustration equals .53 multiplied by 1
i.e. you have a player frustration number of 0.53. That's pretty low
Great, except we can't calculate time here that way because the key factor in roulette is the wager
So let's say the player is making a $20 wager.
We have to convert that wager into the time it took that player to earn that $20,
so this bet is going to be 10 times more frustrating for someone earning $20 an hour than some whale that makes $200 an hour
but there's also weird mitigating factors to games that have an explicit wager
and that's the possibility of
gaining time.
Our brains don't usually attribute a hearthstone win to luck, and when they do,
it does little to take the sting out of that next game
where you can't pull a card that cost less than 7 for your life
But that's not true in wager games.
In wager games, how much the player has won or lost is actually what impacts their frustration level
so in those type of games, we have to subtract the chance of winning from the chance of losing
and multiply it by the amount the player would win.
So in this case, we have the player basically putting an hour of their time on the table
So we take 60 minutes and multiply it by the chance of losing (53 percent)
minus the chance of winning (47 percent) times the payout divided by the bet.
Since in roulette, the payout for betting on red is usually 1 to 1, the whole equation can be boiled down to
60 minutes (the bet) times .06, or a 3.6 frustration level.
For our whales' frustration level, It'll be a minuscule 0.36
I bring this up because it has interesting implications for microtransaction games
Let's jump back to Hearthstone.
An arena run has radically variable time costs for players based on how they perceive a hundred and fifty gold
Here, there are basically three types of players.
The first type is the player who is mostly focused on the constructed game
So they just earn gold as they play and occasionally use it for an arena run
To these players, the time cost on losing an arena run is barely more than the time they put into the arena itself
They'll find losses due to RNG and Arena the least frustrating.
Then there's the players who pay a dollar ninety-nine in real money for an arena run.
To them, the additional time cost is whatever it takes to earn around two bucks
So for our person earning twenty dollars an hour, that's an additional six minutes of time invest
whereas for someone earning ten dollars an hour, it's an additional 12 minutes
The frustration level here will be higher but not as high as the next category:
The Grinder.
This is the player who only wants to play arena
But either for cost reasons or as a point of pride won't put in real money
Instead, they earn the currency required to do their arena run
through playing parts of the game they might not necessarily like.
For these players, every minute they do this is a minute you have to add to your time lost calculation.
Of course, it's mitigated by the gold they earn back at the end of a run,
but these players tend to be the ones that have the highest level of frustration due to RNG
and in many microtransaction games, they're going to be the majority of your players.
So as a designer, you always have to keep this in mind.
Most importantly though, none of this is to say that you shouldn't use randomness
Playing around the RNG, thinking of how to control the RNG and tip it in your favor
can be one of the most interesting strategic elements a designer can present a player.
Also, none of this is absolute
None of it will tell you how much frustration your players can actually take.
Different genres have different player expectations for frustration,
and player frustration tolerance can be influenced by all the non-RNG aspects of your game.
Portnow's Postulate is just a lens for looking at your decisions.
It can help you think around the problems and realize the levers that you, as a designer, have to play with
Because in the end, RNG isn't bad. It just has to be used well.
After all, a situation being hopeless is a lot less engaging than a situation being a long shot.
And speaking of situations, if we're just going to be creating equations named after ourselves,
I call dibs on Krol's Cadence Calibration. Alright, it goes like this, hold on.
Matt's voice equals vocal exuberance plus words per minute
minus pitch shift, multiplied by constructive community feedback,
but finally divided by "Still not a Dan..."
Who wrote- Zoe, Did you write-? Ah- You know, what did math ever do for us anyway?