- Home
- Skills
- Game Development
- Game Feel Pass
More screenshots
Works with the AI Agents you already use
Game Feel Pass
Add screen shake, hit-stop, particles, squash and stretch, easing and sound cues to your game, with reduce-motion and screen-shake settings built in and a before-and-after checklist.
$5
Game Feel Pass
Example session with this skill installed
Show me what a game feel pass does.
- Read your context and instructions
- Compiled the game feel pass
I'll load the game-feel-pass skill to see what it does.
I'll run the scanner on the "before" demo and read the pattern reference and checklist template.
A game feel pass on the Coin Hopper demo
1. Try it yourself. Open these two files in a browser, side by side. They're the same small game, and only the second one has juice and a comfort-settings panel.
.claude/skills/game-feel-pass/assets/demo/before.html.claude/skills/game-feel-pass/assets/demo/after.html
2. What the scanner found in before.html. It's a read-only pattern search, so it misses events with unusual names and flags some lines that aren't events. Counts: jump 5, landing 2, collision 1, pickup 1, death 1.
Some of the hits are real events and some aren't:
| Line | Event | Verdict |
|---|---|---|
| 37 | jump | Real. player.vy = -11 is where the jump happens. |
| 35, 84, 86, 87 | jump | Duplicates. These are the function definition, the key and pointer handlers, and a debug hook. |
| 49 | landing | Real. This is where the player snaps back to the ground. |
| 31 | landing | Not an event. It's the player's initial position. |
| 40 | collision | Not an event. It's the overlap() helper, and the actual hits are lines 56 and 60. |
| 56 | pickup | Real. game.score += 1 is the coin pickup. |
| 60 | death | Real. This sets game.state = "over". |
So there are four real moments: jump, landing, pickup and death. Tell me if you think it missed any.
3. Effects per event. These come from the skill's strength table.
| Event | Patterns | Strength |
|---|---|---|
| jump (37) | squash-stretch, sound-cue | stretch 0.8 × 1.25, rising tone |
| landing (49) | squash-stretch, screen-shake | squash 1.25 × 0.75, shake 0.15 |
| pickup (56) | hit-stop, particles, score-pop, sound-cue | 2 frames, 12 particles, no shake |
| death (60) | hit-stop, screen-shake, particles, sound-cue | 8 frames, shake 0.8, 24 particles |
Shake is deliberately small for a landing and biggest for death. If everything shakes, nothing stands out.
Here is one excerpt from references/patterns-html5.md. Screen shake uses "trauma", where each event adds some, the offset grows with trauma squared, and trauma decays every frame:
function addShake(amount) {
var strength = settings.reduceMotion ? 0 : settings.shake; // 0 = off
if (strength <= 0) return;
trauma = Math.min(1, trauma + amount * strength);
}
function shakeOffset() {
var t = trauma * trauma, max = 10;
trauma = Math.max(0, trauma - 0.04);
return { x: (Math.random() * 2 - 1) * max * t, y: (Math.random() * 2 - 1) * max * t };
}
The score and menus are drawn after the transform is reset, so text never shakes. Only drawing changes. Hitboxes, speeds and jump values stay the same.
4. Filled checklist. The "After" entries below restate what the skill documents. I haven't opened after.html or re-run its tests in this session.
| Event (file:line) | Before | After: patterns | Played after? |
|---|---|---|---|
jump (before.html:37) | none | squash-stretch, sound-cue | Not checked |
landing (:49) | none | squash-stretch, screen-shake | Not checked |
pickup (:56) | none | hit-stop, particles, score-pop, sound-cue | Not checked |
death (:60) | none | hit-stop, screen-shake, particles, sound-cue | Not checked |
| Comfort setting | Before | After |
|---|---|---|
| Reduce motion setting | No | Yes (checkbox) |
Starts from the browser's prefers-reduced-motion | No | Yes |
| Reduce motion turns off shake, squash and score pop | n/a | Yes, per skill docs |
| Shake slider (0 % is off) | No | Yes |
| Sound on/off | No | Yes |
| Settings saved between sessions | No | Yes (localStorage) |
| No flashes over 3 per second | n/a | No flashes added |
Not checked:
- How any of it feels, since only someone playing can judge that.
- Whether the strengths are right for this game.
- Whether the gameplay is unchanged. The skill reports that headless-Chromium tests confirmed it before release, but those tests aren't in the package and I haven't re-run them.
The settings make the effects switchable. They don't make the game accessible or WCAG-compliant by themselves.
5. Want this on your game? Tell me:
- which engine you use,
- where the code is,
- which moments matter most,
- how strong you want the effects, and
- whether I should edit your files or just show a diff.
Or say "skip" and I'll use the defaults, which show a diff only. The HTML5 patterns are tested. The Phaser and Godot ones are untested sketches, so you'd need to check their calls against your engine version's docs.
Connects securely to your tools. The creator never sees your data.
About this skill
Use when your game works but feels flat, and you want impacts, jumps and pickups to feel responsive without changing how the game plays. A read-only script finds candidate events in your code, each event gets effects scaled to how much it matters behind a reduce-motion setting, a screen-shake slider and a sound switch, and the HTML5 canvas patterns run in a bundled before-and-after demo game while the Phaser and Godot patterns are untested sketches.
Do not use when you need art, animation or audio assets made, or proof that a game meets accessibility standards.
Requires: Python 3.9+ (standard library only) for the scanner. A web browser to open the demo game. No internet access needed.
The Phaser and Godot patterns are untested sketches; only the HTML5 canvas patterns run in the bundled demo. Does not make art, animation or audio assets, and does not prove that a game meets accessibility standards.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed 11 days ago
Requires