ai-behavior-trees-util…
Engine-neutral behavior tree and utility AI code for NPCs in any language: Blackboard, reactive composites, decorators and…
Designs tower defense games in any engine: lane and maze pathing, wave pacing, targeting priorities, armoured and flying counters, and the gold economy, with a wave-curve checker. Use for a Bloons- or Kingdom Rush-like, or late waves that are impossible or trivial or a dominant
Claude Code
$ npx -y skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense --agent claude-code
Codex
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense -a codex -y
Cursor
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense -a cursor -y
Gemini CLI
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense -a gemini-cli -y
GitHub Copilot
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense -a github-copilot -y
OpenCode
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense -a opencode -y
Windsurf
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill tower-defense -a windsurf -y
name: tower-defense description: > Designs tower defense games in any engine: lane and maze pathing, wave pacing, targeting priorities, armoured and flying counters, and the gold economy, with a wave-curve checker. Use for a Bloons- or Kingdom Rush-like, or late waves that are impossible or trivial or a dominant tower. Not for pathfinding (`game-ai`) or survival base building (`survival-crafting`).
Owns the TD loop: paths, waves, towers, targeting and the economy that links them. The core balance question is whether the DPS the player can afford keeps pace with the HP each wave sends, so design both curves together and check them with the script before playtesting.
sell, and leaks cost lives. Includes lane defense, mazing TD and TD-action hybrids.
**When not to use:** the player shoots directly (`fps-shooter`); free-form base building with needs (`survival-crafting`); the A* or flow-field code itself (`game-ai`).
1. **Pick the map model:** fixed lanes (most TDs; full control of pacing), maze (towers shape the path; needs placement validation) or open field with flow fields (large crowds). 2. **Write towers, enemies and waves as data.** Each tower has a role (single-target DPS, splash, slow, anti-air, armour pierce, support) and each enemy type exists to counter one lazy build: fast (beats slow single-target), armoured (beats rapid low-damage), flying (skips ground-only), swarm (beats single-target), boss (HP spike), regenerating or shielded (punish slow DPS). 3. **Set the curves:** enemy HP per wave grows geometrically (start near 1.12-1.18x per wave) and income grows from bounty growth plus enemy count. The two compound against each other, so small changes matter: in the script's example, HP growth 1.15 holds for 30 waves while 1.25 walls by wave 2. 4. **Run the curve check** (path relative to this skill folder): `python3 scripts/td_curve_check.py waves.json`. It buys a reference tower with all gold before each wave and prints each wave's pressure (needed DPS / owned DPS x efficiency). Errors are walls (pressure above 1.0); warnings are runs of trivial waves. Aim for 0.6-0.95 with breathers between spikes. `--help` shows the spec format; `--json` for tooling. 5. **Pace the session:** a short build phase between waves, a next-wave preview, an early-call bonus for confident players and a 2-3x fast-forward toggle. 6. **Check it.** Run the curve check and these tests, then report the numbers:
one tick of `path_length / speed` (refs §1);
is refused (refs §1);
closer to the tower.
| Lever | Start here | Why | |-------|-----------|-----| | Wave 1 | beatable with starting gold at pressure about 0.5-0.7 | the first wave teaches, it does not test | | Kill bounty | most income early; wave-clear bonus grows later | late income should reward survival, not farming | | Leaks | cost lives and the bounty | otherwise leaking can be optimal | | Sell refund | 50-80% of money spent | repositioning possible, never free | | Interest | optional, capped | rewards saving but snowballs | | Upgrades | competitive gold-per-DPS with new towers, with diminishing tiers | "tall" and "wide" both viable | | Early call | gold bonus scaled by time skipped | speeds the game for experts | | Targeting | per tower: first (default), last, strongest, weakest, closest | changes play more than raw stats |
# A wave is data: groups spawn in order, each with its own spacing.
WAVES = [
{"groups": [{"type": "grunt", "count": 10, "spacing": 0.6},
{"type": "runner", "count": 6, "spacing": 0.3}], "clear_bonus": 30},
{"groups": [{"type": "armored", "count": 4, "spacing": 1.2}], "clear_bonus": 35,
"preview": "armored"}, # shown one wave ahead in the UI
]Telegraph every new enemy type a wave ahead, and introduce it alone before mixing it with others, so the counter feels learnable rather than random.
together with the curve check; geometric HP needs geometric income or upgrade efficiency.
diminishing upgrade returns.
one search from the goal before committing (refs §1).
the leftover distance (refs §1).
"first" by path progress.
fast-forward multiplies the clock, not the frame rate.
spike.
maze validation code, targeting mode code, DPS and "can this lane hold" math, HP scaling, economy details, lives and wave pacing.
Related: `game-ai` (A*, flow fields), `level-design` (map layouts), `godot-tilemap` or `unity-tilemap-2d` (grid maps
<img src="docs/assets/awesome-gamedev-agent-skills-banner.png" width="820" alt="awesome-gamedev-agent-skills — game-dev skills for AI coding agents.
Engine-neutral behavior tree and utility AI code for NPCs in any language: Blackboard, reactive composites, decorators and…
Engine-neutral game audio technique: bus layout, volume sliders in decibels, loudness, ducking music under dialogue, adaptive…
Builds and tunes game cameras, engine-neutral with Godot and Cinemachine 3 mappings: 2D follow with deadzone and look-ahead,…
Plans, generates or sources, and validates consistent game art: style guides, sprites, pixel art, tilesets, icons and textures,…
Builds engine-neutral branching dialogue with Ink, Yarn Spinner or a small JSON graph runner: lines, choices, conditions,…
Designs engine-neutral enemy and NPC AI: picks FSM, behavior tree, utility or GOAP, and builds perception, steering and A*…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.