From dm-game
Juice checklists, feedback loop tightening, screen shake/particles/sound timing, the perception-action cycle, and 'why does this feel bad?' diagnostics. Use PROACTIVELY when implementing player actions, combat hits, collectibles, UI transitions, or any moment where the player should *feel* something.
npx claudepluginhub rbergman/dark-matter-marketplace --plugin dm-gameThis skill uses the workspace's default tool permissions.
**Purpose:** Make every player action feel responsive, satisfying, and communicative. Game feel is the difference between "it works" and "it feels great." These are the tools to close that gap.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Purpose: Make every player action feel responsive, satisfying, and communicative. Game feel is the difference between "it works" and "it feels great." These are the tools to close that gap.
Influences: Frameworks here draw on feedback layering theory, cognitive perception-action cycle research, and game design literature on "juice" and responsive design.
Use this skill proactively when:
Every player action should produce feedback on three layers, and all three must align:
| Layer | What Changes | Example |
|---|---|---|
| Mechanical | Game state updates | HP decreases, score increases, position changes |
| Audiovisual | Sensory response | Screen shake, particles, sound effect, animation |
| Emotional | Player feeling | Satisfaction, tension, surprise, power |
When layers misalign, something feels "off" even if the player can't explain it:
For feedback to register, it must pass three gates:
Action → [Perceivable?] → [Interpretable?] → [Timely?] → Registered
↓ ↓ ↓
"I didn't see it" "What happened?" "It feels laggy"
Can the player actually detect the feedback?
Does the player understand what the feedback means?
Is the feedback close enough in time to the action?
| Threshold | Feel |
|---|---|
| < 50ms | Instant — player perceives cause and effect as simultaneous |
| 50-100ms | Responsive — feels connected but has presence |
| 100-200ms | Noticeable — acceptable for weighty/heavy actions |
| > 200ms | Laggy — feels disconnected; only acceptable for explicitly slow/telegraphed actions |
Rule: Immediate visual feedback within 1-2 frames (16-33ms), even if the full animation plays out over longer. The onset must be instant.
"Juice" is small feedback amplification with outsized impact on feel. These techniques don't change game state — they change experience.
When something feels wrong, diagnose systematically:
| Player Says | Likely Layer | Start Here |
|---|---|---|
| "It's laggy" | Timing | Check input-to-visual-response latency |
| "It feels weak" | Audiovisual | Add juice (hit stop, shake, sound) |
| "It didn't register" | Perception | Increase feedback visibility/contrast |
| "It's confusing" | Interpretation | Clarify feedback language, reduce noise |
| "It's floaty" | Timing + AV | Add gravity, weight, impact frames |
| "It's clunky" | Timing | Check cancel windows, input buffering |
| "It's boring" | Emotional | Layer isn't producing the intended feeling |
Critical feedback should use 2+ channels:
Visual + Audio (minimum for any significant action)
Visual + Audio + Haptic (ideal for core loop actions)
Visual + Audio + Camera (for high-impact moments)
Relying on a single channel means some players will miss it.
Does the feedback match what actually happened?
Feedback lies erode trust faster than missing feedback.
All values below are starting points — tune through playtesting per the Numbers Policy in game-design.
| Action Type | Visual Onset | Full Duration | Sound Onset | Notes |
|---|---|---|---|---|
| Light attack | 1-2 frames | 200-400ms | On contact frame | Quick, snappy |
| Heavy attack | 3-5 frame windup | 400-800ms | On contact + windup sound | Telegraphed weight |
| Jump | 1 frame | Duration of jump | On launch | Squash on takeoff, stretch at apex |
| Land | 1-2 frames | 100-200ms | On contact | Squash, particles, camera dip |
| Collect | Instant | 200-400ms fade | On contact | Magnet + pop + counter pulse |
| Damage taken | 1 frame flash | 200-500ms | On contact | Screen edge vignette, sound, shake |
| Death | 3-5 frame slow | 500ms-2s | Dramatic sting | Time slow, camera pull, fade |