Web Game Development
Use this skill when the real question is "which upstream Three.js/browser game-development skill should own this task, and how do I get it installed?"
This is a routing pack, not a reimplementation. The 19 real sub-skills live
upstream at MengTo/Skills.
The job here is to:
- classify the task honestly against the 19 sub-skills,
- pick the single narrowest match (combine only when the task truly crosses a
documented boundary),
- fetch that sub-skill locally if it is not already installed,
- sequence multi-skill work along the game lifecycle, and
- route out to this repo's non-Three.js skills when they are the real owner.
Read references/skill-routing-table.md for
the full 19-skill decision table with upstream-grounded "use when" lines and
boundary notes.
Read references/lifecycle-and-handoffs.md
for the prototype → systems → content → assets → feel → perf → QA → release
ordering and which sub-skills own each stage.
Read references/route-outs.md before routing to
unity-gamedev-skill-pack, game-performance-profiler, game-ci-cd-pipeline,
game-build-log-triage, game-demo-feedback-triage, steam-store-launch-ops,
or perfectpixel.
Explicit boundary against unity-gamedev-skill-pack
unity-gamedev-skill-pack curates external Unity/C# skill packs
(Addressables, Cinemachine, GAS, VContainer, UniTask, Wwise). This skill,
web-game-development, routes into the Three.js / browser game-development
family instead. If the engine is Unity or Unreal, stop here and use
unity-gamedev-skill-pack (or the engine-specific Unity/Unreal skills such as
game-performance-profiler, game-ci-cd-pipeline, game-build-log-triage
described in references/route-outs.md). Do not
apply Three.js-authored sub-skill guidance to a Unity project or vice versa.
When to use this skill
- The task is building, extending, or auditing a Three.js/browser action game
- You need to pick between two or more upstream game-development sub-skills
and are not sure which one is narrowest
- The upstream sub-skill needed for the task is not yet installed locally
- You are sequencing a multi-stage slice (e.g. new enemy type touching content,
rig, AI, combat, and VFX skills) and need the right order and boundaries
- You need an honest route-out to a Unity, generic-perf, CI/CD, build-log,
demo-feedback, Steam-marketing, or sprite-generation skill instead
When not to use this skill
- The engine is Unity or Unreal → use
unity-gamedev-skill-pack (or the
Unity/Unreal-specific skills in references/route-outs.md)
- The task is generic web-app performance, not gameplay → use
game-performance-profiler's non-game sibling or a general perf skill
- The task is designing CI/CD or diagnosing a red build log → use
game-ci-cd-pipeline or game-build-log-triage
- The task is triaging playtest/demo feedback into a fix list → use
game-demo-feedback-triage
- The task is Steam store-page, wishlist, or launch-window strategy → use
steam-store-launch-ops
- The task is generating 2D pixel-art sprite sheets from a text prompt →
use
perfectpixel
Instructions
Step 1: Classify the request against the 19-skill table
Use references/skill-routing-table.md.
Name the single narrowest sub-skill. If two skills seem to match, re-read the
"Important boundaries" rules there before combining them — most apparent
overlaps (enemy systems vs monster rig vs AI, combat vs encounters, hybrid
assets vs Vesperfall review vs VFX/audio, test-playable vs ship) are actually
one skill each owning a distinct concern.
Step 2: Check whether the matched sub-skill is installed
ls "${SKILLS_ROOT:-$HOME/.agents/skills}" | grep -x "<matched-skill-name>" || echo "not installed"
Step 3: Fetch the sub-skill if missing
Use scripts/fetch-upstream-skills.sh, which sparse-checkouts only
agent-skills/game-development from https://github.com/MengTo/Skills.git
and copies the requested sub-skill folder(s) into
${SKILLS_ROOT:-$HOME/.agents/skills} without deleting anything already there.
scripts/fetch-upstream-skills.sh --skill build-threejs-enemy-systems --skill tune-enemy-ai
Or fetch the entire family:
scripts/fetch-upstream-skills.sh --all
Always run with --dry-run first when the outcome is uncertain.
Step 4: Sequence multi-skill work along the lifecycle
Use references/lifecycle-and-handoffs.md
to order work: prototype → systems → content → assets → feel → perf → QA →
release. Do not build VFX/audio polish before the underlying system (combat,
encounter, enemy) is defined; do not ship before test-playable proof exists.
Step 5: Route out honestly when this pack is not the right owner
Use references/route-outs.md. State the target
skill name and the one-line reason before handing off.
Output format
Return a short routing packet:
## Routing packet
- Matched sub-skill(s): <name(s)>
- Why this is narrowest: <one line, grounded in the routing table>
- Installed? <yes/no> — fetch command if no
- Lifecycle stage: <prototype|systems|content|assets|feel|perf|qa|release>
- Route-out (if any): <skill name + reason>
Examples
Example 1: New enemy type end to end
Input
Add a new ranged enemy archetype with its own moveset, rig, AI behavior, and
impact VFX to our Three.js ARPG.
Output sketch
- Matched sub-skills:
build-threejs-enemy-systems (content/moveset contract)
→ build-game-monster-system (rig/socket/collider conformance) →
tune-enemy-ai (perception/intent/attack choice) → create-game-vfx
(impact feedback)
- Boundary note: enemy-systems owns portable content, monster-system owns rig
conformance, tune-enemy-ai owns behavior — none of the three substitute for
another
- Lifecycle stage: systems → content → feel
Example 2: Mobile HUD regression
Input
Our inventory drag-and-drop is broken on touch and the HUD overlaps the
action buttons in portrait.
Output sketch
- Matched sub-skills:
build-mobile-threejs-games (touch/HUD/orientation),
build-game-inventory (drag/drop, non-drag alternatives)
- Lifecycle stage: content/feel, then QA
- Route-out: none — stays inside this pack
Example 3: Unity project mistakenly routed here
Input
Our Unity Addressables build keeps failing before a Steam release, fix it.
Output sketch
- Route-out:
unity-gamedev-skill-pack (engine is Unity/C#, not Three.js) and
game-build-log-triage for the failing build
- Do not apply any of the 19 Three.js sub-skills here
Best practices
- Start with the narrowest sub-skill; only combine skills when a documented
boundary genuinely requires it.
- Fetch sub-skills through
scripts/fetch-upstream-skills.sh rather than
hand-copying files, so provenance and sparse-checkout scope stay clean.
- Never invent sub-skill content — this pack only routes; the upstream
SKILL.md is the source of truth once fetched.
- Sequence work along the lifecycle so polish (VFX/audio) never precedes the
system it communicates.
- Route out to Unity, perf, CI/CD, build-log, demo-feedback, Steam, or sprite
skills honestly instead of stretching this pack to cover them.
- Keep
--dry-run as the default first run of the fetch script in unfamiliar
environments.
References
1---2name: web-game-development3description: Route Three.js and browser game-development requests into the narrowest matching sub-skill of the 19-skill MengTo/Skills game-development family — level authoring, map editing, cameras, enemy systems and AI, monster rigs, action combat, encounter design, inventory, hybrid/Vesperfall assets, VFX, audio feedback, mobile controls, performance tuning, QA, changelogs, and release. Use when a task touches any of those for a playable web game, and fetch the matching sub-skill before doing the work instead of improvising. Route Unity/C# engine work to `unity-gamedev-skill-pack` instead. Triggers on: three.js game, browser game, webgl game, isometric arpg, enemy AI, game camera, game inventory, game VFX, game audio feedback, ship web game, playtest web game, mobile threejs game, game encounter design, monster rig, hybrid game assets.4license: MIT5---67# Web Game Development89Use this skill when the real question is **"which upstream Three.js/browser game-development skill should own this task, and how do I get it installed?"**1011This is a **routing pack**, not a reimplementation. The 19 real sub-skills live12upstream at [MengTo/Skills](https://github.com/MengTo/Skills/tree/main/agent-skills/game-development).13The job here is to:14151. classify the task honestly against the 19 sub-skills,162. pick the single narrowest match (combine only when the task truly crosses a17 documented boundary),183. fetch that sub-skill locally if it is not already installed,194. sequence multi-skill work along the game lifecycle, and205. route out to this repo's non-Three.js skills when they are the real owner.2122Read [references/skill-routing-table.md](references/skill-routing-table.md) for23the full 19-skill decision table with upstream-grounded "use when" lines and24boundary notes.25Read [references/lifecycle-and-handoffs.md](references/lifecycle-and-handoffs.md)26for the prototype → systems → content → assets → feel → perf → QA → release27ordering and which sub-skills own each stage.28Read [references/route-outs.md](references/route-outs.md) before routing to29`unity-gamedev-skill-pack`, `game-performance-profiler`, `game-ci-cd-pipeline`,30`game-build-log-triage`, `game-demo-feedback-triage`, `steam-store-launch-ops`,31or `perfectpixel`.3233## Explicit boundary against `unity-gamedev-skill-pack`3435`unity-gamedev-skill-pack` curates external **Unity/C#** skill packs36(Addressables, Cinemachine, GAS, VContainer, UniTask, Wwise). This skill,37`web-game-development`, routes into the **Three.js / browser** game-development38family instead. If the engine is Unity or Unreal, stop here and use39`unity-gamedev-skill-pack` (or the engine-specific Unity/Unreal skills such as40`game-performance-profiler`, `game-ci-cd-pipeline`, `game-build-log-triage`41described in [references/route-outs.md](references/route-outs.md)). Do not42apply Three.js-authored sub-skill guidance to a Unity project or vice versa.4344## When to use this skill4546- The task is building, extending, or auditing a Three.js/browser action game47- You need to pick between two or more upstream game-development sub-skills48 and are not sure which one is narrowest49- The upstream sub-skill needed for the task is not yet installed locally50- You are sequencing a multi-stage slice (e.g. new enemy type touching content,51 rig, AI, combat, and VFX skills) and need the right order and boundaries52- You need an honest route-out to a Unity, generic-perf, CI/CD, build-log,53 demo-feedback, Steam-marketing, or sprite-generation skill instead5455## When not to use this skill5657- **The engine is Unity or Unreal** → use `unity-gamedev-skill-pack` (or the58 Unity/Unreal-specific skills in `references/route-outs.md`)59- **The task is generic web-app performance, not gameplay** → use60 `game-performance-profiler`'s non-game sibling or a general perf skill61- **The task is designing CI/CD or diagnosing a red build log** → use62 `game-ci-cd-pipeline` or `game-build-log-triage`63- **The task is triaging playtest/demo feedback into a fix list** → use64 `game-demo-feedback-triage`65- **The task is Steam store-page, wishlist, or launch-window strategy** → use66 `steam-store-launch-ops`67- **The task is generating 2D pixel-art sprite sheets from a text prompt** →68 use `perfectpixel`6970## Instructions7172### Step 1: Classify the request against the 19-skill table7374Use [references/skill-routing-table.md](references/skill-routing-table.md).75Name the single narrowest sub-skill. If two skills seem to match, re-read the76"Important boundaries" rules there before combining them — most apparent77overlaps (enemy systems vs monster rig vs AI, combat vs encounters, hybrid78assets vs Vesperfall review vs VFX/audio, test-playable vs ship) are actually79one skill each owning a distinct concern.8081### Step 2: Check whether the matched sub-skill is installed8283```bash84ls "${SKILLS_ROOT:-$HOME/.agents/skills}" | grep -x "<matched-skill-name>" || echo "not installed"85```8687### Step 3: Fetch the sub-skill if missing8889Use `scripts/fetch-upstream-skills.sh`, which sparse-checkouts only90`agent-skills/game-development` from `https://github.com/MengTo/Skills.git`91and copies the requested sub-skill folder(s) into92`${SKILLS_ROOT:-$HOME/.agents/skills}` without deleting anything already there.9394```bash95scripts/fetch-upstream-skills.sh --skill build-threejs-enemy-systems --skill tune-enemy-ai96```9798Or fetch the entire family:99100```bash101scripts/fetch-upstream-skills.sh --all102```103104Always run with `--dry-run` first when the outcome is uncertain.105106### Step 4: Sequence multi-skill work along the lifecycle107108Use [references/lifecycle-and-handoffs.md](references/lifecycle-and-handoffs.md)109to order work: prototype → systems → content → assets → feel → perf → QA →110release. Do not build VFX/audio polish before the underlying system (combat,111encounter, enemy) is defined; do not ship before test-playable proof exists.112113### Step 5: Route out honestly when this pack is not the right owner114115Use [references/route-outs.md](references/route-outs.md). State the target116skill name and the one-line reason before handing off.117118## Output format119120Return a short **routing packet**:121122```markdown123## Routing packet124- Matched sub-skill(s): <name(s)>125- Why this is narrowest: <one line, grounded in the routing table>126- Installed? <yes/no> — fetch command if no127- Lifecycle stage: <prototype|systems|content|assets|feel|perf|qa|release>128- Route-out (if any): <skill name + reason>129```130131## Examples132133### Example 1: New enemy type end to end134135**Input**136> Add a new ranged enemy archetype with its own moveset, rig, AI behavior, and137> impact VFX to our Three.js ARPG.138139**Output sketch**140- Matched sub-skills: `build-threejs-enemy-systems` (content/moveset contract)141 → `build-game-monster-system` (rig/socket/collider conformance) →142 `tune-enemy-ai` (perception/intent/attack choice) → `create-game-vfx`143 (impact feedback)144- Boundary note: enemy-systems owns portable content, monster-system owns rig145 conformance, tune-enemy-ai owns behavior — none of the three substitute for146 another147- Lifecycle stage: systems → content → feel148149### Example 2: Mobile HUD regression150151**Input**152> Our inventory drag-and-drop is broken on touch and the HUD overlaps the153> action buttons in portrait.154155**Output sketch**156- Matched sub-skills: `build-mobile-threejs-games` (touch/HUD/orientation),157 `build-game-inventory` (drag/drop, non-drag alternatives)158- Lifecycle stage: content/feel, then QA159- Route-out: none — stays inside this pack160161### Example 3: Unity project mistakenly routed here162163**Input**164> Our Unity Addressables build keeps failing before a Steam release, fix it.165166**Output sketch**167- Route-out: `unity-gamedev-skill-pack` (engine is Unity/C#, not Three.js) and168 `game-build-log-triage` for the failing build169- Do not apply any of the 19 Three.js sub-skills here170171## Best practices1721731. Start with the narrowest sub-skill; only combine skills when a documented174 boundary genuinely requires it.1752. Fetch sub-skills through `scripts/fetch-upstream-skills.sh` rather than176 hand-copying files, so provenance and sparse-checkout scope stay clean.1773. Never invent sub-skill content — this pack only routes; the upstream178 `SKILL.md` is the source of truth once fetched.1794. Sequence work along the lifecycle so polish (VFX/audio) never precedes the180 system it communicates.1815. Route out to Unity, perf, CI/CD, build-log, demo-feedback, Steam, or sprite182 skills honestly instead of stretching this pack to cover them.1836. Keep `--dry-run` as the default first run of the fetch script in unfamiliar184 environments.185186## References187188- [Skill Routing Table](references/skill-routing-table.md)189- [Lifecycle and Handoffs](references/lifecycle-and-handoffs.md)190- [Route-outs](references/route-outs.md)191- [MengTo/Skills game-development family](https://github.com/MengTo/Skills/tree/main/agent-skills/game-development)