plugins/game-dev/skills/progression-systems/SKILL.md
Difficulty curves, flow-channel targeting, power-curve math, unlock pacing, reward scheduling, XP/level formulas, and prestige/new-game-plus loops. Use when designing level-up or progression systems, tuning a difficulty ramp, deciding when to unlock content or abilities, implementing adaptive difficulty, choosing between linear/quadratic/exponential curves, or when players report 'too easy,' 'too hard,' 'grindy,' or 'plateaus too long.' For the psychology of why progression motivates see motivation-design; for stat balance between simultaneously-available items see game-balance.
npx skillsauth add rbergman/dark-matter-marketplace progression-systemsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Purpose: Tools for designing how players grow in power, skill, and access over time. Good progression makes every session feel rewarding. Bad progression creates grind, frustration, or trivialized content.
Influences: Frameworks here draw on systematic balance methodology (power curves, pacing math), experience engineering theory (accessibility/depth model), cognitive UX research (flow channel, cognitive pacing), and flow theory from positive psychology.
Use this skill when:
Two independent axes that progression systems must serve:
Depth (high ceiling)
|
| +-----------+
| | The Goal | ← Easy to start, deep to master
| +-----------+
|
+-------------------→ Accessibility (low floor)
These are NOT opposites. The best systems score high on both. Techniques:
| Technique | How It Works | Example | |-----------|-------------|---------| | Layered complexity | Simple surface, deep internals | Chess: easy rules, infinite strategy | | Optional complexity | Advanced systems exist but aren't required | Type matchups you can ignore if you over-level | | Skill-based progression | The player improves, not just the character | Combo execution, map knowledge, timing |
How player power grows over time. The curve shape determines how the game feels.
Power
| Exponential S-Curve (often ideal)
| / _____
| / /
| / /
| / /
| / /
| / ____/
| / /
| / /
| / ___/
|/___________/
+----------------------------------→ Time
Linear Logarithmic
/ ___________
/ /
/ /
/ /
/ /
+-------------------→ +-------------------→
| Curve | Feel | When to Use | Risk | |-------|------|-------------|------| | Linear | Consistent, predictable | Tutorial sections, first hour | Boring over long spans | | Exponential | Dramatic, accelerating | Short games, power fantasies | Unmanageable late game | | Logarithmic | Diminishing returns | Realistic simulations | Feels unrewarding as ceiling approaches | | S-Curve | Slow start → rapid middle → plateau | Most progression systems | Requires careful inflection point placement |
Players need to feel stronger even when mathematical power growth slows.
Techniques for maintaining felt power at diminishing actual power:
Template: Power Curve Spreadsheet
| Level | XP Required | Cumulative XP | Power Rating | Felt Power | New Content |
|-------|-------------|---------------|--------------|------------|-------------|
| 1 | 0 | 0 | 10 | Low | Tutorial |
| 2 | 100 | 100 | 15 | Growing | Ability A |
| 3 | 150 | 250 | 19 | Growing | |
| 4 | 225 | 475 | 22 | Moderate | Area B |
| 5 | 340 | 815 | 25 | Moderate | Ability B |
Linear scaling: xp_for_level(n) = base * n
Polynomial: xp_for_level(n) = base * n^exponent
Exponential: xp_for_level(n) = base * growth_rate^n
Practical approach:
Target a level-up every 10-30 minutes of play in the early game, stretching to 30-60 minutes in mid/late game. Work backward from intended game length to determine level count. Short games (2-5 hours) need fewer levels (10-15); long games (50+ hours) need more (50-100) but risk grind at scale.
Challenge should approximate skill level — the "flow channel" from psychology:
Challenge
| Anxiety
| /
| / FLOW CHANNEL
| / /
| / /
|/ /
| / Boredom
|/
+------------------→ Skill
If implementing dynamic difficulty adjustment (DDA):
Do:
Don't:
Good progression peels three layers of challenge:
Layer 1 (bottom): Mechanical skill (can I physically do this?)
Layer 2 (middle): Cognitive challenge (do I understand what to do?)
Layer 3 (top): Strategic depth (can I optimize my approach?)
Progression phases:
Anti-pattern: Introducing Layer 3 challenges before Layer 1 is comfortable. Don't ask for strategic thinking while the player is still fumbling with controls.
New content (mechanics, enemies, zones, abilities) should arrive at inflection points on the power curve.
Rules of thumb:
development
Initialize a new repository with standard scaffolding - git, gitignore, AGENTS.md, justfile, mise, beads, and timbers. Use when starting a new project or setting up an existing repo for Claude Code workflows.
data-ai
Activate at session start when using Agent Teams for complex multi-agent work. Establishes team lead role with delegation protocols, teammate spawning, model selection, and beads integration. You coordinate the team; teammates implement.
data-ai
Use when creating a worktree, setting up a worktree, starting feature work that needs isolation, or before executing implementation plans. Covers git worktree creation under .worktrees/, gitignore setup, beads integration, and merge guardrails.
data-ai
Activate when you are a delegated subagent (not the orchestrator). Establishes subagent protocol with terse returns, details to history/, file ownership boundaries, and escalation rules. You implement; orchestrator reviews and commits.