From game-creator
Replaces geometric shapes with code-generated pixel art sprites for characters, enemies, items in Phaser 2D games, with optional animation. Triggers on 'add sprites' or 'add pixel art'.
npx claudepluginhub opusgamelabs/game-creator --plugin game-creatorThis skill uses the workspace's default tool permissions.
- Take your time to do this thoroughly
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Replace basic geometric shapes (circles, rectangles) with pixel art sprites for all game entities. Every character, enemy, item, and projectile gets a recognizable visual identity — all generated as code, no external image files needed.
Analyze the game at $ARGUMENTS (or the current directory if no path given).
First, load the game-assets skill to get the full pixel art system, archetypes, and integration patterns.
package.json to identify the engine (Phaser or Three.js — this skill is Phaser-focused)src/core/Constants.js to understand entity types, colors, and sizessrc/entities/*.js) and find every generateTexture(), fillCircle(), fillRect(), or fillEllipse() call that creates an entity spritePresent a table of sprites to create:
| Entity | Archetype | Grid | Frames | Description |
|---|---|---|---|---|
| Player (personality) | Personality | 32x48 | 1-4 | Caricature of [name], scale 4 |
| Player (generic) | Humanoid | 16x16 | 4 | ... |
| Enemy X | Flying | 16x16 | 2 | ... |
| Pickup | Item | 8x8 | 1 | ... |
If the game features a real person or named personality, default to the Personality archetype for the player character. This uses a 32x48 grid at scale 4 (128x192px rendered, ~35% of canvas height) — large enough to recognize the personality at a glance.
Choose the palette that best matches the game's existing color scheme:
Grid sizes range from 8x8 (tiny pickups) through 16x16 (standard entities) to 32x48 (personality characters). Named characters always use the Personality archetype to ensure the meme hook — recognizing the person — lands immediately.
src/core/PixelRenderer.js — the renderPixelArt() and renderSpriteSheet() utility functionssrc/sprites/palette.js — the shared color palettesrc/sprites/:
player.js — player idle + walk framesenemies.js — all enemy type sprites and framesitems.js — pickups, gems, hearts, etc.projectiles.js — bullets, fireballs, bolts (if applicable)fillCircle() / generateTexture() with renderPixelArt() or renderSpriteSheet()setCircle() or setSize())npm run build to confirm no errors/game-creator:qa-game to update visual regression snapshots since all entities look different now/add-assets examples/asteroid-dodge
Result: Audits all entities using geometric shapes → creates src/sprites/ with player, asteroids, and gem pixel art → replaces fillCircle()/fillRect() with renderPixelArt() → collision bounds adjusted.
/add-assets examples/nick-land-dodger
Result: Detects named personality → uses 32x48 Personality archetype at scale 4 → recognizable caricature as player character → enemies and items get themed pixel art.
Cause: Pixel art dimensions don't match original hitbox. Fix: Keep sprite dimensions close to the original fillRect/fillCircle size. Adjust collision bounds if needed.
Cause: Canvas texture not created before first render frame. Fix: Generate textures in scene preload() or create(), not in update().
Tell the user:
Your game entities now have pixel art sprites instead of geometric shapes! Each character, enemy, and item has a distinct visual identity.
Files created:
src/core/PixelRenderer.js— rendering enginesrc/sprites/palette.js— shared color palettesrc/sprites/player.js,enemies.js,items.js— sprite dataRun the game to see the new visuals. If you have Playwright tests, run
/game-creator:qa-gameto update the visual regression snapshots.