agentleFS
smileynetsmileynet/game-spice/skills/difficulty-design/SKILL.md

difficulty-design

Skill0 starsChanged 9 months agoMITView on GitHub

Difficulty and challenge design planning. Use when designing difficulty curves, flow state, challenge types, accessibility options, assist modes, boss encounters, dynamic difficulty, skill floor and ceiling, or planning how hard a game should be. Covers difficulty curves, flow channel, challenge variety, accessibility, recovery mechanics, boss design.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Decision rule: Start with fixed curve. Add player-driven modes only if playtesting reveals a wide skill range in your audience.

    line 21
  2. Distinctive:

    The fairness test: After each death, "Could the player have succeeded with better play?" If yes → fair.

    line 104

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Difficulty & Challenge Design

Plan challenge systems that keep players in flow. Match difficulty to your target audience and aesthetic.

Quick Reference

Difficulty Approach Selection

ApproachWhat It IsScope CostBest For
Fixed curveDesigner-tuned difficulty progressionLowLinear games, puzzle, platformer
Player-drivenPlayer chooses difficulty (easy/normal/hard)MediumAction, RPG, story-driven
Adaptive (DDA)Game adjusts difficulty dynamicallyHighCasual, accessibility-focused
Assist modeGranular toggles (Celeste model)Medium-HighAny game prioritizing accessibility

Decision rule: Start with fixed curve. Add player-driven modes only if playtesting reveals a wide skill range in your audience. DDA is rarely worth the scope cost for MLP.

"Is This Difficulty Fair?" Checklist

  • Player can learn from every failure (failure teaches, not punishes)
  • Player had the information needed to succeed before failing
  • Challenge tests a skill the game has taught
  • No single failure erases more than 2-3 minutes of progress
  • Difficulty increase comes from new challenges, not just bigger numbers

Flow State & Difficulty

The Flow Channel

Challenge
  ↑
  │  Anxiety  ╱
  │          ╱
  │         ╱  FLOW
  │        ╱  CHANNEL
  │       ╱
  │  Boredom
  └──────────────→ Skill

Players are in flow when challenge matches skill. As skill grows, challenge must grow too.

Skill floor = minimum skill needed to engage with the game at all. Lower floor = more accessible.

Skill ceiling = maximum skill the game can reward. Higher ceiling = more mastery depth.

Planning implication: Decide your floor and ceiling early. A game with a low floor AND high ceiling (Celeste, Smash Bros) requires more design investment than one with a narrow band.

Difficulty Curve Patterns

PatternShapeBest ForMLP Viable?
LinearSteady climbPuzzle games, tutorialsYes
SawtoothHard spike → breather → harder spikeAction games, roguelikesYes
ExponentialSlow start, steep late gameStrategy, RPGsYes (early portion)
Player-drivenPlayer chooses difficultyOpen world, sandboxAdds scope
Sine waveIntensity oscillates around rising trendRhythm, narrative-drivenYes

Challenge Types

TypeTestsExampleDesign Cost
KinestheticReflexes, timing, dexterityPlatforming, bullet-hell, rhythmLow (tuning values)
StrategicPlanning, resource allocationRTS, card games, tower defenseMedium (balance)
PuzzleLogic, pattern recognitionPortal, Baba Is YouMedium (level design)
KnowledgeMemory, game system masteryRPG builds, fighting game matchupsHigh (content)
SocialReading others, cooperationAmong Us, co-op puzzlesHigh (multiplayer)

Design guideline: Mix 2-3 challenge types to prevent single-note gameplay. Your primary challenge type should match your target aesthetic — a game targeting "Challenge" (MDA) needs kinesthetic or strategic depth, not just knowledge checks.

MLP guidance: Focus on one primary challenge type. Add a secondary type only if it naturally emerges from the core mechanic.

Recovery Mechanics

How a player recovers from failure shapes perceived difficulty more than the challenge itself.

Recovery TypeTime LostTensionBest For
Instant respawnSecondsLowPlatformers (Celeste, Super Meat Boy)
Checkpoint1-5 minutesMediumAction-adventure, Metroidvania
Run restart5-30 minutesHighRoguelikes, permadeath games
RewindNone (undo)LowPuzzle, strategy (Braid, Into the Breach)
Soft failVariableLow-MediumStory games (fail forward)

Difficulty Anti-Patterns

Fake difficulty = challenge that doesn't come from interesting gameplay decisions.

TypeExampleFix
Enemy spam50 enemies where 5 would doFewer, smarter enemies
Unclear feedbackPlayer doesn't know what killed themClear death cause indicators
Unfair cameraCan't see threats before they hitCamera shows relevant threats
Input lagControls feel sluggishResponsive, tight controls
Hidden informationRequired knowledge never providedTeach before testing
RNG deathsUnavoidable random damageEnsure every death is avoidable

The fairness test: After each death, "Could the player have succeeded with better play?" If yes → fair. If no → fake difficulty.

Other anti-patterns: Developer blind spot (you're too good at your own game), number inflation (prefer relatable HP ranges), difficulty as content padding (grind walls), punishing experimentation (reduce cost of trying new strategies).

Deep Dives

  • (see difficulty-design/difficulty-modes.md for Traditional Difficulty Modes, Assist Mode Design (Celeste Model), Accessibility Planning)
  • (see difficulty-design/design-depth.md for Difficulty Curve Guidelines, Recovery Design Guidelines, Boss Design Principles)

See Also

  • design-frameworks — Flow theory context, MDA aesthetics for targeting "Challenge" (see design-frameworks)
  • playtesting — Testing for difficulty specifically, observation methodology (see playtesting)
  • scoping — Difficulty modes as a scope decision (see scoping → MLP Scoping Process)
  • content-planning — Difficulty pacing through content (see content-planning)
  • antipatterns — Premature Content and Core Loop Neglect apply to difficulty tuning (see antipatterns)
  • economy-design — Resource scarcity as difficulty lever, economy progression curves (see economy-design)
  • scenario-walkthrough — Narrate difficulty moments in Beat 4 (Rising Stakes) (see scenario-walkthrough → The 5-Beat Structure)
  • mechanics-palette — Mechanic choices that determine challenge type (see mechanics-palette)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.