bundled-skills/game-development/web-games/SKILL.md
Web browser game development. Framework selection (Phaser, PixiJS, Kaplay, Canvas/WebGL, Three.js, Babylon.js), hybrid DOM+canvas, WebGPU, optimization, PWA, audio unlock. Use when building HTML5/WebGL/WebGPU games or choosing a browser runtime.
npx skillsauth add FrancoStino/opencode-skills-antigravity web-gamesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Framework selection and browser-specific principles. For stack choice details see
game-development/engine-selection.
What type of game?
│
├── 2D Game
│ ├── Full game engine features? → Phaser 4
│ ├── Fast prototype / jam? → Kaplay
│ ├── Raw rendering power? → PixiJS 8
│ └── Tiny / no dependency? → Raw Canvas / WebGL
│
├── 3D Game
│ ├── Full engine (physics, XR)? → Babylon.js
│ └── Rendering focused? → Three.js
│
├── Hybrid (DOM UI + canvas moments)
│ └── Custom shell + guest viewport
│ (Canvas/Kaplay/Phaser/Pixi inside a region/modal)
│
└── Narrative-first
└── Ink (inkjs) or Twine export + DOM host
| Framework | Type | Best For | |-----------|------|----------| | Raw Canvas / WebGL | 2D / low-level | Small scope, full control | | Kaplay | 2D toolkit | Rapid prototypes | | Phaser 4 | 2D engine | Full game features | | PixiJS 8 | 2D renderer | Rendering, custom systems | | Three.js | 3D renderer | Visualizations, lightweight 3D | | Babylon.js | 3D engine | Full engine, XR |
Use when chrome is HTML (menus, inventories, text, dashboards) but bursts of play need a canvas:
Do not let the guest own global app routing unless the product is a full-screen game.
| Browser | Support | |---------|---------| | Chrome | ✅ Since v113 | | Edge | ✅ Since v113 | | Firefox | ✅ Since v131 | | Safari | ✅ Since 18.0 | | Total | ~73% global |
navigator.gpu| Constraint | Strategy |
|------------|----------|
| No local file access | Asset bundling, CDN |
| Tab throttling | Pause when hidden (visibilitychange) |
| Mobile data limits | Compress assets |
| Audio autoplay | Require user interaction |
| Type | Format | |------|--------| | Textures | KTX2 + Basis Universal (or WebP/PNG for simple 2D) | | Audio | WebM/Opus (fallback: MP3) | | 3D Models | glTF + Draco/Meshopt |
| Phase | Load | |-------|------| | Startup | Core assets, <2MB | | Gameplay | Stream on demand | | Background | Prefetch next level |
Benefits: offline play, install, fullscreen, optional push. Requirements: service worker, web app manifest, HTTPS.
AudioContext on first click/tap| ❌ 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 | | Leave canvas engines running off-screen | Tear down guests |
Remember: Browser is the most accessible platform. Respect its constraints.
Use when building HTML5/WebGL/WebGPU games, choosing a browser runtime, or wiring hybrid DOM+canvas guests.
tools
Authorized security assessment of LLM applications and AI agents: prompt injection, tool abuse, RAG exposure, memory poisoning, system-prompt extraction, and agent-compliance engineering per OWASP LLM/ASI Top 10.
development
Builds two parameterized UI modes—流光溢彩白 (iridescent white) and 五彩斑斓黑 (colorful black)—with OKLCH, WebGL/CSS fallback, vision gating, screenshot QA, and total/per-color intensity reports. Use when a UI request names either mode or needs measured color parameters.
tools
Delegate coding tasks to the Kimi Code CLI (`kimi`) only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.
development
Front-end JavaScript reverse engineering: locate signature chains, analyze encrypted request parameters, sample runtime behavior, and reproduce logic locally in Node for evidence-based output.