About maximizing-game-feel
A skill for developers refining the response and readability of a working action game. It maps effects to events and emphasizes preserving mechanics and validating changes in play.
Key features
- 01Inspect entities, collision bounds, and feedback
- 02Choose presentation to fit the game's tone
- 03Match effects to gameplay events
- 04Separate visual presentation from mechanics
- 05Implement by impact and validate in play
Use cases
- 01Clarify hits, landings, and reward feedback
- 02Tune trails and afterimages for fast motion
- 03Prevent effects from misrepresenting collision bounds
- 04Check that presentation changes preserve game rules
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ abagames/ agentic-gamedev-skills --skill maximizing-game-feelAfter installing, type/maximizing-game-feelin Claude Code to confirm it loaded.
Bundled filesreferences/technique-catalog.md
Details
From the project READMEImprove an already-working action game's response and readability. Consider every important object category, but use only role- and event-justified effects.
Workflow
1. Establish the baseline
Inspect entities, collision bounds, render hierarchy, feedback helpers, performance constraints, and visual direction. Name weak moments before choosing techniques.
For a substantial project, record register, weak moments, effect budgets, and validation thresholds in FEEL_TUNING.md; for a one-file game, use a short README or source-header note. Documentation must stay lighter than the implementation.
2. Choose the expressive register
Infer tone from title, objects, shapes, palette, and existing direction. Follow an existing directing-game-visuals artifact.
| Register | Prefer | Avoid |
|---|---|---|
| Character/playful | pronounced squash, eyes, lively overshoot, particles | effects that obscure small characters |
| Abstract/minimal | tilt, trails, light pulses, restrained particles | faces and cartoon deformation |
| Serious/tense | weighty impact, restrained deformation, short camera kick | bouncy or noisy feedback |
When uncertain, be restrained; motion and light generalize better than faces/bounce.
3. Map events to a small feedback vocabulary
For each important event across players, enemies, movable/fixed hazards, projectiles, and rewards, choose a justified effect or explicitly none.
Keep distinct vocabularies:
- danger: sharp silhouettes, alert flashes, sparks, short hard impacts;
- reward: glints, radial particles, softer pops, bright confirmation;
- state change: localized pulse, transition motif, controlled camera response;
- near miss: satisfying but visibly weaker than an actual reward. Add one only when its trigger corresponds to a threat the player actually avoided; a proximity test that also fires when merely passing alongside, or that misses real escapes, teaches nothing and should be left out.
- cause of failure: failures with different causes look different. A loss from a rule (a quota missed, a counter filled) must not reuse the destruction effect, or it reads as being hit by nothing.
Read technique-catalog.md when choosing or implementing concrete techniques; it includes engine-specific constraints.
4. Implement presentation without corrupting mechanics
- Keep gameplay/collision authoritative; apply deformation, rotation, trails, flashes, and recoil to render-only visuals where possible. Before changing how something moves on screen, find out which position collision and pickup read; if they read the drawn position, a motion change is a rule change.
- Draw a hazard at least as large as its active hit area for as long as it can hit. An effect that grows from small while the hit area is already at full size destroys the player at a visible distance.
- Clamp every deformation and camera displacement, and return it to rest.
- Gate costly/disruptive effects by speed, charge, impact, or rarity.
- Preserve buffered input during hit stop and never move the authoritative player into danger only for visual recoil.
- Prefer small local presentation helpers over a large juice framework.
- Cap particles/trails on constrained targets and set a minimum acceptable frame rate.
5. Apply in impact-per-effort order
Apply only supported effects, in this order:
- event confirmation: hit flash, short impact particles, landing response;
- impact weight: hit stop or restrained camera kick;
- motion expression: tilt, squash/stretch, easing and anticipation;
- world consistency: give relevant enemies, hazards, projectiles, and rewards an appropriate response;
- high-speed polish: trails and afterimages;
- character expression only when register and on-screen size support it.
6. Validate in play
Compare before/after at normal speed and inspect a rendered high-feedback frame.
- Controls remain immediate and buffered input is not dropped.
- Visual bounds do not misrepresent collision bounds.
- When seeded simulated players exist, their results are identical before and after a presentation-only pass. Any difference means the pass reached the rules; find it before judging feel.
- Player, primary hazard, and reward remain readable during the busiest effect stack.
- Strongest feedback is reserved for the most important events.
- Effects return to rest without accumulation/leaks.
- Performance remains within the target budget.
If polish materially changes hazard readability or practical difficulty, rerun only reachable balance/mechanic checks—not a full telemetry sweep by default.
Reference routing
- technique-catalog.md — concrete effects and crisp-game-lib/Godot/other 2D-engine adaptations.
directing-game-visuals— reuse existing palette/hierarchy decisions; do not invoke it only to satisfy a dependency.