Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kyh/vibedgames --skill game-feelgit clone --depth 1 https://github.com/kyh/vibedgamesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kyh/vibedgames/game-feel)<a href="https://agentmods.dev/skills/kyh/vibedgames/game-feel"><img src="https://agentmods.dev/badge/skills/kyh/vibedgames/game-feel/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kyh/vibedgames/game-feel"><img src="https://agentmods.dev/badge/skills/kyh/vibedgames/game-feel.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00149 | $0.02298 |
| Opus 5 | $0.00075 | $0.01149 |
| Sonnet 5 | $0.00030 | $0.00460 |
| Haiku 4.5 | $0.00015 | $0.00230 |
Grade A, and why
game-feel scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Game feel: the numbers
Game feel = real-time control + simulated space + polish (Swink). The polish amplifies the simulation but never lies about it: if the screen shakes, something must have hit. Small tweaks compound — Vlambeer's flat shooter becomes Nuclear Throne via ~30 individually-invisible tricks. Apply them in passes, then play it: feel is tuned in motion, never designed on paper.
All frame counts assume 60fps — which means physics must be
delta-time-based. Per-frame integration (x += vx) runs 2× fast on a 120Hz
display; this is the single most common feel bug in browser games. Multiply
all motion by dt, and convert the frame windows below to ms when your loop
isn't fixed-step.
Input forgiveness (the invisible half of "tight controls")
Fudge everything slightly in the player's favor — players read forgiveness as their own skill (Celeste).
- Input buffer 4–10 frames: a jump/attack pressed slightly early fires on
the first legal frame. Celeste ~4, Smash 10. Start at 5 for precise games,
8–10 for forgiving ones. Track a
bufferedAttimestamp per action; consume inupdate(). - Coyote time 5–8 frames: jump still works after walking off a ledge
(Celeste ~5–6). Track
lastGroundedAt. - Corner correction: a jump that clips a ceiling corner by a few px gets nudged sideways; a dash that clips a ledge pops up onto it. Celeste's wall-jump reaches ~2px off the wall at 320×180 — scale to your resolution.
- Never demand frame-perfection. Any 1-frame window gets widened.
- Player hurtbox smaller than the sprite (Silksong, bullet hells): damage collision ~70–85% of the visual body. Near-misses that look like grazes should be grazes. Attack/interaction hitboxes go the other way — generous.
- Touch: enlarge hitboxes, not visuals — tappable region > sprite.
- Respond to core verbs within ~100ms total (Swink's correction cycle); never add startup delay to movement inputs.
- Continuous/tracking inputs (pointer, analog stick, webcam/hand): the forgiveness knob is smoothing-vs-latency. Lerp the controlled object toward the input (factor ~0.1–0.3 per 60fps frame) to kill jitter, but keep total lag under the ~100ms cycle; add a small dead zone, and fudge the interaction hitboxes (paddle/catch zones) larger than the visuals.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 160 lines · 149 tokens per session scan A 5700429fa337
game-feel is a skill published in the GitHub repository kyh/vibedgames (55 stars, last pushed today), licensed MIT. It adds 149 tokens to every session and 2,298 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
supabase
Use when doing ANY task involving Supabase: Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues, supabase-js, @supabase/ssr, RLS, schema migrations, CLI, MCP server. Includes security checklist.
react-three-fiber
Build declarative 3D scenes with React Three Fiber (R3F) - a React renderer for Three.js. Use when building interactive 3D experiences in React applications with component-based architecture, state management, and reusable abstractions. Ideal for product configurators, portfolios, games, data visualization, and…
framer-motion
Creates smooth animations and micro-interactions using Framer Motion including page transitions, gestures, scroll-based animations, and orchestrated sequences. Use when users request "add animation", "framer motion", "page transition", "animate component", or "micro-interactions".
remotion-best-practices
Best practices for Remotion.
remotion-best-practices
Best practices for Remotion - Video creation in React.
migrate-radix-to-base
Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects.