Sponsored By

Featured Blog | This community-written post highlights the best of what the game industry has to offer. Read more like it on the Game Developer Blogs.

Solving RNG abuse in roguelikes

Roguelikes have a strange relationship with RNG that may lead to frustration or RNG abuse. This article examines the various ways and methods you can design RNG in roguelikes to provide the best player experience and reduce RNG abuse.

Alex Pine, Blogger

October 5, 2020

25 Min Read

Randomness is one of the most controversial topics in gaming circles, right up there with difficulty, monetization schemes and Society™. It’s fairly common to see players complaining about pesky chance getting in the way of their skill, as they feel like their performance could have been so much better - if only they were luckier with the dice rolls.

It’s rather strange, then, that game designers, unlike many players, seem to have reached some sort of consensus on whether randomness is bad or good. It’s neither. It’s a tool, and, as with most tools, everything depends on how one uses it. It can provide exciting, replayable, unpredictable, hilarious scenarios - but it can also make the player’s actions and effort feel irrelevant, it can be cruel and frustrating.

Well, that’s it then. Chance can be fun, but it decreases the role of skill. A mixed bag, but extremely useful in the right hands. Case closed, right?

FTL: Faster Than Light is a game often argued to be too reliant on randomness, with many game-changing events happening at random

But then there’s roguelikes. A quickly spreading genre that’s a swift kick below the waistline of this false “skill vs. chance” dichotomy.

Let’s put aside the questions of whether or not “roguelike” is an acceptable name for a genre and whether or not the way we understand genres is reasonable in the first place*, and let’s give roguelikes a very vague definition. Mechanically speaking, most roguelikes (and, yes, all the weird sub-genres that exist within this category - roguelites, roguelike-likes, procedural death labyrinths (if you ever actually use any of these words, you are instantly arrested by the Game Design Police)) have three characteristics that are almost mandatory: randomized level design, randomized progression (usually in the form of various random items and upgrades you find), and permadeath, meaning you lose all or most progress when you die.

*no to both

This loose definition is about as full of holes as any other genre definition built solely on mechanics, but it gives a vague outline of what to expect to those who haven’t played any roguelikes.

A genre notorious for gate-keeping

Some of the more widely known roguelikes include The Binding of Isaac games, Enter the Gungeon, Dead Cells, Slay the Spire, the Risk of Rain games, Spelunky, Nuclear Throne, Crypt of the NecroDancer, FTL: Faster Than Light, Hades, and many, many others. The genre is growing rapidly, though I would argue it’s still in its infancy, with a lot of uncharted design territory and some awkward design practices.

One particularly interesting thing about this genre is its relationship with randomness. You see, roguelikes are not just all about exploration of these randomized scenarios, they’re also about adapting to them and making the best of unlucky situations. A skilled player will be able to perform well even when randomness is working against them, and, more importantly, account for potential unlucky scenarios before they happen.

Roguelikes actually find a strange way to tie randomness together with skill. It’s not just about whether you rely on your abilities or sheer chance to overcome obstacles - chance is giving you the tools to work with and you must have the skill to use them effectively. You can’t memorize or master specific scenarios, you have to gain a mastery of the overall rules of the game. Permadeath works together with this randomness, as it makes progress temporary and resets the game once in a while, allowing for extreme and weird scenarios to happen in-between. These games can get away with giving players extremely game-changing or even messy items because the player only has them for one run.

In this Enter the Gungeon run, I gave up most of my items to get more junk for my companion, a knight made of junk. A messy build that no other genre could get away with, but because it was super temporary, I had great fun. The bond that grew between me and Sir Junkan was more meaningful than any human interactions I’ve had in months.

I think this makes it easy to see why this genre is gaining traction - most of these games have millions upon millions of situations that this randomness could put you in, and the amazing freedom that the game’s systems have creates a sort of madness that is amazing to explore - and when it’s over, you get to explore another, still new and different one.

But this whole interesting cycle of adaptation can be broken by a player who refuses to let randomness decide their fate. While the idea of “RNG abuse” can mean a different thing in some cases, mostly we use it to describe cheese tactics where a player will reset randomness over and over until they get an unfairly lucky scenario. This often happens in the very beginning of a roguelike run - it’s easy to press some “quick restart” button repeatedly until the very first item you get is very powerful.

Unlike randomness itself, RNG abuse is not “sometimes good and sometimes bad”. It’s bad. It sucks out most of the fun from the experience, not only by reducing the conflict to something much easier than the developers ever intended, but also because, well, pressing a “reset” button over and over again is hardly riveting gameplay.

