The Difficulty of Game Difficulties

Video games are the only medium that require a skill check to reach the end of a work. You can always skip to the end of a book, or skip scenes in a movie, or the annoying guitar solo of a song. In games, there is rarely a way to actually skip the bad parts or the parts you are just not able to finish. This is the gist of a comparison comedian Dara O’Briain made a long time ago and that people in games have not stopped referencing ever since.

The decision to let players skip content or enjoy an easier difficulty is not as clear-cut or as easy to implement as people might hope. It’s a mix of design, marketing, target audience, time and general purchasing attitudes. I had the weird fortune of working on games that let players pay money to effectively skip content, that let players who bought full games skip content for free and am now working in the AAA space where neither is that common.

The games I worked on that let players skip any challenge they didn’t like were Hidden Object games. For those unfamiliar, it’s a genre of point-and-click adventure games where you find items across pretty 2D scenes and try to figure out their use like you would in the old LucasArts adventure games. Occasionally, you would find a “hidden object scene”, where you would rummage through a very cluttered screen trying to find several very specific objects. Finally, there were “minigames”, or puzzles as we called them internally. These could be anything, but are generally most comparable to old survial horror game puzzles in terms of complexity and input.

The Skip/Hint feature in these games had two roles: tell you where the next item was, or if there was no item, which of your current ones you needed to use or combine. If you were in a hidden object scene, it would show you something from the list you hadn’t found yet. If you were in a puzzle, it would skip it entirely. You’re probably thinking the main reason for this is the casual target audience of the games, which were all but officially referred to as middle-aged women (alhtough all sorts of people play HO games). This is only partially true. If someone bought your HO game, you wanted to be sure they could finish it. The culture surrounding these games is its own and shares very little with the mainstream gaming audience (even though there are thousands upon thousands of HO games on the Big Fish store). One of the attitudes is genuinely “if I bought this, I should be able to see this to the end”.

Now, the Skip/Hint function is really only a band-aid solution. In an ideal world, your item interactions would slowly build up a way of thinking for the player. Then the puzzles would capitalize on that way of thinking into a seamless experience that blends with the narrative. Sadly, HO games have a development cycle of 5-8 months and I have worked on 10 of them in the span of 6 months. It is impossible to design that many games at such a high quality. That means that there will be item interactions that might not be obvious. There will be puzzles that just block the player’s progress and force them to use the hint system. Especially with something as hard to gauge the difficulty of as logic puzzles.

However, even with the Skip/Hint ability, you did not get a freebie in how you designed the game. It was there in case of an oversight or edge cases where a particular player had a bad day or just missed something. Whenever you clicked on a possible in-game interaction, there was flavor text with a hint of what you should do. For example, if you tried to open a door, instead of saying “This door is stuck” you could say “This door is rusted shut” and the immediate response from the player would be “It’s rusty, I need to oil it up”. Little subtle sparkles would indicate items you could pick up in a busy screen, while puzzles were not allowed to require fast reflexes or arcade-like elements. You also weren’t allowed to clutter the inventory with too many items at any time in the game. On top of all of this, we also made an effort to make our game color-blind friendly, avoiding to rely on colors alone in puzzles. Another thing HO games did were custom difficulties, which always impressed me. You could turn off the skip functions, the object sparkles, add penalties to just randomly clicking everywhere on a hidden object scene, all sorts of individual settings were there outside of the standard “Easy/Medium/Hard” modes.

Did the Skip function harm our games? Not really. Looking at YouTube and stream playthroughs of our games showed that people avoided using them unless they really had no other choice. People bought the game and tried to play them as we intended. When they couldn’t, they bypassed the content blocking them.

Now, how can this be applied to our standard-issue mainstream AAA/Indie Dark Souls game? It’s actually very difficult and nowhere near a universal solution. First off, you have to keep in mind that HO games are very linear and there is a very specific order of things. As soon as you were to try this in an open world game, it would get more complicated. Let’s say you are playing a GTA-styled sandbox game with RPG progression. If the player were to click the “Hint” button to see where to go, good design would dictate you considered this:

  • Does the player have a main quest?
  • What stage of the main quest are they on?
  • Are they high enough level for the next stage?
  • Do they have particular items?
  • How far is the next stage of the quest?
  • Are there any side-quests nearby?
  • Same qualification questions for the side-quest
  • Are there any points of interest nearby?
  • Same qualification questions for the points of interest
  • Tell the player where to go

