web-game.md 4.4 KB


name: web-game category: game public: true database: optional hosting_hints:

  • itch-io
  • netlify
  • cloudflare-pages
  • vercel
  • github-pages
  • newgrounds audit_stack:
  • analyze
  • code-clean
  • perf
  • design-review
  • a11y
  • cso
  • doc plugins: context7: optional ui-ux-pro-max: optional gstack: optional ---

Web Game (browser-based)

Jeu web navigateur — Phaser / Pixi.js / Three.js / Babylon.js / p5.js / Matter.js / Canvas 2D / WebGL brut. Distribution : itch.io / Newgrounds / site dédié / portail HTML5.

Detection signals

Strong signals (×3)

  • DEP: package.json contient l'un de : "phaser", "pixi.js", "three", "babylonjs" OR "@babylonjs/core", "matter-js", "p5"
  • STRING_IN_FILE: tout .js/.ts contient "new Phaser.Game(" OR "new PIXI.Application(" OR "new THREE.Scene(" OR "BABYLON.Engine("

Medium signals (×2)

  • DIR: src/scenes/ OR src/entities/ OR src/sprites/
  • FILE: game.config.js OR src/config.js avec game settings
  • DEP: "howler" OR "tone" OR "sound.js" (audio)
  • DEP: "gsap" OR "@tweenjs/tween.js" (animations)

Weak signals (×1)

  • DIR: assets/sprites/ OR assets/audio/ OR assets/tilesets/
  • EXT: .atlas OR .tmx (Tiled maps)
  • DEP: "webpack" OR "vite" (bundler)
  • FILE: index.html avec <canvas> ou <div id="game">

Counter-signals (exclusion)

  • DEP: "react-three-fiber" sans Three.js scène principale → peut être composant 3D dans app React (pas un jeu)

Implications

  • Hébergement : itch.io (dominant indie), Newgrounds, Cloudflare Pages, Netlify, GitHub Pages, site custom
  • Base de données : OPTIONNELLE — souvent localStorage pour saves, parfois backend pour leaderboard/multiplayer
  • SEO/GEO : IMPORTANT si monétisation via portail web (mais jeu lui-même = canvas opaque)
  • Surface sécurité : MOYENNE-GRANDE si multiplayer ou backend (anti-cheat, auth)
  • UI/UX : CRITIQUE — game feel, juice, feedback

Typical pain points

  • FPS instable (pas de rAF, setInterval utilisé, physics tickée dans render)
  • Assets chargés tous au démarrage (loading screen 30s) au lieu de streaming
  • Sprites non atlas (chaque image = requête réseau)
  • Audio non compressé (WAV uncompressed au lieu de OGG/WebM)
  • Pas de fallback WebGL → Canvas2D (GPU insuffisant = écran noir)
  • Memory leaks (scenes non destroy-ées, event listeners non cleanup)
  • Input hardcoded (pas de rebind, pas de support manette via Gamepad API)
  • Pas de pause native (perte focus tab = jeu continue en bg)
  • Persistance : localStorage (limitation 5MB, synchrone, bloquant)
  • Pas de save cloud ni cross-device
  • Multiplayer : auth client-side uniquement (triche triviale)
  • Accessibilité : pas d'options (no-motion, color-blind, subtitle, remappable controls)
  • Perf mobile : jeu pensé desktop, pas touch-optimized, pas adaptatif
  • Monétisation : ads ou IAP sans consentement RGPD
  • Analytics intrusifs (user tracking sans consentement)

Interview questions (adaptive)

En plus du set minimum business :

  • Moteur / framework : Phaser / Pixi / Three / Babylon / p5 / custom canvas / autre ?
  • Type de jeu : 2D / 3D / isométrique / top-down / platformer / puzzle / runner / autre ?
  • Solo / multijoueur / les deux ?
  • Persistance : localStorage / IndexedDB / backend (lequel) / cloud saves ?
  • Cible : desktop seulement / mobile / tablette / manette ?
  • FPS cible : 60 / 120 / variable ?
  • Monétisation : gratuit / premium / free-to-play + ads / IAP ?
  • Plateforme de distribution : itch.io / Newgrounds / site custom / Steam (via Electron ?) / autre ?
  • Multi-langue prévu ?
  • Audio : effets + musique ? compression ?
  • Rebind controls / manette prévu ?
  • Accessibilité : options (reduced motion / subtitles / color-blind) ?
  • Ads réseau si free : lequel ?
  • Leaderboard / social ?

Plugin recommendations

  • context7 : OPTIONAL — ON si Three/Babylon récents
  • ui-ux-pro-max : OPTIONAL — utile pour UI menus (pas pour gameplay)
  • gstack : OPTIONAL — tester sur navigateur

Example project layout

index.html
package.json
vite.config.ts
src/
  main.ts
  game.ts
  config.ts
  scenes/
    BootScene.ts
    MenuScene.ts
    GameScene.ts
    UIScene.ts
  entities/
    Player.ts
    Enemy.ts
  systems/
    InputManager.ts
    AudioManager.ts
    SaveSystem.ts
  data/
    levels.json
assets/
  sprites/
    player.atlas
    enemies.png
  audio/
    music.ogg
    sfx/
  tilesets/
    world.tmx
public/
  index.html