The Binding of Isaac is an extremely fun and unique game, but a lot of players, especially in the late-game, will reset the game over and over again until the starting item is very powerful. The game’s relationship with RNG can be quite awkward.

So, with this article, I want to address this issue as thoroughly as possible by taking a closer look at how RNG works in this genre, finding the root of the problem, and presenting various solutions as to how you could reduce RNG abuse in roguelikes. This might seem like a rather narrow topic, but what’s so important about it is that this will help us understand and improve the genre’s overall relationship with RNG. Even in games where RNG abuse is not a problem, applying these methods can reduce frustrations often associated with RNG.

A lot of the conclusions and ideas could be useful in other genres, too, as roguelikes are not the only games that have a complex relationship with randomness, they're just an easy and accessible lens through which the topic can be studied.

It should be noted here that I have no experience designing roguelikes, I’m just a game designer who happens to really enjoy roguelikes and who has noticed a few interesting patterns in their design. I’m about as quotable on this topic as a monkey with a keyboard, so I’ll try to present clear arguments for all my ideas here.

Figure 1.4. The author of this article

 

RNG and player agency

 

Just to get it out of the way in case anyone reading this lives under a Dwayne: RNG stands for Random Number Generation. This is, in layman’s terms, what decides all chance in a computer, it’s the digital equivalent of a dice roll, and as such, it is often used interchangeably with “randomness”.

Now, if you’re already familiar with the topic of RNG, you might be expecting me to introduce ideas like input random vs. output random, variance, or pseudo-random, but we’ll try to only focus on the ideas most essential to the topic at hand. If these interest you, I left some helpful links at the end of the article.

I believe that a significant portion of player frustration with randomness stems from its effect on player agency. Agency, roughly speaking, is the amount of control that the player has - more agency will mean the player is allowed to make informed, meaningful decisions with outcomes that feel reasonably predictable and meaningful. More agency is not always a good thing, but a game that doesn’t have enough of it will make decisions feel arbitrary.

By definition, RNG introduces uncertainty, which in turn reduces agency. And players tend to be more comfortable when they have more agency, control gives them advantage. This is what RNG abuse boils down to - players abusing the game’s systems, it’s how they exert agency over something that decreases agency. Save scumming is an analogous type of system abuse, and it’s often best buddies with RNG abuse.

So, to sum up the important bits in one sentence:

RNG can cause unsatisfying scenarios that feel out of the player’s control, so they abuse random systems to make victory as easy as possible.

The formatting in that sentence is very intentional, I chose to highlight the key phrases around which we’ll create methods that allow us to combat RNG abuse.

 

Item progression

 

Scientifically speaking, losing is for losers. We want to win, because winning is for winners, which we want to be. Now, my apologies if I’m overwhelming you with hardcore ludology terminology, but this is basic psychology, and an important thing to consider when dealing with RNG abuse.

Players are drawn to any methods that make victory easier, even if those methods aren’t particularly engaging. RNG abuse clearly falls under this umbrella, giving players a strong advantage at the cost of engagement.

So you might be asking - can we keep randomness in our games without causing situations where RNG abuse creates unfair advantages? Sort of, yeah! One thing we could do is lessen the importance of players’ progression near the beginning of a run, so that in the grand scheme of things RNG abuse doesn’t really help them reach victory. Or at least, not as much.

We do this through item progression, that is, having the items (or upgrades, or any equivalent thereof) near the beginning of a run influence victory less than items that players get later on. This means they have much less incentive to abuse RNG, as their victory will largely be determined by items that they get later, when they’d lose a lot more progress by restarting the game.

Let’s compare a few games from this standpoint (note that I will simplify most mechanics that I’ll list as examples - the nuance is interesting, but not very important to us).

The Binding of Isaac, which I already mentioned as an infamous case of poorly handled RNG abuse, has a very limited amount of item progression; the items you’ll find in treasure rooms near the beginning of the game will be drawn from the same pool as the items you’ll find in treasure rooms later on in the game. A few of these items stand out as ridiculously powerful, so a lot of players keep restarting the game until they get one such item. In many cases, said item ends up being absolutely central to the success of not only the first few stages, but the whole run.

Dead Cells is a good example of a game using item progression instead. Each item in the game is assigned a gear level, which has a significant impact on the item’s strength. At the beginning you get randomized weapons, but they all have a gear level of 1. There is no reason to abuse RNG here because these weapons won’t matter at all by the time you reach later stages, as survival in the late-game relies heavily on weapons with a higher gear level.

The items in Dead Cells have item progression. Here I am halfway through the game, finding items with a gear level of 6, significantly more powerful than my starting items.

