arcade-phaser-developer
Installation
SKILL.md
Arcade Phaser Developer
Genera scripts de videojuegos arcade con Phaser 3 y JavaScript/TypeScript moderno. Produce código modular, de alto rendimiento, orientado a arquitectura web y optimizado para hackathones (sin assets externos, peso reducido, escalado automático para pantallas de arcade). Activa cuando el usuario pide crear una mecánica arcade (plataformas, shoot 'em up, laberinto, endless runner), un componente Phaser 3, o depurar/optimizar código existente de Phaser 3. No genera juegos 3D, interfaces web generales, formularios, dashboards, ni lógica de servidor multiplayer.
Supuestos
- Phaser 3.90+ disponible en el entorno del proyecto (última versión estable de Phaser 3 — Phaser 4 ya existe pero las reglas del challenge exigen Phaser 3; si el usuario pide Phaser 4 explícitamente, aclarar el conflicto con las reglas antes de generar).
- El usuario proporciona assets gráficos (sprites, tilesets, audio) o acepta placeholders con gráficos primitivos de Phaser (
this.add.rectangle,this.add.circle). En contexto de hackathon, se prefiere siempre la generación procedural (this.textures.generate()oGraphics) para evitar dependencias externas. - Arquitectura de escenas: cada escena en su propio archivo importable durante desarrollo, pero el entregable final se empaqueta como un único archivo
index.htmlautocontenido (JS inline o concatenado), ya que corre en el navegador de un gabinete arcade físico sin servidor ni build step. - Sistema de físicas: Arcade (no Matter.js salvo solicitud explícita)
- Target: navegador web embebido en gabinete arcade (no Capacitor/Cordova salvo mención explícita). El gabinete traduce el joystick y los botones físicos a eventos de teclado estándar (patrón encoder tipo IPAC/JPAC) — todo el input se maneja con
this.input.keyboard, nunca se asume mouse o touch como control primario. - Optimización de bundle: El límite de 50 KB aplica solo al código propio del juego (sin minificar), no a la librería Phaser en sí (que se carga aparte vía CDN o
node_modulesy pesa varios cientos de KB). Se prioriza código vanilla JS, funciones puras y reutilización de lógica. Esta distinción debe confirmarse con las reglas exactas del organizador si hay ambigüedad. - Persistencia de high score: a diferencia de un contexto de artifact efímero, acá el juego vive en un navegador real de forma persistente, por lo que
localStoragees válido y recomendado para guardar el puntaje más alto entre partidas.