This is why most open world games rely on proximity markers, but if you’re not equipped to deal with whatever you encounter, you’ll only learn by failing that you have to go back and level/gear up.

Difficulty settings also get really janky with many games for the simple reason that not every game scales well with difficulty. If a game has a timer, at some point, scaling that timer down and up will break. Scaling it up past a certain point will stop having any impact, because the difference between 20 and 30 minutes in a 10 minute level doesn’t mean anything. We like to associate difficulty with numbers: more or less enemies, more or less damage, more or less health, more or less time. If you’ve ever played a Souls game, just ask yourself what you’d rather have: one big boss or two medium bosses at the same time? There is a reason the two big breaking points for many people in the first Dark Souls game are both boss fights with two simultaneous bosses. And let’s not get into resource management, like ammo scarcity, how many heals the player has access to and so on.

You are already focusing on shipping a game that is fine-tuned for that one difficulty that you label as “Recommended” when a player selects New Game. That is the difficulty the most work went into, because every additional difficulty setting requires a design pass and thorough testing to make it feel right. And then you also have to make sure that if a player changes this difficulty at any point in the game, it scales well with whatever their current unlocks/stats are.

Of course, balancing difficulty and having many different and well-made options for it aren’t a universal requirement. Some games simply don’t focus on difficulty or don’t use it as a selling point. This isn’t really the difference between whether it’s a narrative-focused or action-focused game. Action games can be easy and narrative games can have mind-bending puzzles. Really, the only person who gets to decide how important difficulty is in the game is the person who made it. Then it’s their job to decide whether their high difficulty is scalable or locked into a single setting. This doesn’t make a game immune to criticism, everyone should be able to review, comment on or criticize a title based on whatever standards they choose. That is the consumer-driven world we live in.

But video games are like many things: they are like books, like movies, like music, like sports, like activities, like therapy, like food, like cars. They are also like none of those things either. A book will never physically stop you from reading its words, but it will be technical and archaic enough for you to not be able to parse together the meaning of those words (like, not interpretation, but actual meaning). Movies won’t stop you from skipping certain scenes, but you might not understand later scenes because of it. Music won’t stop you from skipping the chorus, but you won’t always be able to turn off the vocals or drums or any other instrument you don’t like. Sports won’t stop you from participating, but you won’t get a medal for losing (usually). Signing up for mountain-climbing won’t stop you from getting tired mid-way, but they don’t guarantee an elevator to the top either. I hope my dislike for these analogies is coming across.

If we accept that a focus of a game can be the narrative, the characters and all these other aspects that don’t require physical skill, we need to accept that there are games that have a different focus and a barrier to entry. Interpreting the motivations of characters and motifs of a story are important parts of enjoying certain games, and make no mistake, doing this effectively is a skill in its own right. So is being able to beat Hotline Miami or being good at Quake. Yes, if you can’t interpret a game, you can read up on it after finishing the game, but the same way if you can’t finish a game, you can watch someone finish it for you.

At the end of the day, skipping content or being able to make it easier is not necessary. Yes, it makes your game available to more players, but if it’s not an experience you want your players to have, then letting them finish the game like that and disliking it might be harmful to your game as well. What parts of a game you bought you own or are entitled to is a massive question with no clear answer, especially in the age of the Internet. One thing that isn’t as nebulous though is that not every game is made for you, and if the new hotness isn’t something you can enjoy, eventually something will come up that you will be able to enjoy. Or heck, there probably already is.


Designing VIPER Sniper (DooM SnapMap)

SnapMap’s three most notorious limitations at the time of writing are the demon limit (you can have around 12 in your level at a time), the player limit (only 4 players) and the equipment limit (two equipped weapons at a time). Only the developers know why these and other minor limitations are in place, but like I mentioned in my previous article, I like designing within constraints.

Back in the day, I played a lot of Champions Online (Steam shows 3321 hours total clocked). When the game introduced map-wide Team Duels, I started brainstorming a bit over what could be done with it. After re-arranging some powers, getting some very expensive legacy gear and finding a group, I had my first opportunity to try VIPER Sniper. Five super heroes search for a sniper that’s stealthed and try and take him down. The stealthed sniper, a one-man team, would try and take out the heroes one by one, which was possible because the build was so broken it could one-shot tanks. The general rhythm was, hide, wait for a hero, take him out, run away and hide again. The mode was really fun, we added a bunch of rules to make it more interesting, and it lasted until Stealth was revamped so that it made the mode no longer possible.


