RNG vs Guesswork

2015-08-15   #design 

“RNG is bad” is a sentiment that most competitive gamers seem to be unanimous on. But if all RNG is stripped from a game, it tends to feel dry and predictable. A lot of competitive games implement some small RNG into their design to spice things up a bit, e.g. Dota2 has damage ranges on normal attacks, and RNG-based abilities like Ogre Magi’s Multicast. Some people even complain that the fog of war makes the game too unpredictable. But I think there’s a big difference between something like multicast triggers and fog of war. This article aims to articulate that difference, and outline why “RNG” is bad for competition, but “guesswork” is very good.

Defintion of Terms


Random Number Generator refers to the technical side of computers creating pseudorandom numbers, but has been adopted to also refer to all aspects of a game’s design that rely on that random generation. There are lots of different contexts for RNG when speaking about video games, but let’s create an example scenario relevant to this article. Say you are playing as a healer in PVP match, and your class has a self-buff that triggers whenever you receive damage. If the skill were “RNG-based”, it might read like this:

Sheltering Vengeance: When damage is received, there is a 50-50 chance to either nullify all damage received, or reflect all damage dealt to you back to the attacker.

Once this skill is cast, you and your opponents lose direct control over the fight, and the outcome becomes determined by an RNG system. If your HP is low and you’re under pressure from an archer, nullifying the damage from her Focused Arrow may let you live longer to perform some other crucial action, whereas reflecting the damage (but dying) would be relatively worthless. Likewise, if your opponent has been working hard to kill you, and you roll damage nullification, their work is marginalized based on the whim of RNG.

Regardless of the outcome, neither player could really make a solid decision in this scenario, because it becoming a good play or not is completely up to chance. You just clench your buttcheeks hoping you don’t die, and your opponent just gets annoyed if you’re lucky. It doesn’t have any sort of competitive merit, nobody gets truly outplayed, and that’s why RNG gets a bad rap in versus games.


When I say data, I’m referring to the information present to each player that fuels their decisions. If the Sheltering Vengeance skill from above is cast, and the game doesn’t reveal which one of the buff effects was applied, then some of the data is hidden from you. If the game indicates that damage will be nullified, then the outcome was still ultimately random, but the data to make a more informed decision about what to do next becomes available.

Making as much data available as possible is generally viewed as good thing in competitive games, but presenting ALL data to players leads to solvable games, which isn’t a good thing.


This is a concept that’s closely related to mind games. Guesswork is partly about making decisions based on experience and good reads (aka yomi). The other half to guesswork is that some of the data needed to make an optimal decision is hidden from you, hence you’re still taking a guess.

To “remove RNG but retain guesswork” from Sheltering Vengeance, we might change the skill behaviour to something like:

Sheltering Vengeance: When damage is received, choose one of the following effects – nullify all damage received, or reflect all damage back to the attacker. Hide which choice was made from all other players.

The skill is now completely RNG-free, but a factor of unpredictability is retained. This time, if you are at critical HP, you might cast this skill and make the ballsy choice to reflect damage instead of nullify it. If the archer makes an incorrect read (she assumes you chose to nullify damage), she might target a different player. In this scenario, you’ve survived and given yourself some breathing room, while applying a buff that might be more useful to you after you’ve healed up.

This scenario incorporates guesswork, which plays on human expectations rather than leaving outcomes up to chance.


Optimization is the process of improving play (up to theoretical perfection) using the information you are given. In an RNG heavy game, playing optimally doesn’t guarantee a win, because even if the choices you make are the most correct, losing to bad luck might be unavoidable.

In an RNG-less game where all data is available to you, it’s possible to play perfectly optimal. Some players desire this, but it raises the question of who you are really fighting; the opponent, or the game rules? In this type of environment, it would be possible to write an AI who plays the game better than any human would ever hope to be able to. Given a big enough dataset, an AI could always make the best decisions instantly. In many games like this, if both players are playing perfectly, matches are not necessarily determined by playing skill, but instead something closer to raw numbers. This leads to unexciting, predictable games that lack any real surprises, clutch plays, or comeback potential.

That said, it’s pretty obvious that games should still strive to allow for players to optimize their play and continuously improve, but I think they should do so in a meaningful way to humans, rather than purely based on meaningful numbers and data.

