Synthèse automatique
Cette skill guide la création de jeux 2D dans le navigateur avec Phaser 3, en couvrant l'architecture par scènes, les sprites, la physique Arcade/Matter, les tilemaps et la boucle de jeu.
Points forts
- Impose un protocole de mesure des spritesheets avant tout code de chargement, ce qui évite les corruptions silencieuses d'images
- Aide à trancher tôt les décisions d'architecture (choix du moteur physique, découpage des scènes, transitions)
- Fournit des modèles concrets et prêts à adapter : configuration du jeu, cycle de vie des scènes, mouvement indépendant du frame rate
- Oriente vers des fichiers de référence ciblés (tilemaps, physique Arcade, performance) selon la tâche en cours
Limites
- Le contenu fourni s'arrête au milieu du tableau des anti-patterns : la fin de la section et d'éventuelles parties ultérieures sont manquantes
- Repose sur des fichiers de référence externes (references/*.md) non inclus ici, indispensables pour les spritesheets et les tilemaps
- Ne traite que Phaser 3 en TypeScript/JavaScript pour le web ; aucun exemple de build, de déploiement ou de tests
À utiliser dès qu'on démarre ou étend un jeu 2D Phaser 3 : création de scènes, chargement de spritesheets, réglage de la physique ou tilemaps.
À éviter pour des projets utilisant un autre moteur (Unity, Godot, PixiJS seul) ou pour du rendu 3D, hors du périmètre de cette skill.
Analyse de sécurité
SûrThe skill is instructional documentation for Phaser 3 game development. It contains no executable commands, no network or filesystem operations, no secret handling, and no destructive instructions. References to external markdown files are ordinary documentation pointers and pose no meaningful execution risk.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Create a Phaser 3 game with a Boot scene, a Menu scene, and a Game scene where the player jumps on platforms with Arcade physics.Load this character spritesheet into my Phaser scene and set up a run animation — the frames look misaligned, help me get the frameWidth and spacing right.Add a Tiled tilemap to my Phaser GameScene with a collision layer for the ground and walls.name: phaser-gamedev description: "Build 2D games with Phaser 3 framework. Covers scene lifecycle, sprites, physics (Arcade/Matter), tilemaps, animations, input handling, and game architecture. Trigger: "create phaser game", "add phaser scene", "phaser sprite", "phaser physics", "game development with phaser"."
Phaser Game Development
Build 2D browser games using Phaser 3's scene-based architecture and physics systems.
STOP: Before Loading Any Spritesheet
Read spritesheets-nineslice.md FIRST.
Spritesheet loading is fragile—a few pixels off causes silent corruption that compounds into broken visuals. The reference file contains the mandatory inspection protocol.
Quick rules (details in reference):
- Measure the asset before writing loader code—never guess frame dimensions
- Character sprites use SQUARE frames: If you calculate frameWidth=56, try 56 for height first
- Different animations have different frame sizes: A run cycle needs wider frames than idle; an attack needs extra width for weapon swing. Measure EACH spritesheet independently
- Check for spacing: Gaps between frames require
spacing: Nin loader config - Verify the math:
imageWidth = (frameWidth × cols) + (spacing × (cols - 1))
Reference Files
Read these BEFORE working on the relevant feature:
| When working on... | Read first | |--------------------|------------| | Loading ANY spritesheet | spritesheets-nineslice.md | | Nine-slice UI panels | spritesheets-nineslice.md | | Tiled tilemaps, collision layers | tilemaps.md | | Physics tuning, groups, pooling | arcade-physics.md | | Performance issues, object pooling | performance.md |
Architecture Decisions (Make Early)
Physics System Choice
| System | Use When | |--------|----------| | Arcade | Platformers, shooters, most 2D games. Fast AABB collisions | | Matter | Physics puzzles, ragdolls, realistic collisions. Slower, more accurate | | None | Menu scenes, visual novels, card games |
Scene Structure
scenes/
├── BootScene.ts # Asset loading, progress bar
├── MenuScene.ts # Title screen, options
├── GameScene.ts # Main gameplay
├── UIScene.ts # HUD overlay (launched parallel)
└── GameOverScene.ts # End screen, restart
Scene Transitions
this.scene.start('GameScene', { level: 1 }); // Stop current, start new
this.scene.launch('UIScene'); // Run in parallel
this.scene.pause('GameScene'); // Pause
this.scene.stop('UIScene'); // Stop
Core Patterns
Game Configuration
const config: Phaser.Types.Core.GameConfig = {
type: Phaser.AUTO,
width: 800,
height: 600,
scale: {
mode: Phaser.Scale.FIT,
autoCenter: Phaser.Scale.CENTER_BOTH
},
physics: {
default: 'arcade',
arcade: { gravity: { y: 300 }, debug: false }
},
scene: [BootScene, MenuScene, GameScene]
};
Scene Lifecycle
class GameScene extends Phaser.Scene {
init(data) { } // Receive data from previous scene
preload() { } // Load assets (runs before create)
create() { } // Set up game objects, physics, input
update(time, delta) { } // Game loop, use delta for frame-rate independence
}
Frame-Rate Independent Movement
// CORRECT: scales with frame rate
this.player.x += this.speed * (delta / 1000);
// WRONG: varies with frame rate
this.player.x += this.speed;
Anti-Patterns
| Anti-Pattern | Problem | Solution |
|--------------|---------|----------|
| Global state on window | Scene transitions break state | Use scene data, registries |
| Loading in create() | Assets not ready when referenced | Load in preload(), use Boot scene |
| Frame counting | Game speed varies with FPS | Use delta / 1000 |
| Matter for simple collisions | Unnecessary complexity | Arcade handles most 2D games |
| One giant scene | Hard to extend | Separate gameplay/UI/menus |
| Magic numbers | Impossible to balance | Config objects, constants |
| No object pooling | GC stutters | Groups with setActive(false) |
Remember
Phaser provides powerful primitives—scenes, sprites, physics, input—but architecture is your responsibility.
Before coding: What scenes? What entities? How do they interact? What physics model?
Claude can build complete, polished Phaser games. These guidelines illuminate the path—they don't fence it.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/phaser-game-development-mrx3xzyr' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/phaser-game-development-mrx3xzyr/download' --output '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md.part' && mv '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md.part' '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md' && test -s '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/phaser-gamedev' && cp -R '.skill-downloads/phaser-game-development-mrx3xzyr' '.claude/skills/phaser-gamedev'Cursor
test -f '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md' && test -s '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/phaser-gamedev' && cp -R '.skill-downloads/phaser-game-development-mrx3xzyr' '.cursor/skills/phaser-gamedev'Codex
test -f '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md' && test -s '.skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/phaser-gamedev' && cp -R '.skill-downloads/phaser-game-development-mrx3xzyr' '.agents/skills/phaser-gamedev'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/phaser-game-development-mrx3xzyr'openskills read 'phaser-game-development-mrx3xzyr'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/phaser-game-development-mrx3xzyr/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.