plugins/game-dev/skills/experience-design/SKILL.md
Engagement loop design, pacing frameworks, the Experience Triangle (mechanics + dynamics + aesthetics), emotion layering across a session, and evaluating whether choices feel meaningful. Use when designing the core loop, structuring an emotional arc across 5-30 min sessions, debugging 'feels flat' or 'feels samey' play, evaluating whether decisions matter, planning peaks and valleys of intensity, or when playtesters describe sessions as 'fine but forgettable.' Sits one level above game-design (mechanic-level) and one below game-vision (north-star-level).
npx skillsauth add rbergman/dark-matter-marketplace experience-designInstall 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, diagnosing, and improving the player experience — not the feature set. Games are systems that generate experiences; this skill helps you build better generators.
Influences: Frameworks here draw on experience engineering theory, cognitive engagement research, and systematic game balance methodology.
Use this skill when:
Every moment of gameplay is the product of three forces:
Mechanics
(what players do)
/ \
/ \
/ \
Fiction ——— Feedback
(what it means) (what players perceive)
Diagnostic: When something feels wrong, identify which vertex is weak:
| Symptom | Weak Vertex | Fix Direction | |---------|-------------|---------------| | "I don't know what to do" | Mechanics (unclear rules) | Simplify options, add tutorials | | "I don't care" | Fiction (no meaning) | Connect to stakes, add narrative weight | | "Did that work?" | Feedback (no response) | Add visual/audio/haptic confirmation | | "It's boring" | Mechanics + Fiction gap | Close the gap — make actions feel consequential | | "It's confusing" | All three misaligned | Strip back and realign around one clear experience |
Every game runs on loops. The tightest one is the core engagement loop:
Action → Feedback → Evaluation → Decision → Action ...
Core loop: move → shoot → evaluate → reposition (seconds)
Session loop: mission → rewards → loadout → next mission (minutes)
Meta loop: campaign → unlock → new content → campaign (hours/days)
Each loop should be satisfying on its own while feeding into the next.
The best moments layer multiple emotions simultaneously. Design for this:
Anti-pattern: Designing for "fun." Fun is an umbrella over dozens of specific emotions that require different design approaches.
For any mechanic or feature, evaluate:
Elegance = Emotional Payoff / (Player Attention Cost + Development Cost)
| Factor | Question | |--------|----------| | Emotional payoff | What does the player feel? How intensely? How often? | | Attention cost | How much must the player learn, remember, and track? | | Development cost | How much effort to build, tune, and maintain? |
Decision rule: If a feature scores low on elegance, either simplify it or cut it. Complexity is a budget — spend it on what matters.
A choice is meaningful when:
| Question | If "No" | |----------|---------| | Can the player understand what each option does? | Clarity problem — simplify or explain | | Do the options lead to genuinely different outcomes? | False choice — collapse or differentiate | | Does the outcome affect something the player cares about? | Stakes problem — raise consequences | | Is there a dominant option? | Balance problem — see game-balance | | Is the outcome fully predictable? | Determinism problem — add uncertainty or hidden information |
Pacing is cognitive load management across time.
Intensity
| /\ /\ /\
| / \ /\ / \/ \
| / \/ \/ \___
| /
| /
+---------------------------→ Time
Intro Rising Climax Rest
Principles:
When a mechanic works correctly but doesn't engage, run through in order:
If all seven check out and it still isn't fun: The mechanic may simply not be interesting. Consider cutting it and redirecting the complexity budget elsewhere.
Three approaches to narrative, each with different design implications:
| Mode | Control | Replayability | Design Challenge | |------|---------|---------------|------------------| | Scripted | High (author-controlled) | Low | Don't let narrative contradict mechanics | | Environmental | Medium (player-discovered) | Medium | Reward exploration without requiring it | | Emergent | Low (system-generated) | High | Build systems that produce story-worthy events |
The dissonance test: If the story says one thing and the mechanics reward another, players will follow the mechanics and resent the story. Align them or cut the conflict.
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.