quick-game
Rapidly scaffold and implement a playable game — no assets, design, audio, deploy, or monetize. Get something on screen fast. Use when the user says "quick game", "fast prototype", "just get something playable", or wants a game without the full pipeline. For the complete one-shot pipeline (deploy +
By playableintelligence · 745 installs
npx skills add playableintelligence/game-creator --skill quick-game
Source repository · Upstream listing
Performance Notes
Take your time to do this thoroughly
Quality is more important than speed
Do not skip validation steps
Quick Game (Fast Prototype)
Build a playable game prototype as fast as possible. This is /viral game without the polish — just scaffold + implement the core loop. Get something on screen, then incrementally add layers with /add assets , /design game , /add audio , /game deploy , and /monetize game .
What you'll get:
1. A scaffolded game project with clean architecture
2. Core gameplay — input, movement, scoring, fail condition, restart
3. A running dev server you can play immediately
What you skip (run these later if you want):
/add assets — pixel art sprites (2D) or 3D models
/design game — visual polish, particles, transitions
/add audio — music and sound effects
/record promo — promo video capture
/game deploy — deploy to here.now
/monetize game — Play.fun integration
Instructions
Step 0: Parse arguments
Parse $ARGUMENTS to determine the game concept:
Direct specification: [2d 3d] [game name]
Engine : 2d (Phaser) or 3d (Three.js). If not specified, default to 2d .
Name : kebab case. If not specified, ask the user.
Tweet URL: If arguments contain a tweet URL ( x.com/ /status/ , twitter.com/ /status/ , fxtwitter.com/ /status/ ):
1. Fetch the tweet using the fetch tweet skill
2. Default to 2D
3. Creatively abstract a game concept from the tweet
4. Generate a kebab case name
5. Tell the user what you'll build
Meshy API Key (3D only): If 3D, check for MESHY API KEY . If missing, ask the user (link to https://app.meshy.ai). Store for model generation.
Step 1: Scaffold + Implement
Infrastructure (main thread):
1. Locate the template directory — check ~/.claude/plugins/cache/local plugins/game creator/ /templates/ or templates/ relative to this plugin
2. Target directory : If inside the game creator repo, create in examples/<game name / . Otherwise, create in ./<game name / .
3. Copy the template:
2D: templates/phaser 2d/ → target
3D: templates/threejs 3d/ → target
4. Update package.json name and index.html title
5. Run npm install
6. Start the dev server ( npm run dev ) in the background. Check port availability first — if 3000 is taken, try 3001, 3002, etc.
Game implementation (subagent via Task):
Launch a Task subagent with:
You are building a quick game prototype. Speed is the priority — get a playable core loop working.
Project path : <project dir
Engine : <2d 3d
Game concept : <description
Skill to load : phaser (2D) or threejs game (3D)
Implement in this order:
1. Input (touch + keyboard from the start)
2. Player movement / core mechanic
3. Fail condition (death, collision, timer)
4. Scoring
5. Restart flow (GameState.reset() → clean slate)
Scope: 1 scene, 1 mechanic, 1 fail condition. Keep it tight.
Rules:
All cross module communication via EventBus
All magic numbers in Constants.js
No title screen — boot directly into gameplay
No in game score HUD — Play.fun widget handles score display
Mobile first input: touch + keyboard, use unified InputSystem pattern
Import SAFE ZONE from Constants.js — keep UI below SAFE ZONE.TOP
Minimum 7 8% canvas width for collectibles/hazards
Character sizing: GAME.WIDTH 0.12 to GAME.WIDTH 0.15 for character driven games
Preserve the template's createButton() helper in GameOverScene — do NOT rewrite it
Wire spectacle events: SPECTACLE ENTRANCE , SPECTACLE ACTION , SPECTACLE HIT , SPECTACLE COMBO , SPECTACLE STREAK , SPECTACLE NEAR MISS
Add isMuted to GameState for future audio support
Ensure restart is clean — 3 restarts in a row should work identically
Step 2: Verify
After the subagent returns:
1. Run npm run build in the project directory to confirm no errors
2. If the build fails, fix the issues (up to 2 retries)
3. If Playwright MCP is available, navigate to the dev server, take a screenshot, and do a quick visual check
Example Usage
2D game
Result: Copies Phaser template → implements player ship, asteroid spawning, collision death, score counter, restart flow → dev server running at localhost:3000 in ~2 minutes. Shapes only, no polish.
From tweet
Result: Fetches tweet → abstracts game concept → scaffolds and implements a playable prototype inspired by the tweet content.
Troubleshooting
Game scaffolds but won't start
Cause: Vite config or import paths incorrect.
Fix: Verify vite.config.js has correct root. Check that main.js is referenced in index.html.
Missing core files
Cause: Scaffold skipped EventBus/GameState/Constants.
Fix: Every game needs core/EventBus.js, core/GameState.js, core/Constants.js. Re run scaffold or create manually.
Done
Tell the user:
Your game is running at http://localhost:<port . Open it in a browser to play!
To keep building, run these commands:
/add assets — replace shapes with pixel art sprites
/design game — add visual polish (particles, gradients, juice)
/add audio — add music and sound effects
/game deploy — deploy to the web
/monetize game — add Play.fun integration
Or run /viral game next time for the full one shot pipeline (assets, polish, deploy, monetize all in one go).