Fast forward today, I wanted to make this mode in SnapMap.

Before opening the editor, my plan was as follows:

  • 3 VS 1 gameplay
  • The Sniper can turn invisible
  • The Sniper turns visible for a limited time when shooting
  • The Sniper’s shot is a one-hit-kill
  • The Sniper turns visible for a limited time when trying to achieve his capture point objective

The first deviation from the original idea was already there in the “SnapMap concept” phase. There were no capture points in the Champions version, but when brainstorming how to port this idea over to a new system, I realized that the Sniper needed some goal to keep him moving and forcing him to expose himself. The main inspiration for this comes from the board game “Scotland Yard”, in which two or more players chased Mr. X across London, who was hidden and revealed himself only on certain turns.


Now, we come to the first hurdle of the design. There’s no invisibility. I assumed there would be a power-up like in the multiplayer mode or at least some sort of toggle for when a player was visible and when not. Obviously, this could have been the point where I scrapped the idea, but I tried to experiment with other options. Speed was something you could modify, so I experimented with making the Sniper’s speed 300% (the maximum possible speed and also the equivalent of a Haste powerup). I then expanded the original size of the map, which meant that the Sniper was practically invisible compared to his slower opponents.

Since the Sniper was “practically” and not “actually” invisible, there needed to be a way to make him “practically visible”. Slowing him down wouldn’t do much in that regard, so instead I made it so that a marker visible to all players (”Point of Interest” in SnapMap) would be visible whenever the Sniper was capturing an objective or shooting. All of a sudden, I was achieving the same gameplay effect of my original idea without a core feature (the invisibility).

After that was settled, it was time to look into the actual nature of the capture points. SnapMap has a built-in capture point node, but it works similarly to Team Fortress 2 or Overwatch; if you leave the point, it slowly resets its progress. This wasn’t good for me, since I wanted the Sniper to never lose progress and I wanted the Sniper to stay where he was when he committed to capturing a point. After all, if he could just bail whenever he wanted to, the opposing team could never catch up to him. I solved this by placing a node that could be harvested four times before it completely vanished. Each “harvest” would take 10 seconds, during which the Sniper was unable to move. What effectively happens is that the Sniper’s speed becomes 0%, so he can still crouch, jump and shoot, but not actually move away. This worked for me, though, since I did want the Sniper to be able to defend himself. During the entirety of the harvest, the opposing team would see a marker directing them to the Sniper’s location, so the Sniper had to be smart about when and where he was going to harvest a point.


One issue I predicted might happen was players eventually learning the points’ locations by heart. This also meant that each point had to be carefully balanced, to not put either team at a severe disadvantage. This kind of balancing would require much more testing than I had the luxury of, so my slightly dirty solution was adding multiple points for each section of the map and having the game select one at random for each section. This meant that there were points both advantageous and disadvantageous to the Sniper that could come up, and that players couldn’t effectively camp a specific point as soon as the map started.

Finally, the points needed an audio-visual makeover, since they were just big white cylinders. I made the cylinders invisible (but kept them to determine harvesting range), added a source of non-damaging plasma energy (the logic was that the Sniper was harvesting demonic leylines or something like that) and added a combination of three VEGA lines that notified the other team that an intruder was detected. Initially, there were 5 areas that had one capture point each, but the points were removed from one area because it was too close to the enemy team spawn. So, the Sniper would get 50 points per harvest, 200 total per point before depleted, 800 total in a map. After reaching 800, the Sniper wins. Since this was a multiplayer mode, I was less concerned with scoring than I was with Hot Potato’s, so I just used it to keep track of progress. Another change that happened pretty early on was marking the location of the energy points for the Sniper at all times. Due to the random nature of the points and since there was no on-screen indicator how close a point was to being depleted, this was information the Sniper needed at all times. I opted not to mark it for the opposing team, because I didn’t want to clutter their screen.


