KEKE STUDIO
  1. Home
  2. Blog
  3. Game Difficulty Design: How to Make Games Hard but Fair

Game Difficulty Design: How to Make Games Hard but Fair

Flow theory, dynamic difficulty, assist modes, and the cost of failure: game difficulty design principles from an indie studio, with famous examples.

#game difficulty #game design #dynamic difficulty #flow #accessibility #indie development

"This game is too hard" and "It was so easy I got bored fast" are the two things developers hear most often. And it's common for both to be said about the same game. That's because difficulty isn't a matter of turning a few numbers up or down; it's about making people with different skills and expectations each feel the right amount of tension in the same game.

In this post, we lay out the concepts we use as a small indie game studio when thinking about difficulty. Starting from flow theory, we look at the elements that make up difficulty, the cost of failure, dynamic difficulty that adjusts behind the player's back, and the assist modes that have become common recently, along with real game examples. If you enjoy games, you'll come away understanding "why I want to play this game again even though it's hard"; if you want to make games, you'll learn "where to start."

The Starting Point of Difficulty: Flow Theory

When discussing difficulty in game design, one concept almost always comes up: "flow." First introduced by Hungarian-American psychologist Mihály Csíkszentmihályi in his 1975 book Beyond Boredom and Anxiety, it refers to the state in which a person is so completely absorbed in an activity that they lose track of time.

Applying flow theory to games makes the picture simple.

  • When the challenge is far higher than the player's skill, they feel anxiety and frustration.
  • When the challenge is far lower than their skill, they feel boredom.
  • When the two are roughly matched, flow occurs.

The problem is that a player's skill isn't fixed. A player in their first 10 minutes and one 10 hours in are completely different people. So a good difficulty curve doesn't rise in a straight line; it rises little by little, staying slightly ahead of the rate at which skill improves. That's why a "sawtooth" pattern is commonly used: tension rises briefly when a new element appears, a breather comes just as you get used to it, and then it climbs another step.

Five Knobs That Make Up Difficulty

"Raising the difficulty" is vague. In reality, developers have several knobs they can turn, and the felt experience changes completely depending on which one they turn.

KnobExamplesWhat the player feels
Execution difficultyNarrow platforms, fast bullet patterns, short dodge windowsDifficulty where your hands can't keep up
Decision difficultyResource allocation, unit placement, choosing prioritiesDifficulty that requires using your head
Information difficultyHidden rules, not knowing enemy patternsDifficulty that becomes easy once you know
Time pressureTime limits, swarming enemiesDifficulty with no room to think
Cost of failureStarting over, losing currencyDifficulty where you fear failing

Raising only numbers like health and attack power is the easiest approach, but also the easiest to spot. If enemies behave the same way and just take longer to go down, players tend to feel "it got boring" rather than "it got harder." Conversely, just adding one new enemy pattern, or mixing two types of the same enemy, raises felt difficulty considerably while also adding novelty.

Designing the Cost of Failure

Among games known for being hard, some keep people hooked to the end and some get deleted quickly. The difference usually comes down to "what you lose when you fail."

Celeste is a platformer demanding precise controls, and critics found it so hard they compared it to "masocore." Even so, many players felt the blame for failure was always theirs and found success hugely rewarding. Because you restart one screen at a time, a structure where dying costs only a few seconds supports that experience.

Dark Souls, on the other hand, is an example of deliberately making the cost of failure heavy. When the player dies, they return to the last bonfire and drop the souls (both experience and currency) they were carrying where they died. You can recover them by getting back to that spot, but if you die again on the way, they're lost forever. This rule makes every step tense and heightens the relief when you go back and recover them. It's also worth remembering that reactions to this game's high difficulty were divided.

To sum up, when the cost of failure is small, players experiment and learn freely. When the cost is large, tension and the sense of achievement grow, but so does player dropout. Rather than one being the right answer, what matters is choosing what fits the emotion the game wants to deliver.

Difficulty That Changes Quietly: Dynamic Difficulty Adjustment

