WizusLabs Engineering · Craft

Difficulty done right: curves, rubber-banding, and respecting the player

Difficulty is not a dial you turn up until players complain. It is a conversation the game holds with the person playing it — and, done well, it is the single most invisible reason a game feels fair, tense, and worth finishing.

By WizusLabs Engineering · 2026-07-10 · ~8 min read

Ask ten players what “difficulty” means and you will get ten answers — more enemies, less health, tighter timing, harsher punishment. But difficulty is not any single one of those things. It is the shape of the challenge over time, and how honestly the game communicates that shape to the player. A game can be brutally hard and feel deeply fair. Another can be objectively easier and feel like it is cheating you. The gap between those two experiences is craft, and almost none of it is about the raw numbers.

The curve: ramp, plateau, recovery

Picture difficulty as a line drawn across the whole length of a game, rising from left to right. A good curve is not a straight diagonal, and it is certainly not a cliff. It is a series of three repeating moves. The ramp introduces a new demand — a faster enemy, a mechanic that stacks on the last one — and asks a little more of the player than the moment before. The plateau holds that new level steady long enough for the skill to become second nature, so the player feels themselves getting good rather than merely surviving. And the recovery is the deliberate dip afterward: a breather room, an easy stretch, a power-up that briefly makes the player feel overpowered. Recovery is the most under-used move of the three, and it is what turns a curve into a rhythm instead of a grind.

Now picture the failure mode: the spike wall. The curve is flat and comfortable for an hour, then a single encounter jumps three levels of demand with no ramp and no warning. The player is not being asked to grow — they are being asked to already be someone else. Spike walls are where players quit, and the cruel part is that the designer usually cannot feel them, because the designer has played that section a thousand times. The wall is invisible from the inside. The only reliable way to find it is to watch a first-timer’s hands.

The flow channel: challenge versus skill A graph with skill on the horizontal axis and challenge on the vertical axis. A diagonal band rising from the origin is labelled the flow channel. The region above the band, where challenge outpaces skill, is labelled anxiety; the region below, where skill outpaces challenge, is labelled boredom. A well-tuned difficulty curve steps upward and stays inside the diagonal channel rather than crossing into either region. Skill → Challenge ↑ Anxiety (too hard) Boredom (too easy) flow channel
The flow channel: as a player’s skill grows along the horizontal axis, challenge must rise with it to stay inside the diagonal band. Drift above it and the game reads as anxious and unfair; drift below and it reads as boring.

The flow channel

The most useful mental model for tuning a curve is the flow channel, drawn as challenge on one axis and the player’s skill on the other. When challenge sits far above skill, the player feels anxiety — overwhelmed, thrashing, losing without understanding why. When challenge sits far below skill, the player feels boredom — going through motions they mastered an hour ago. Between those two failure states runs a diagonal band where challenge and skill rise together. That band is flow: absorbed, in the moment, losing track of time. The whole job of a difficulty curve is to keep the player inside that channel even as their skill climbs, which means the challenge has to climb with them. A curve that stays flat while the player improves does not feel “easy” in a good way; it feels abandoned.

Crucially, the channel is a band, not a razor line. Players want to touch its edges. Brushing the anxiety edge is where tension lives; dipping toward the boredom edge is the recovery beat that lets them exhale. A curve that pins the player dead-center forever is its own kind of monotony. The craft is in the oscillation: push toward the top of the channel for a set-piece, drop toward the floor for a breather, and never leave the band entirely.

Techniques, and where each one goes wrong

Dynamic difficulty adjustment (DDA). Instead of fixed levels, the game quietly watches how the player is doing and adjusts — easing off after repeated deaths, nudging up after a flawless run. Done invisibly, DDA keeps players in the flow channel without ever making them pick a menu option. Done clumsily, it becomes patronising: a player notices that the game got easier because they were losing, and the accomplishment of the eventual win evaporates. The rule of thumb is that DDA should be felt, never seen. The moment the player can perceive the hand on the dial, the magic is gone.

Rubber-banding. The racing-game special: trailing racers get a speed boost, the leader gets throttled, so the pack stays close and the finish stays tense. At its best, rubber-banding manufactures drama out of a race that would otherwise be decided in the first corner. At its worst, it feels cheap — you drive a perfect lap, build a huge lead, and the game hands the AI an impossible catch-up that no skill could have earned. The tell of bad rubber-banding is that the player’s own performance stops mattering; effort and outcome come unglued. Good rubber-banding tightens the pack but still lets a genuinely better run win. Bad rubber-banding punishes excellence to protect the illusion of a close race.

