ai-behavior-trees-util…
Build a production behavior-tree runtime (Blackboard, action/condition leaves, sequence/selector/parallel composites, decorators) and a Utility AI system…
Build a first-person shooter: move+mouse-look controller, hitscan or projectile shooting, weapons, health, and enemy AI. Use for an FPS, or tuning aim feel, time-to-kill, recoil, or spread.
$ npx -y skills add gamedev-skills/awesome-gamedev-agent-skills --skill fps-shooter --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/fps-shooterContext preview
The summary Claude sees to decide when to auto-load this skill.
Build a first-person shooter: move+mouse-look controller, hitscan or projectile shooting, weapons, health, and enemy AI. Use for an FPS, or tuning aim feel, time-to-kill, recoil, or spread.
name: fps-shooter description: > Build a first-person shooter: move+mouse-look controller, hitscan or projectile shooting, weapons, health, and enemy AI. Use for an FPS, or tuning aim feel, time-to-kill, recoil, or spread.
A playbook for first-person shooters — the look/move controller, the shooting model, weapon feel, and combat. This is a **compositional** skill: it wires a 3D controller, input, and AI into a shooter. It does not re-teach 3D nodes or raycasts; it defines the shooting model and the feel knobs (TTK, recoil, spread) that decide whether the guns feel good.
tactical FPS, PvE shooter, boomer-shooter.
**When *not* to use:** third-person/2D shooting → reuse the shooting model here but build the camera/controller from the relevant genre. Wave survival with towers → `tower-defense`. For the camera/character body itself, use `godot-3d-essentials` / `unreal-cpp-gameplay`.
**Scan → acquire a target → aim and fire → confirm the kill (feedback) → reposition / reload / advance.** The whole experience rests on the *aim-and-fire* micro-loop feeling crisp: responsive look, clear hit feedback, and a death that reads instantly.
1. **First-person controller** — move (WASD/stick) + mouse/stick look, gravity, jump/crouch. 2. **Camera** — eye-height view, configurable FOV and sensitivity, recoil kick. 3. **Shooting model** — hitscan raycast and/or projectile spawn; one impact path for feedback. 4. **Weapons + ammo** — damage, fire rate, magazine, reload, switching. 5. **Health + damage** — HP, hit/headshot multipliers, death; player and enemy share the model. 6. **Enemy AI** — perceive → alert → attack → search; cover and reaction delays (`game-ai`). 7. **Feedback** — hitmarkers, impact decals/particles, hit sounds, screen shake, kill confirms. 8. **Objectives** — what you do besides shoot: clear, capture, survive, escort.
| Knob | Effect | Sane default | |------|--------|--------------| | Time-to-kill (TTK) | lethality, forgiveness | Tune dmg × fire-rate × HP together (refs). | | Hitscan vs projectile | aim skill type | Hitscan = flick; projectile = lead/dodge. | | Damage falloff | range limiting | Full to ~20 m, floor by ~60 m. | | Headshot multiplier | skill reward | ~1.5–2.0×. | | Recoil pattern | learnable kick | Fixed pattern > pure random. | | Spread (bloom) | suppress laser-accuracy | First shot accurate; grows while firing. | | Fire rate / magazine / reload | rhythm, downtime | Reload = vulnerability window. | | Mouse sensitivity / FOV | comfort, readability | Always expose both as options. | | Aim assist (pad) | controller parity | Magnetism/slowdown near targets. |
# Pseudocode. Cast from the camera; first hit takes damage scaled by range + headshot.
direction = apply_spread(camera.forward, current_spread)
hit = raycast(camera.world_position, direction, max_dist=RANGE, mask=SHOOTABLE)
if hit:
dmg = base_damage * falloff(hit.distance)
if hit.is_head: dmg *= HEADSHOT_MULT
hit.actor.take_damage(dmg)
spawn_impact_fx(hit.point, hit.normal) # decal + sound + hitmarker# Pseudocode. Spawn a moving body; it deals damage on its own collision. p = spawn(projectile_scene, at=muzzle.world_position) p.velocity = camera.forward * PROJECTILE_SPEED p.on_hit = lambda other, point: (other.take_damage(base_damage), explode_fx(point)) p.lifetime = RANGE / PROJECTILE_SPEED # despawn so shots don't live forever
# Pseudocode. TTK falls out of HP, per-shot damage, and fire rate — tune as one system. shots_to_kill = ceil(target_hp / damage_per_shot) ttk_seconds = (shots_to_kill - 1) / fire_rate_per_second # first shot at t=0
be driven by raw mouse delta; movement integration uses `dt` (see `physics-tuning`).
pattern; keep the first shot accurate.
a distinct kill confirm.
fire rate, and HP as one system (Pattern 3).
server-side; use lag compensation (refs) and defer netcode to the engine multiplayer skill.
<img src="docs/assets/banner.png" width="820" alt="awesome-gamedev-agent-skills — game-dev skills for AI coding agents.
Repo: gamedev-skills/awesome-gamedev-agent-skills
Build a production behavior-tree runtime (Blackboard, action/condition leaves, sequence/selector/parallel composites, decorators) and a Utility AI system…
Implement game audio practice — bus/mixer architecture and gain in decibels, ducking (sidechain), adaptive/dynamic music via layering and re-sequencing, SFX…
Build game cameras that feel good — 2D follow with a deadzone, look-ahead, smoothing, and level-bounds clamping; 3D third-person orbit with collision and…
Plan, generate, source, normalize, and validate cohesive visual game assets. Use for art direction, style bibles, sprites, tilesets, backgrounds, UI art,…
Build branching dialogue and narrative — a node/choice graph with conditions, variables, and localization hooks — and choose between authoring tools Ink and…
Design NPC and enemy decision-making with finite state machines, behavior trees, steering behaviors, and A* pathfinding — engine-neutral algorithms that pair…