1 free read left. Create a free account for unlimited reading + AI research.
Create free accountWhen 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 you. 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 as 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 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 20 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 11.7 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 game play time increases. It's one of their strengths. So now, let's talk roulette. Let's say you're betting on red. Roughly 53% 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 0.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 costs less than seven 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% minus the chance of winning, 47% times the payout divided by the bet. Since in roulette the payout for betting on red is usually one to one, the whole equation can be boiled down to 60 minutes the bet times 0.06 or a 3.6 frustration level. For our whale's 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 cost for players
based on how they perceive 150 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 in arena the least frustrating. Then there's the players who pay $1.99 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 $20 an hour, that's an additional 6 minutes of time invest, whereas for someone earning $10 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 to 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 Kroll's cadence calibration. All right, 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 So did you write You know what? What did Matt ever do for us anyway?
The design of random number generation (RNG) in video games requires a structured approach to balance strategic depth with player satisfaction. The central thesis, termed Portnow’s Postulate, posits that player frustration stemming from RNG is a product of the time lost multiplied by the probability of that loss occurring. This framework serves as a diagnostic tool for designers to evaluate whether the randomness in their games exceeds acceptable frustration thresholds.
The methodology involves calculating the "true time cost" of a loss, which extends beyond the duration of a single match to include lost progress, such as rank degradation or the time invested in earning entry currency. For example, in Hearthstone, a ten-minute match carries a higher frustration weight because a loss negates the progress of a previous win, effectively doubling the time cost. In Slay the Spire, the variable length of runs necessitates that RNG influence decreases as the game progresses; because a loss after an hour of play is significantly more frustrating than a loss after ten minutes, the game’s mechanics—such as deck-building and roguelike progression—naturally mitigate randomness over time to maintain a consistent frustration level.
The analysis also extends to games involving wagers, where the time cost is tied to the player’s real-world income or the effort required to acquire in-game currency. This is particularly relevant for microtransaction-based models, where different player segments—such as casual players, spenders, and grinders—perceive the value of entry fees differently. Grinders, who invest significant time into non-preferred gameplay to earn currency, experience the highest frustration levels when RNG causes a loss. Ultimately, while RNG is a vital tool for creating engaging, high-stakes scenarios, designers must actively manage these variables to ensure that randomness remains a strategic element rather than a source of insurmountable player frustration.
Comments