Assist options. Aim assist, slow-motion toggles, invincibility modes, damage sliders, a “skip this fight” button after enough attempts. The best modern games treat these as a spectrum the player can dial to taste, not a confession of weakness. An assist option costs the studio almost nothing and widens the audience enormously — and, importantly, it takes nothing away from the player who ignores it. The design mistake is framing assists as shameful (labels like “Baby mode” do real damage) rather than as what they are: a way to let more people finish the story you spent years building.

Telegraphing. Before a big attack, the boss winds up, the screen flashes, a sound cue fires. Telegraphing is the difference between a hit the player could not have avoided and one they should have. It is what makes a hard game legible: the information needed to survive is always on screen, and losing is the player’s failure to read it, not the game’s failure to show it. A well-telegraphed attack that kills you feels like your mistake. An un-telegraphed one that kills you feels like the game’s betrayal — and that is the exact seam where “hard” tears into “unfair.”

The death and retry loop. In any game where players die often, the loop around death matters more than the death itself. How long is the reload? How far back is the checkpoint? How fast can the player be re-attempting the thing that killed them? A game that puts you back at the boss door in two seconds can be savagely hard and stay addictive, because each failure is cheap and each attempt teaches something. A game with a thirty-second reload and a checkpoint five minutes back makes the same difficulty feel like punishment, because most of the loop is dead time spent re-treading solved ground. Short, information-rich retry loops are how brutal games stay beloved.

Respecting the player: hard is not the same as unfair

Here is the distinction the whole piece turns on. Hard means the game asks a lot of the player but gives them everything they need to meet the ask: clear rules, honest telegraphs, consistent behaviour, and failure that teaches. Unfair means the game withholds that — hidden rules, attacks with no tell, outcomes decided by things the player could not see or influence, punishment out of proportion to the mistake. Players will happily die a hundred times to a hard game and call it their favourite. They will die twice to an unfair one and uninstall. The emotional difference is entirely about whether the player believes the loss was theirs.

This is why difficulty is best framed as a choice, not a gate. A gate says: clear this exact challenge at this exact level or you do not see the rest of what we made. A choice says: here is the experience, here are the ways you can tune the challenge to the version of it you want, and the door is open either way. Framing difficulty as a choice is not softness — the hard mode is still there, still brutal, still the intended experience for players who want it. It simply refuses to hold the rest of the game hostage to a skill check the player never signed up for.

The accessibility of difficulty is the same idea taken seriously. Some players have slower reaction times, limited fine motor control, low vision, or simply less time to practise. A remappable control scheme, an adjustable game speed, a high-contrast mode for telegraphs, a toggle to reduce required inputs — none of these dilute the design for anyone who does not need them, and each one is the difference between a player finishing your game and a player never getting past the second hour. Accessibility settings are not a difficulty compromise; they are difficulty fairness, making sure the challenge tests the thing you meant to test and not an unrelated barrier.

Practical takeaways for a small studio

You do not need a telemetry pipeline or a live-ops team to tune difficulty well. Start by watching real first-time players in silence — no hints, no explaining — and mark every spot where they stall, sigh, or repeat a failure more than three times. Those marks are your spike walls, and they are almost never where you expected. Second, build the recovery beats in deliberately; a curve made only of ramps exhausts people, and a single easy stretch after a hard one does more for perceived fairness than any number tweak. Third, make failure cheap: short reloads, near checkpoints, instant retries. If players fail often, spend your engineering budget on the retry loop before you spend it on the challenge itself.

Fourth, telegraph everything that can kill the player, and playtest specifically for the difference between deaths that felt earned and deaths that felt stolen — ask testers which was which, because they can always tell you. Fifth, ship assist and accessibility options from the start rather than as a post-launch patch; retrofitting them is far harder than designing for them, and they are cheap when they are early. Difficulty, in the end, is a form of respect: a well-tuned curve trusts the player to grow, tells them the truth about what it is asking, and leaves the choice of how hard to make it in their hands. If you want the companion craft piece on why the same mechanic can feel alive or dead, our anatomy of game “juice” pairs naturally with this one, and the rest of the WizusLabs Engineering blog digs into the tools and pipeline behind the games we ship.

Sources

The flow channel model — the diagonal band between anxiety and boredom, where challenge and skill rise together — comes from the psychologist Mihály Csíkszentmihályi’s work on flow, most fully set out in Flow: The Psychology of Optimal Experience (Harper & Row, 1990). The application of that model to game difficulty is long-established shared vocabulary in the game design community. Beyond that single attribution, this is a craft-and-opinion piece drawn from our own hands-on practice building and tuning small games: it contains no statistics, no empirical claims, and no invented figures. The terms used throughout — difficulty curve, dynamic difficulty adjustment, rubber-banding, telegraphing, assist options — are standard design language, and everything above is offered as practical guidance rather than received law. The only real test of a difficulty curve is watching someone who has never played your game try to climb it.

Keep reading: all posts on the WizusLabs Engineering blog.

← Back to the Blog