The approach in which a game changes its own difficulty based on the player's skill is called "Dynamic Difficulty Adjustment." It's an older and more widely used technique than you might think.

  • The Crash Bandicoot series slowed down obstacles, granted extra health, and added continue points when the player died a lot. Lead designer Jason Rubin said the goal was to help weaker players while leaving the experience of skilled players untouched.
  • Resident Evil 4 (2005) used a system that rated player performance on a 1-to-10 scale and adjusted enemy behavior and damage accordingly. On Normal difficulty it starts at grade 4, drops as low as 2 if you struggle, and rises as high as 7 if you do well. Since it was barely mentioned anywhere other than the official strategy guide, most players didn't know about it.
  • The "AI Director" in Left 4 Dead (2008) looks at each player's condition and teamwork to decide the number of zombies, item placement, and where bosses appear. If players stay in one spot too long, it can send a horde to get them moving. Valve called this "procedural narrative."
  • The Mario Kart series tends to give powerful items to players who fall behind and weak items to the leader.

The pitfall of dynamic difficulty is the "rubber band effect." If AI cars in a racing game suddenly speed up when behind the player and slow down when ahead, it feels unnatural, as if they were tied together with a rubber band. The moment players notice the adjustment, they think "I didn't win because I played well," and their sense of achievement drops sharply. So it's safer to apply dynamic adjustment in less noticeable places, such as item placement, spawn order, and rest sections, rather than enemy health.

Difficulty You Choose: Assist Modes and God Mode

Recently, there's been a stronger trend toward not hiding difficulty and instead giving players direct choice.

Celeste's Assist Mode offers options to slow down the game speed, use unlimited dashes, or even become invincible. Developer Maddy Thorson reportedly first called it "Cheat Mode," but changed it to "Assist Mode" because that name felt like it was judging the player. Conversely, optional content such as strawberry collecting and B-Sides is there for those who want a harder challenge. In effect, the game opens the knob in both directions, easier and harder.

Hades divides the two directions even more clearly. Turning on "God Mode," in which the character gets a little stronger with each failure, lets struggling players reach the end of the story. Meanwhile, after defeating Hades once, you can use the "Pact of Punishment" to directly raise enemy damage, health, and numbers, and earn correspondingly greater rewards.

The lesson from both games is in naming and attitude. They don't make the easy options look like they're "for losers," and they attach rewards and pride to the hard options. It's a design that respects enjoying the same game in different ways.

Methods a Small Studio Actually Uses

Theory may sound good, but tuning difficulty on a small team ultimately comes down to iteration. Here are a few methods we use.

  1. We test the first five minutes the most. A large share of difficulty complaints come from the opening. Watching where a first-time player experiences their first failure immediately shows what to fix.
  2. We don't trust the developer's instincts. The people who made the game already know every pattern. If a developer feels something is "easy," it's usually just right or hard for most players.
  3. We record failure points. Looking at how many attempts each stage takes and where people quit reveals the "walls" where difficulty suddenly spikes.
  4. We don't put a new element and a hard combination in the same stage. New enemies are introduced first in an easy environment, then mixed into hard combinations once players are familiar with them.
  5. We leave one emergency exit. Having a tool you can use when stuck turns frustration into a "choice."

The last item is built into our games too. GRID DEFENSE: GRID WAR has a nuke for emergencies, so you can turn the tide once just before your defenses collapse. RICOSHOT: Golf Puzzle shows the predicted path the ball will bounce along, placing the center of difficulty on reading angles rather than precise hand control. Both are devices meant to preserve the feeling that "it's hard, but I can solve it with my own choices."

Final Thoughts: Good Difficulty Is Fair

When designing difficulty, the last question we check is just one: "When players lose, can they tell why they lost?" If they know the reason, they can think of what to change next time, and then the same failure becomes learning. If they don't know the reason, the same failure is just bad luck.

Being hard and being unfair are different things. Games that players willingly retry are usually hard but fair, and that fairness comes from carefully tuning the cost of failure, the disclosure of information, and the range of choices, one by one.

References

Games from KEKE STUDIO

Related reading