mcpbeat

Web Games

dokhacgiakhoa/web-games

Web browser game development principles.

759 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
505
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI --skill web-games

The instruction itself

20 sections, as written by the author

Web Browser Game Development

> Framework selection and browser-specific principles.


1. Framework Selection

Decision Tree

What type of game?
│
├── 2D Game
│   ├── Full game engine features? → Phaser
│   └── Raw rendering power? → PixiJS
│
├── 3D Game
│   ├── Full engine (physics, XR)? → Babylon.js
│   └── Rendering focused? → Three.js
│
└── Hybrid / Canvas
    └── Custom → Raw Canvas/WebGL

Comparison (2025)

| Framework | Type | Best For |

|-----------|------|----------|

| Phaser 4 | 2D | Full game features |

| PixiJS 8 | 2D | Rendering, UI |

| Three.js | 3D | Visualizations, lightweight |

| Babylon.js 7 | 3D | Full engine, XR |


2. WebGPU Adoption

Browser Support (2025)

| Browser | Support |

|---------|---------|

| Chrome | ✅ Since v113 |

| Edge | ✅ Since v113 |

| Firefox | ✅ Since v131 |

| Safari | ✅ Since 18.0 |

| Total | ~73% global |

Decision

  • New projects: Use WebGPU with WebGL fallback
  • Legacy support: Start with WebGL
  • Feature detection: Check navigator.gpu

3. Performance Principles

Browser Constraints

| Constraint | Strategy |

|------------|----------|

| No local file access | Asset bundling, CDN |

| Tab throttling | Pause when hidden |

| Mobile data limits | Compress assets |

| Audio autoplay | Require user interaction |

Optimization Priority

  • Asset compression - KTX2, Draco, WebP
  • Lazy loading - Load on demand
  • Object pooling - Avoid GC
  • Draw call batching - Reduce state changes
  • Web Workers - Offload heavy computation

4. Asset Strategy

Compression Formats

| Type | Format |

|------|--------|

| Textures | KTX2 + Basis Universal |

| Audio | WebM/Opus (fallback: MP3) |

| 3D Models | glTF + Draco/Meshopt |

Loading Strategy

| Phase | Load |

|-------|------|

| Startup | Core assets, <2MB |

| Gameplay | Stream on demand |

| Background | Prefetch next level |


5. PWA for Games

Benefits

  • Offline play
  • Install to home screen
  • Full screen mode
  • Push notifications

Requirements

  • Service worker for caching
  • Web app manifest
  • HTTPS

6. Audio Handling

Browser Requirements

  • Audio context requires user interaction
  • Create AudioContext on first click/tap
  • Resume context if suspended

Best Practices

  • Use Web Audio API
  • Pool audio sources
  • Preload common sounds
  • Compress with WebM/Opus

7. Anti-Patterns

| ❌ Don't | ✅ Do |

|----------|-------|

| Load all assets upfront | Progressive loading |

| Ignore tab visibility | Pause when hidden |

| Block on audio load | Lazy load audio |

| Skip compression | Compress everything |

| Assume fast connection | Handle slow networks |


> Remember: Browser is the most accessible platform. Respect its constraints.

How to use it

Copy the folder

Take dokhacgiakhoa/web-games from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.