Similarly, in Nuclear Throne, the weapons you get near the beginning aren’t particularly powerful, but random weapon drops get stronger as you progress. This discourages RNG abuse as victory isn’t as dependent on these starting items.

Nuclear Throne’s late-game items have modifiers that make them much more powerful than the ones you find near the start

Some games approach item progression in a slightly different manner. Enter the Gungeon assigns a “quality” to each of its chests, with better chests giving better items. A neat, subtle detail that the game never tells you, and that many people don’t notice, is that you have a higher probability of finding better chests near the end of the game. Like the examples we saw before, this makes your progression towards the end of your runs matter more, which lowers the effectiveness of RNG abuse.

A chest drop chance table from the Enter the Gungeon wiki. The columns are chest qualities, the rows are the Gungeon’s floors. Note that you’ll be finding more high quality chests in the later floors.

Item progression is already being used in quite a few games, and it’s perhaps one of the more applicable methods. This works in pretty much any game, as long as you assign some sort of quality or level to each item.

By severing the link between early and late game, you also ensure that players won’t be frustrated with their starting items for the whole run. Unfortunately though, this solution doesn’t create a perfect relationship with RNG, as early game might still be frustrating for such players and RNG might still destroy runs later on. In other words, it solves the problem of players abusing RNG, but doesn’t remove the frustrations players may have with RNG.

 

Weighted RNG + feedback loops

 

One neat thing about RNG is that, unlike with a dice roll, the players don’t get to see the number generation process - only the result. The downside of this is that humans tend to be a bit stupid when it comes to mathematics, and many games have to lie about how their RNG works to prevent players from getting frustrated by numbers not aligning up with their warped perception of random chance. The upside is that we can pull off all sorts of weird trickery behind the curtains and players won’t even notice. It’s like politics, but not rooted in pure evil!

With unsatisfying runs being the main cause for RNG abuse, perhaps we can manipulate RNG behind the scenes to ensure that all runs are the right amount of satisfying. RNG that doesn’t follow a uniform distribution - meaning some results are more likely than others - is called weighted RNG. Combine this with affecting a player’s chance of success or failure depending on how well they’ve been doing so far (which is also called a feedback loop in game design), and what you get is perhaps my favourite method for solving RNG abuse.

If your player finds too many high quality items, weight the RNG to give more low quality items, and vice versa. This ensures the most satisfying amount of player strength in every run, and they won’t be abusing RNG because, if you make sure the RNG is forgiving but not overly generous, they won’t be incentivized to retry. I mentioned the genre having a sort of madness-generating freedom - here we control that freedom a bit to tune down the madness.

In Half-Life 2, being at low health makes useful pickups drop more. While not related to RNG abuse, it is an example of negative feedback loops used to automatically find the right experience for the player. Fun fact: this type of negative feedback loop is called dynamic difficulty adjustment.

Obviously, this brings in a whole heap of annoying technicalities. You need to assign some quality variable to every item (something that The Binding of Isaac would have benefited greatly from), balance to find the right amount of power, and do all the coding required to make this feedback loop work correctly. It might be a hassle, but I’d argue it’s worth it, as it’s perhaps the best method for disincentivising RNG abuse. While most other methods discourage the player from abusing RNG when their runs are unsatisfying, this one strikes right at the root of the problem and makes sure that runs are satisfying in the first place. Can you see how brilliant this is? And, while it may be complicated for the devs, on the player side this method is extremely elegant - they won’t even notice that RNG is being manipulated. Solutions like this are what makes game design so exciting to me.

I would love to provide some examples for games that do this well, but that’s rather difficult. I can’t be sure if it’s because this method is used extremely rarely or because, by nature, it’s really damn hard to notice when designers do this. Part of the brilliance of weighted RNG and feedback loops is that a lot of the time the player isn’t even told about it - it just feels right, and you don’t even think about what’s creating that right. So there may already be some popular roguelikes that do this and I haven’t even noticed it!

I have seen something similar to this in Enter the Gungeon’s “magnificence” system. Magnificence is a hidden stat that, if the player has a lot of high quality items, decreases the chance of finding more high quality items. And that’s it! It’s simple, yet one of the most clever ideas in roguelike design I’ve seen - I just wish more games would do this and also implement it the other way around, to make sure the player doesn’t get too many low quality items.

 

Increasing agency

 

As we already discussed, RNG abuse happens because the player’s goals are in direct conflict with the game’s systems. The player wants to optimise their runs, but the RNG is in control of the progression and might hinder this goal. The player, obviously, doesn’t like this, and attempts to take back agency the only way they know how - by abusing the game’s RNG.

