Orchestrator skill — principles plus routing to specialized sub-skills.
You are working on a game development project. This skill teaches PRINCIPLES and directs you to the right sub-skill based on context.
| If the game targets... | Use Sub-Skill |
|---|---|
| Web browsers (HTML5, WebGL, WebGPU) | game-development/web-games |
| Mobile (iOS, Android) | game-development/mobile-games |
| PC (Steam, Desktop) | game-development/pc-games |
| VR/AR headsets | game-development/vr-ar |
| If the game is... | Use Sub-Skill |
|---|---|
| 2D (sprites, tilemaps) | game-development/2d-games |
| 3D (meshes, shaders) | game-development/3d-games |
| If you need... | Use Sub-Skill |
|---|---|
| Engine / framework choice, shell vs guest, fit tiers | game-development/engine-selection |
| GDD, balancing, player psychology | game-development/game-design |
| Multiplayer, networking | game-development/multiplayer |
| Visual style, asset pipeline, animation | game-development/game-art |
| Sound design, music, adaptive audio | game-development/game-audio |
INPUT → Read player actions
UPDATE → Process game logic (fixed timestep)
RENDER → Draw the frame (interpolated)
Fixed-timestep starting point (not required for every game):
Hybrid / UI-heavy games: the outer app may be DOM/event-driven; use a classic game loop only in canvas/WebGL viewports (or wherever simulation ticks).
| Pattern | Use When | Example |
|---|---|---|
| State Machine | 3-5 discrete states | Player: Idle→Walk→Jump |
| Object Pooling | Frequent spawn/destroy | Bullets, particles |
| Observer/Events | Cross-system communication | Health→UI updates |
| ECS | Thousands of similar entities | RTS units, particles |
| Command | Undo, replay, networking | Input recording |
| Behavior Tree | Complex AI decisions | Enemy AI |
| Content-as-data | Designers ship levels/events without code | JSON/YAML packs |
Decision Rule: Start with State Machine. Add ECS only when performance demands.
Abstract input into ACTIONS, not raw keys:
"jump" → Space, Gamepad A, Touch tap
"move" → WASD, Left stick, Virtual joystick
| System | Budget |
|---|---|
| Input | 1ms |
| Physics | 3ms |
| AI | 2ms |
| Game Logic | 4ms |
| Rendering | 5ms |
| Buffer | 1.67ms |
Profile CPU and GPU paths on target hardware before choosing an optimization; these techniques do not have a universal priority order.
| AI Type | Complexity | Use When |
|---|---|---|
| FSM | Simple | 3-5 states, predictable behavior |
| Behavior Tree | Medium | Modular, designer-friendly |
| GOAP | High | Emergent, planning-based |
| Utility AI | High | Scoring-based decisions |
| Type | Best For |
|---|---|
| AABB | Rectangles, fast checks |
| Circle | Round objects, cheap |
| Spatial Hash | Many similar-sized objects |
| Quadtree | Large worlds, varying sizes |
| Don't | Do |
|---|---|
| Update everything every frame | Use events, dirty flags |
| Create objects in hot loops | Object pooling |
| Cache nothing | Cache references |
| Optimize without profiling | Profile first |
| Mix input with logic | Abstract input layer |
| Pick an engine by hype | Match engine to genre + team + delivery target |
→ game-development/engine-selection → game-development/web-games → game-development/2d-games → game-development/game-design
→ game-development/engine-selection (shell vs guest) → game-development/web-games → game-development/2d-games for guests only
→ game-development/mobile-games → game-development/game-design
→ game-development/vr-ar → game-development/3d-games → game-development/multiplayer
→ game-development/engine-selection (Ink/Twine) → host UI of your choice
Remember: Great games come from iteration, not perfection. Prototype fast, then polish.