The Sniper couldn’t rely on his speed alone, and I still wanted him to have a super-powered weapon. To emulate Champions Online’s sniping, I wanted to put a cooldown between shots. The Sniper uses the game’s Vortex Rifle, but only with one bullet. After shooting, the Sniper needs 2 seconds before he gets his ammo back (this was initially 8 seconds, but I realized it was too long after testing). However, if the sniper kills an enemy, he gets his ammo back immediately (allowing for consecutive shots for skilled players). Because of the absolutely mad damage boost the Sniper had, the Vortex Rifle essentially became a Quake railgun. Another weapon the Sniper had in his arsenal was a Tesla Grenade. It was meant as a back-up weapon to punish the opposing team if they try and rush the sniper together. However, since it’s on cooldown, the Sniper can’t spam it. An unforeseen side-effect was the Sniper’s melee attack. Since damage modifiers are player-specific and not weapon specific, the Sniper’s melee attack was way too powerful. To counter this, I eventually fiddled with some of the nodes and made the Sniper’s damage change back to 100% for half a second whenever using a melee attack, then change back half a second later (how long it takes for the animation to end). You can imagine my surprise when this actually worked on the first try.

The Sniper’s survivability was also a big concern. Since the Sniper only had one life, I set his starting life to 999. With no healing items on the map, this meant that the game became an endurance match for the Sniper. However, I wanted to avoid the obvious tactic of “rush in, damage the sniper, die, repeat” for the opposing team. To counter this, I put regenerating armor in place. The sniper has 150 armor, and if he takes no damage for 6 seconds, it replenishes completely. This meant that the enemy team was forced to use different strategies to tear down the Sniper’s defenses and keep them from coming back up if they wanted to win. It also made the Sniper feel more like a force of nature at the start of a match and a panicked animal near the end of it. After all, if you have a thousand health protected by armor, you’ll be a tad reckless; if you have only 20 health and you are solely relying on your armor, you’ll be more frightened.

The enemy team, which I call “Security” in-game, is slightly more down to earth in terms of abilities, but they still have some very interesting options. Their equipment slot is reserved for a grenade that turns into a wall. The wall is strong enough to block one sniper shot or to even limit the Sniper’s movement. While its use in matches was limited to making an approach the Sniper was covering safer, I feel it has a high skill ceiling and that co-ordinated use of it would be a nightmare for the Sniper. The Security team also had the advantage of using the built-in teleporters on the map to help them reach the other end of the complex quickly, but still leaving enough time for the Sniper to recover after a team-wipe.

In terms of weapons security used, this was probably the most difficult thing to get right. To put it simply, the DPS of three people in DOOM is really, really high. You also always have to ask yourself “what if all three players used this weapon together?” This immediately eliminated weapons like the Super Shotgun and the Chaingun. After a bit more advanced testing, the same thing happened to the Rocket Launcher and the Micro-Missiles mod for the Assault Rifle. In the end, the four weapons we ended up with were the Combat Shotgun (burst mod), Plasma Rifle (stun mod), Hellshot and Assault Rifle (scope mod).


The Combat Shotgun offered close range burst damage that was still within reason. The burst shot from it would require some charge-up, which made it risky to use when approaching the Sniper. The Plasma Rifle probably has the highest DPS on full auto, but requires taking advantage of the Sniper’s mistake to make use of it, while the stun alt-fire is difficult to land, but does 50 damage. The Assault Rifle is good for long range and its main use is to keep chipping down at the Sniper from far away to stop his armor from refreshing. The most interesting weapon was, ironically, the most boring one for me in regular Multiplayer – the Hellshot. Its ability to do damage-over-time after hitting the Sniper proved to be extremely useful as a support weapon.

In the end, I was left with two issues I was unable to fix for the map. The first one was the inability to turn off Glory Kills. It’s a major issue because the Glory Kill window is % based, so the Sniper may have 200+ health but still be Glory Killable. It also generally doesn’t fit with how I want the mode to play, but I’m stuck with it sadly. The second issue was environmental death. It is very anti-climatic when the Sniper dies to lava or falls in a pit. Almost every map section I used had one or the other, because their layout was otherwise good. This a design issue though, not a SnapMap issue. One of the ideas that I considered was teleporting the Sniper if he dies to environmental hazards. It wouldn’t be difficult to make such an exception and just store the Sniper’s last known health before respawning them, but it’s also prone to abuse. If a sniper is in a pinch, or needs to get somewhere fast, they essentially get a free teleport. So, in the end, I decided to go with “maybe an anti-climatic ending” instead of an unfair mechanic. Actually, what I’ve learned is that this kind of game mode relies heavily on the big bad, aka the Sniper. The mode only shines if the Sniper is playing somewhat well.

Below is a video with gameplay footage from both perspectives. I’d like to thank Lolo De Puzlo, RoryTCH, Noko, Festivore and Pullahoko for helping me test and balance the map.

If VIPER Sniper sounds fun to you, grab three friends and try it out. The code is R62TDLNG.