genre-tower-defense
Installation
SKILL.md
Genre: Tower Defense
Strategic placement, resource management, and escalating difficulty define tower defense.
Core Loop
- Prepare: Build/upgrade towers with available currency
- Wave: Enemies spawn and traverse path toward goal
- Defend: Towers auto-target and damage enemies
- Reward: Kills grant currency
- Escalate: Waves increase in difficulty/complexity
NEVER Do in Tower Defense Games
- NEVER make all towers equally viable — If Sniper = same DPS as Machine Gun, no strategic choice. Each tower MUST have distinct niche (AoE, slow, armor pierce, anti-air).
- NEVER use synchronous NavigationServer baking for mazing —
NavigationRegion2D.bake_navigation_polygon()blocks main thread. UseNavigationServer2D.get_maps()+ worker thread OR fixed paths. - NEVER let players fully block the exit path — In mazing TDs, validate
NavigationServer2D.map_get_path(start, goal)before tower placement. Empty path = illegal build. - NEVER use
Area2D.get_overlapping_bodies()every frame — 500 enemies × 60fps = 30k collision checks. Storebodies_enteredin array, remove onbody_exited. Query once. - NEVER make early waves feel like busywork — First 3 waves should introduce mechanics, not bore. Start timer at 50% or give "early call" bonus to skip.
- NEVER allow death spirals without catch-up mechanics — 1 leaked enemy → less money → harder next wave → inevitable loss. Add interest on saved money OR discrete wave difficulty.