Why this matters

As stated before, implementing RNG into your game’s design removes control from the players, and they stop fighting each other, to instead fight your number generator. In some cases, this doesn’t amount to anything horrible; a normal attack might deal a bit more damage, and the match goes on. But in other cases, it’s actually stupid as fuck and can change the outcome of whole tournaments. That said, removing RNG makes games feel dry. Watdo?

I think the best middleground here is probably pretty clear by now. Minimize RNG, but allow for guesswork to take place. Players are always in control of a match, but surprises still happen. Hiding data like builds or equipped items adds many dynamical properties to games. Most importantly, it makes humans better at the game than AI. Computers have difficulty accounting for variable human actions when data is hidden, and it’s hard for an AI to make sweet plays based on reading a human. In a game with guesswork, you could intentionally make a non-optimal decision (so, take a risk), and it could pay off for you if your yomi was up to snuff.

Some specific examples


Pocket Monsters is an interesting example to consider, as it draws from all four aspects pretty heavily. Pokemon has a huge competitive community, and they hold a lot of tournaments.

In GenVI of Pokemon, when a battle starts, you can see your opponent’s entire party composition:

Pokemon Showdown

However, this is all of the information you get. You aren’t sure what each of your opponent’s Pokemon’s statistics, moves or items could be. You can make pretty good guesses based on their lineup, but you can never be sure. In the image above, who is the mega evolution? Is it Charizard? Gyarados? If it’s Charizard, might it be mega X or mega Y? If it isn’t Charizard, what sort of build might he be instead? I mean, there’s a lot of standard builds, but it might be something unconventional too. You have to figure it out based on your knowledge of each of the members of their party, and try to piece together what they might be running.

There is enough data to do very educated guesswork, but not enough data to write an AI which plays better than humans.

Unfortunately the game is plagued by heavy RNG in crits/misses, which ruins a lot of its true competitive viability, but the point stands that limiting data availability leads to many clutch plays based on yomi skill.

Atlantica Online - Arena of Atlantis

By comparison, in a game like Atlantica Online’s Arena of Atlantis mode, all data is available at all times. Mercenaries all have predetermined statistics and attacks, heavily limiting creativity. After a match begins, making perfect plays becomes possible.

With a big enough dataset, I am positive that an AI would be better than me at this game; it could quickly calculate the possible damage ranges that every mercenary is capable of hitting against every other mercenary, work out the most optimal rotation for all skills, maximize AP efficiency, and switch around its formation based on an opponent’s available options. It would never be wrong, because unlike something like Pokemon, surprises from hidden data don’t exist.

If both players play perfectly, they aren’t fighting each other, but instead just playing out how their unit’s data match up. It’s true that you can select an unexpected spell or delay a skill for a turn or two to throw off your opponent, but these don’t generally amount to exciting or meaningful plays, and if your opponent isn’t making mistakes, they usually end up hurting you more than helping.

These problems become pretty apparent after you play the game for awhile, as whoever has the most counter-pick units and sticks to the optimal game plan almost always wins. The match is decided by the draft screen. If both players don’t play optimally, it still isn’t really “whoever plays better wins”, but instead “whoever plays worse loses.” The distinction there is that you aren’t necessarily taking advantage of the other player’s mistakes, you’re just making less mistakes than them. Regardless of how you look at the game, there isn’t a lot of room for dynamic “human vs human” decisions to be made, and it’s very soulless.


I’m aware that your goal in RNG-heavy games is to increase winrate. You are never even dreaming about a 90%+ winrate in a game with heavy RNG and unique compositions, as it’s basically impossible. Due to RNG (and imbalances in matchups that typically compound the effects of RNG), you are simply going for a 80%+ winrate instead of a more mediocre 50-60% winrate that most players sport. But I don’t think this is interesting, top players losing 1/5 of their games to luck of the draw doesn’t really appeal to me, especially with how tournaments are normally formatted.

Creating solvable games is boring, and RNG is bullshit. To circumvent that, hide some of the data available to players, but always keep them in control. Allow for interesting mind games and reads to take place. Rework RNG mechanics to guesswork mechanics, so that players with high skill and experience are always playing against each other, and not breaking keyboards over video games doing stupid things.

“Fun is pleasure with surprises.” – Jesse Schell, The Art of Game Design