agents/openai.yaml
interface: display_name: "Game Feel 2D" short_description: "Tune responsive, readable 2D game feel" default_prompt: "Use $game-dev-2d-feel to improve the responsiveness and feedback of this 2D mechanic."
woliveiras/storehouse · GitHub
Use when tuning 2D controls, jumps, input buffering, hit stop, recoil, camera shake, particles, telegraphs, or moment-to-moment feedback. Do not use to change gameplay rules, UI accessibility, performance budgets, or tests.
프로젝트 폴더에서 아래 명령어를 실행하고, 설치할 에이전트를 선택하세요.
npx skills add woliveiras/storehouse --skill game-dev-2d-feel설치 명령을 직접 실행해야 적용됩니다. 지원 에이전트와 필요한 권한·라이선스는 제작자의 안내를 확인하세요.
agents/openai.yamlinterface: display_name: "Game Feel 2D" short_description: "Tune responsive, readable 2D game feel" default_prompt: "Use $game-dev-2d-feel to improve the responsiveness and feedback of this 2D mechanic."
references/feel-patterns.md# Game-feel patterns ## Input response - Distinguish pressed, held, released, buffered, and consumed input. - Add coyote time only around a clearly defined grounded transition. - Buffer actions for a bounded window and consume them once. - Define input priority when dash, attack, jump, and interaction compete. - Keep input prompts device-aware. ## Movement Tune with named values: - maximum speed; - acceleration and deceleration; - turn acceleration; - gravity, jump impulse, rise and fall multipliers; - apex assistance; - air control; - terminal velocity; - friction and slope behavior. Measure rather than guess: time to full speed, time to stop, jump height, time to apex, total airtime, and reversal time. ## Impact Layer only the signals the mechanic needs: - anticipation and active pose; - hit stop or short time dilation; - knockback and hit stun; - sprite flash or palette change; - particles and decals; - camera impulse; - audio and optional rumble. Keep damage and target selection authoritative outside this layer. ## Camera Define: - dead zone and look-ahead; - follow stiffness and damping; - room or world bounds; - zoom rules; - shake amplitude, frequency, falloff, and stacking; - behavior during cutscenes, pause, death, and teleport. For pixel art, verify integer logical transforms and rendering at supported zoom levels. ## Tuning workflow 1. Capture a baseline clip and measurements. 2. Pick a single player-visible goal. 3. Change one parameter group. 4. Compare at normal and reduced speed. 5. Test edge cases and interruptions. 6. Save named presets when comparing alternatives. ## Accessibility Offer independent controls for shake, flashes, motion blur, rumble, and repeated rapid effects. Preserve essential information through shape, timing, text, or audio alternatives.
references/godot.md# Godot game-feel integration Inspect the installed Godot version, Input Map, physics ticks, camera nodes, animation ownership, process modes, and project stretch settings. ## Patterns - Read gameplay input through named Input Map actions. - Apply physics movement in `_physics_process`. - Put squash, flash, particles, and presentation recoil on child visuals rather than collision roots. - Use `AnimationPlayer`, Tween, particles, and camera nodes according to existing project conventions. - Keep hit-stop ownership explicit; decide which nodes, timers, audio, and UI continue processing while gameplay pauses. - Restore time scale and process modes on interruption, death, scene change, and editor reload. ## Pixel-art checks Verify viewport scaling, camera smoothing, pixel snap, integer zoom, and final transforms together. Nearest filtering alone does not prevent shimmer. ## Official references - [Input handling](https://docs.godotengine.org/en/stable/tutorials/inputs/index.html) - [2D movement](https://docs.godotengine.org/en/stable/tutorials/2d/2d_movement.html) - [Animation](https://docs.godotengine.org/en/stable/tutorials/animation/index.html) - [2D](https://docs.godotengine.org/en/stable/tutorials/2d/index.html)
references/phaser.md# Phaser game-feel integration Inspect the installed Phaser version and current Scene, input, camera, tween, time, animation, and physics setup. ## Patterns - Store buffer and coyote windows in the gameplay time domain. - Use Scene clocks and tweens for presentation whose lifetime belongs to that Scene. - Keep physics velocity authoritative; apply squash, recoil visuals, and camera effects to presentation objects or containers. - Use camera effects or bounded custom trauma, with explicit stacking and cancellation. - Clean up input, animation, tween, and timer listeners on Scene shutdown. - Treat global time scale and per-Scene time scale as consequential state; restore them after hit stop. ## Pixel-art checks Keep camera position, zoom, sprite position, and display scaling compatible with the project’s pixel policy. Camera rounding cannot repair fractional CSS canvas scaling. ## Official references - [Input](https://docs.phaser.io/phaser/concepts/input) - [Cameras](https://docs.phaser.io/phaser/concepts/cameras) - [Tweens](https://docs.phaser.io/phaser/concepts/tweens) - [Time](https://docs.phaser.io/phaser/concepts/time)
SKILL.md--- name: game-dev-2d-feel description: "Use when tuning 2D controls, jumps, input buffering, hit stop, recoil, camera shake, particles, telegraphs, or moment-to-moment feedback. Do not use to change gameplay rules, UI accessibility, performance budgets, or tests." --- # Game Feel 2D Improve responsiveness and feedback without changing the intended gameplay rules accidentally. ## Establish a baseline 1. Read project instructions and identify engine version, physics model, input devices, camera, target frame rate, and accessibility settings. 2. Reproduce and measure the current mechanic. 3. Separate input latency, simulation response, animation, camera, effects, and audio. 4. Define the desired feel in measurable terms such as time to apex, stop time, buffer window, hit-stop duration, and camera settling. ## Load references - Read [feel-patterns.md](references/feel-patterns.md) for controls, motion, impact, camera, and tuning. - For Phaser, also read [phaser.md](references/phaser.md). - For Godot, also read [godot.md](references/godot.md). - If installed, compose with `$game-dev-2d-gameplay` when authoritative rules change and `$game-dev-2d-audio` for mix and playback behavior. Otherwise preserve those boundaries explicitly and complete this tuning workflow independently. ## Tune one feedback loop 1. Put tunable values in a named configuration grouped by mechanic. 2. Change one variable family at a time. 3. Preserve gameplay truth during presentation-only effects. 4. Define stacking, cancellation, pause, and slow-motion behavior. 5. Provide reduced-motion, reduced-flash, and camera-shake controls when the effect can cause discomfort. 6. Compare before and after at real speed and slow motion. ## Verify - Test multiple frame rates and input devices. - Check that hit stop does not duplicate damage or break timers. - Check that camera and pixel-art transforms remain stable. - Confirm feedback still communicates without color, sound, or shake alone where accessibility requires redundancy. - Require human playtesting for the final feel judgment. ## Guardrails - Do not hide sluggish rules under particles or camera shake. - Do not mutate collision bodies for squash and stretch. - Do not use unbounded shake, flash, rumble, or time scale. - Do not couple damage application to a cosmetic tween callback.