This phrasing of the problem lets us see a new approach to solving it - perhaps we can give the players different means to have agency over their runs? If they feel like they have more influence towards how their runs will go, they won’t need to resort to RNG abuse to exert control.

This one’s interesting because it’s actually rather vague and you can pull it off in many different ways. However, if you do use this method, there is one thing that you definitely should keep in mind - there is such a thing as “too much” agency, especially in roguelikes. My advice is: let the player have some control, but keep the unpredictable nature of the genre.

So, for example, Hades does this in a fairly straightforward way. Whenever you receive an upgrade or boon that strengthens your character, RNG picks three options for you and you get to choose one of them. This means the game is still unpredictable and exciting - you don’t know which three options the RNG will choose - but you are given enough agency over how you progress that there’s never really any need to abuse RNG.

Hades often lets you choose one of three things picked randomly from a wider pool, thus increasing agency. Hades is also really, really good. Go play it.

Nuclear Throne gives you a bit of agency by letting you keep “golden weapons” between runs, giving you some personalisation. For example, I love crossbows, so I always carry a golden crossbow between runs.

Risk of Rain 2 is a little trickier. In it, you can find 3D printers that choose one of your items at random and give you another item in exchange - you know what item you’ll get, you don’t know what you’ll lose. Furthermore, once in a while you’re able to turn items of your choice into scrap, and scrap gets prioritized in 3D printers, meaning you don’t need to risk losing more valuable stuff. This allows players to make more personalized builds and combats RNG abuse by increasing agency.

Risk of Rain 2’s scrappers let you personalise your runs - you can choose which items matter less and later exchange them for more powerful gear

 

Fight fire with fire

 

Now, hold on a second there, this might seem a little counter-intuitive, but yes, we can combat RNG abuse by having more RNG.

It’s a strange choice, for sure, but let me give you a little example to illustrate. Let’s say we roll a single die, and we visualise the different probabilities. It’s pretty flat and simple, with each of the probabilities being at 1/6.

Here, I made a graph! The x axis is the different numbers you could get on the die, and the y axis is the probability of that happening - they’re all at 1/6.

Now, if we roll two dice and take their sum, we can see that the probability is higher towards the middle values, and very high or very low values are less common.

The chance of landing in that 6-8 region is almost 50%, but the chance of landing on the extreme ends is just above 5%. This is part of why many table-tops will use 2d6 instead of 1d12 for many rolls, even though the range of possible values is very similar.

Combinatorics tells us that if we roll more dice, the probability curve gets a pointier peak in the middle. And this is super important - the more dice we roll, the less likely it becomes that we get extreme scenarios.

Here’s probability distribution for 10 dice - results close to 10 or 60 are so rare they’re almost impossible.

And, strange as it may seem, this approach can work in roguelikes, too, in a bizarre fashion. Essentially, if we have more RNG, especially more items, then the probability of extremely powerful or extremely unlucky runs will be smaller.

This is a very strange, although a very fresh approach to the problem. I’ve only seen one franchise pull something like this off - perhaps not intentionally for this purpose - and it’s the Risk of Rain games. Whereas most roguelikes will go with 5-10 stages and something around 3-5 items per stage, the Risk of Rain games will have around 10-20 items per stage. The flow of progression is so rapid that you won’t really have a reason to ever reset your runs. There’s the fact that extremely good or extremely bad runs hardly ever happen - and why even abuse RNG when there’s a heap of more items just seconds away?

As soon as you get past the first few stages, Risk of Rain showers you with a stream of items, so there’s no reason to abuse RNG

 

Other methods

 

As we’ve seen by now, RNG abuse is a problem with quite a few solutions, it’s just up to you to choose which one works best for your game or be creative and think of something else entirely. In fact, I believe there’s many other ways you can solve this, I’m just listing all the solutions I’m aware of here. Let’s quickly go through a few more examples of how I’ve seen RNG abuse reduced.

A very straight-forward way to approach RNG abuse is by giving players rewards for choosing not to abuse RNG. Slay the Spire gives players a little bonus at the start of each run, but only if they made it past the first boss on the previous run. This is an extremely simple fix - so much so that I have pretty much nothing to say about it and so decided not to have a separate section of this article dedicated to this method.

Slay the Spire gives you a bonus at the start of each run, but only if you got to the first boss in the previous run

It should be noted though that it’s a method with drawbacks, mainly because, as with item progression, the beginning of the game might still feel like an annoying chore to the player. A less important thing to consider - it’s a very visible way to solve the problem, making your intentions as a designer very clear to the player. I personally think solutions to problems like RNG abuse work best when the player isn’t even aware of the problem being solved, when they have no clue how the designer is making the experience feel right, but it still feels right - that’s just an opinion though.

Here’s another one. Permanent progression, especially in the form of straight up becoming more powerful rather than unlocking more options, is a topic that has sparked quite a bit of debate between roguelike players. Whether that’s something you want in your roguelike is something up to you to decide, but one of the benefits it has is that it does reduce RNG abuse.

It’s helpful mainly because it shifts the player’s goals. Rather than the primary objective being the completion of a run, the primary objective becomes making permanent progress so that future runs could be completed more easily. Retrying a bunch of times until RNG gives you a good starting item doesn’t really affect the success of your new goal as much, so players abuse RNG less.

You can increase this effect further by giving players various permanent currencies that they can spend between runs. This puts additional emphasis on death and failure as being absolute requisites for progress and gets players excited to spend whatever they have earned in their runs - the success and failure of each individual run becomes almost irrelevant.

In Hades, all sorts of stuff - keys, darkness, nectars, titan blood, gemstones, diamonds, ambrosias - persists between runs and can be used for various purchases. Dying in this game feels like returning home.

A method that I haven’t ever seen used - because it risks making the game too easy and would only be applicable to a few games - is preventing RNG abuse by guaranteeing a good starting item. Really, if your players only enjoy your game if the starting item is good, maybe you should just give them what they want. Weighted RNG + feedback loops works better, but this could also be fine as long as it’s balanced accordingly.

A brute-force approach where you make players unable to abuse RNG by making resets more time consuming or annoying, such as by removing a “quick restart” option, is perhaps the clumsiest way you could try to patch the problem of RNG abuse. Not only will many players still abuse RNG through an even worse process, it also doesn’t address the actual causes of the player’s dissatisfaction and feels like more of a punishment than a fix. In many cases, trying to solve RNG abuse this way would be worse than doing nothing.


 

Even if it might be possible to come up with some completely new, wildly imaginative approaches to this problem, I think these methods should be enough to have you covered no matter what the specifics of your roguelike are. Furthermore, similar methods could be used to resolve this problem in games outside of this genre that suffer from RNG abuse. A lot of strategy games, for example, start with randomized conditions.

And, on an even broader scale, this teaches us something important about solving game design problems. On a very surface level, you might have just thought that removing the option to quickly restart would be the obvious way to solve the problem, but digging deeper and finding the root of the problem might give you new insights as to how the problem can be solved in the most satisfying way.

I wanted to end this article on some nugget of wisdom that’s relevant to the topic at hand, so I figured - what could be more fitting than a randomly generated deep quote. After all, as InspiroBot told me once I had abused its RNG a zillion times:

Madness is generated by freedom.

 

Further reading / watching:

 

(Note that most of this list is only loosely related to the topic of the article and is intended to give you something to check out if you’re interested in roguelikes and RNG. I couldn’t find any sources specifically on RNG abuse.)

https://gamedevelopment.tutsplus.com/articles/solving-player-frustration-techniques-for-random-number-generation--cms-30428 Solving Player Frustration: Techniques for Random Number Generation by Kyle Sloka-Frey

https://www.gdcvault.com/play/1024920/Board-Game-Design-Day-White White, Brown, and Pink: The Flavors of Tabletop Game Randomness by Geoff Engelstein

My friend Ryan said “Rng abuse kinda cringe ngl :/” and that is my only source

https://www.youtube.com/watch?v=F5XM2DmUdmw In Defence of Randomness by Adam Millard

https://www.youtube.com/watch?v=dwI5b-wRLic The Two Types of Random by Mark Brown

https://www.youtube.com/watch?v=H4kbJObhcHw How Games Use Feedback Loops by Mark Brown

https://www.youtube.com/watch?v=PNFURLFsd2E Does Into The Breach Really Have Perfect Information? Why RNG Matters by Adam Millard

https://www.youtube.com/watch?v=uM588ci-sMQ The Evolution of Roguelike Design - How Rogue led to FTL, Spelunky, and So Many More by Design Doc

https://digitalscholarship.unlv.edu/cgi/viewcontent.cgi?article=1025&context=grrj The Probability Distribution of the Sum of Several Dice: Slot Applications by Ashok K. Singh, Rohan J. Dalpatadu Anthony F. Lucas. (I used this source to visualise the probability distribution of 10 dice - no game design here, just mathematics)

Read more about:

2020Featured Blogs

About the Author(s)

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like