Skip to main content
skill CX Codex

improve-game — Claude Code skill: what it does, how to install

Audits your game across thirteen areas, finds weak spots, and implements fixes ranked by player impact. Run it as many times as you need.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add PlayableIntelligence/game-creator --skill improve-game -a claude-code
Open on GitHub

What improve-game does

The skill reads your entire project — from package.json and Constants.js to scenes, entities, UI, and tests — and scores each area from one to five: gameplay feel, visual polish, game over screen, audio, code architecture, restart safety, performance, player experience, mobile support, Play.fun safe zone, gameplay invariants, entity sizing, and test coverage. After the audit it builds a plan of five to eight improvements ranked by impact and waits for you to choose which ones to implement.

Each change follows a strict pattern: constants go into Constants.js first, then events into EventBus.js, then state fields into GameState.js, new files into proper directories, wiring through the orchestrator in Game.js. After each fix it runs npm run build to catch errors immediately. When everything is done, it runs tests and reports the new score and the list of changed files. It works iteratively — each pass finds the next batch of high-impact fixes. You can focus the audit by passing an argument: gameplay, visuals, performance, or polish.

What it helps with

  • tune gameplay feel and difficulty progression
  • add missing visual polish — backgrounds, particles, animations
  • fix restart cleanup — remove listener and timer leaks
  • optimize performance — cap delta time, add object pools
  • check mobile support — touch input, hit targets, gyro

Example prompts for the agent

  • improve my game
  • what's wrong with my game
  • polish the visuals

How to install improve-game

1Skills CLI (Vercel)

npx skills add PlayableIntelligence/game-creator --skill improve-game -a claude-code

2Manually: put the files in place

~/.claude/skills/improve-game/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/improve-game/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about improve-game

How to install improve-game in Claude Code?

Run npx skills add PlayableIntelligence/game-creator --skill improve-game -a claude-code. The skill will appear in ~/.claude/skills/improve-game/SKILL.md.

What does improve-game do?

It audits your game across thirteen areas — from gameplay to performance — scores each one, proposes fixes, and implements the ones you choose. Each pass finds the next batch of improvements.

How many times should I run improve-game?

As many as you need. The skill works iteratively: each pass finds the next most impactful fixes. When scores across all areas are high, you'll get fewer suggestions.

Source text

SKILL.md · MIT
---
name: improve-game
description: Analyze a game, find what needs work, and implement the highest-impact improvements. Use when the user says "improve my game", "make my game better", "fix my game", "what's wrong with my game", or "polish my game". Run repeatedly — each pass finds the next most impactful thing to fix. Do NOT use for adding specific new features (use add-feature) or initial game creation (use viral-game for one-shot builds, make-game for milestone-driven projects).
argument-hint: "[area-to-focus]"
license: MIT
metadata:
  author: OpusGameLabs
  version: 1.3.0
  tags: [game, improve, audit, fix, polish]
---

## Performance Notes

- Take your time to do this thoroughly
- Quality is more important than speed
- Do not skip validation steps

# Improve Game

Make your game better. This command deep-audits gameplay, visuals, code quality, performance, and player experience, then implements the highest-impact improvements. Run it as many times as you want — each pass finds the next most impactful thing to fix.

## Instructions

Improve the game in the current directory. If `$ARGUMENTS` specifies a focus area (e.g., "gameplay", "visuals", "performance", "polish", "game-over"), weight that area higher but still audit everything.

### Step 1: Deep audit

Read the entire game codebase to build a complete picture:

- `package.json` — engine, dependencies, scripts
- `src/core/Constants.js` — all configuration values
- `src/core/EventBus.js` — all events and their usage
- `src/core/GameState.js` — state shape and reset logic
- `src/core/Game.js` (or `GameConfig.js`) — orchestrator and game loop
- Every file in `src/scenes/` or `src/systems/` — gameplay logic
- Every file in `src/entities/` — game objects
- Every file in `src/ui/` — game over, overlays
- Every file in `src/audio/` — music and sound effects
- `index.html` — markup, overlays, styles, viewport meta
- `src/systems/InputSystem.js` — input handling, mobile support (gyro, joystick, touch)
- `tests/` — test coverage and quality

Don't skim. Read every file completely so you understand the full picture before making recommendations.

### Step 2: Score and diagnose

Rate each area on a 1–5 scale (1 = broken/missing, 3 = functional but basic, 5 = polished and complete). Present a diagnostic table:

| Area | Score | Diagnosis |
|------|-------|-----------|
| **Gameplay feel** | | Is the core loop fun? Are controls responsive? Does difficulty ramp? |
| **Visual polish** | | Backgrounds, colors, particles, animations, screen effects |
| **Game Over & UI** | | Game over screen, transitions, restart flow, buttons |
| **Audio** | | BGM for each state, SFX for each action, volume balance, mute toggle |
| **Code architecture** | | EventBus, GameState, Constants, no circular deps |
| **Restart safety** | | Does GameState.reset() fully clean up? 3 restarts identical? No stale listeners/timers? |
| **Performance** | | Delta capping, object pooling, disposal, no leaks |
| **Player experience** | | Onboarding, feedback, difficulty curve, replayability |
| **Mobile support** | | Touch input, responsive layout, gyro/joystick, 44px touch targets |
| **Play.fun safe zone** | | All UI elements below `SAFE_ZONE.TOP` (~8% / 75px)? Nothing hidden behind Play.fun widget? |
| **Gameplay invariants** | | Can the player score? Can the player die? Do game-over buttons show text? Does `render_game_to_text()` return valid JSON? |
| **Entity sizing** | | Are characters large enough to read? Character-driven games need 12–15% of GAME.WIDTH. Proportional sizing (`GAME.WIDTH * ratio`), not fixed pixels? |
| **Test coverage** | | Boot, gameplay, scoring, restart, visual, perf tests |

**Overall score: X / 65**

### Step 3: Improvement plan

From the audit, identify the **top 5–8 improvements** ranked by player impact. For each one:

1. **Title** — short name (e.g., "Add difficulty progression")
2. **Area** — which category it improves
3. **Impact** — why this matters to the player
4. **What to do** — plain-English description of the change
5. **Files touched** — which files will be created or modified

Format as a numbered list. Put the highest-impact items first.

Present the plan to the user and ask which improvements to implement. Options:
- "All" — implement everything
- Specific numbers — implement selected items
- "Top 3" — just the most impactful

**Wait for the user to choose before implementing.**

### Step 4: Implement

For each selected improvement, follow these rules:

1. **Constants first** — add all new config values to `Constants.js`. Zero hardcoded values.
2. **Events next** — add any new events to `EventBus.js` using `domain:action` naming.
3. **State if needed** — add new state fields to `GameState.js` with proper reset.
4. **New files in proper directories** — entities in `entities/`, systems in `systems/`, UI in `ui/`.
5. **Wire through orchestrator** — register new systems in `Game.js` with proper lifecycle.
6. **EventBus for communication** — modules never import each other directly.
7. **Match existing code style** — same patterns, naming, formatting as the rest of the project.
8. **Don't break what works** — existing gameplay, controls, and scoring must still function identically unless the improvement specifically targets them.

After implementing each improvement, run `npm run build` to catch errors immediately. Fix any build errors before moving to the next improvement.

### Step 5: Verify

After all improvements are implemented:

1. Run `npm run build` — confirm clean build with no errors
2. Run `npm test` if tests exist — confirm all tests still pass
3. If tests fail because of intentional changes (new scenes, changed elements), fix the tests to match the new behavior
4. If the game has visual regression tests, update snapshots: `npm run test:update-snapshots`

### Step 6: Report

Tell the user what changed:

> **Improvement report**
>
> **Score: X/65 → Y/65** (+Z points)
>
> **Implemented:**
> 1. [Title] — [one-sentence summary of what changed]
> 2. [Title] — [one-sentence summary of what changed]
> ...
>
> **Files created:** [list new files]
> **Files modified:** [list changed files]
>
> **How to test:** Run `npm run dev` and try:
> - [specific thing to look for]
> - [specific thing to look for]
>
> **Next improvements:** Run `/game-creator:improve-game` again to find the next batch.

## Focus areas

When `$ARGUMENTS` includes a focus area keyword, weight these specific checks:

**"gameplay"** — core loop, controls, difficulty progression, enemy variety, power-ups, risk/reward, pacing, level design

**"visuals"** — load the game-designer skill and apply its full design audit (backgrounds, palette, animations, particles, transitions, typography, juice)

**"performance"** — delta capping, object pooling, geometry/material disposal, event listener cleanup, requestAnimationFrame usage, draw call count, texture atlas usage

**"polish"** — screen shake, hit pause, squash/stretch, easing curves, sound timing, button feedback, score popups, death animations, transition smoothness

**"game-over"** — game over screen appeal, restart flow, button styling, score display, best score display, animations. **Button text must be visible** — verify the `createButton()` pattern uses Container + Graphics + Text (Graphics first, Text second, Container interactive). If button labels are invisible, the pattern is broken. Note: games do not have title/menu screens by default (Play.fun handles the chrome). Only add a title screen if the user explicitly requests one. Score HUD is handled by the Play.fun widget — do not add a separate in-game score display. All game-over UI must be below `SAFE_ZONE.TOP`.

**"audio"** — load the game-audio skill. Check BGM coverage (every game state should have music), SFX coverage (every player action should have feedback), volume mixing, transition smoothness between tracks

**"mobile"** — touch input implemented (tap zones, virtual joystick, or gyroscope), responsive canvas (`Phaser.Scale.FIT` or CSS `width:100%`), 44px minimum touch targets, virtual joystick or tap zones for movement, gyroscope support for tilt games, no hover-only interactions, tested on mobile viewport (Pixel 5 emulation). Read `InputSystem.js`, all scene/system `update()` methods, `index.html` viewport meta, and `Constants.js` for touch target sizes.

**"ux"** — onboarding (does the player know what to do?), feedback (does every action have a response?), difficulty curve (is it too hard/easy?), replayability (is there a reason to play again?)

## Example Usage

### General improvement
```
/improve-game
```
Result: Deep audit → scores 38/65 → identifies top 6 improvements (difficulty progression, screen shake, better game-over, particle effects, mobile touch, restart safety) → asks which to implement → implements selected → score rises to 52/65.

### Focused improvement
```
/improve-game gameplay
```
Result: Weights gameplay checks higher → finds enemy variety is low and difficulty is flat → adds 3 enemy types with distinct behaviors, progressive speed ramp, and score-based difficulty tiers.

## Troubleshooting

### Improvements break existing gameplay
**Cause:** Changes to shared systems (physics, scoring) have cascading effects.
**Fix:** Test each improvement individually. Run existing tests after each change. Revert if a change breaks core gameplay.

### Too many changes at once
**Cause:** Audit identified 10+ issues and all were implemented simultaneously.
**Fix:** Prioritize top 3-5 improvements. Ship incrementally. Verify after each change.

## Tips

> This command is designed for iterative improvement. Run it multiple times:
> - First pass: fix the biggest gaps (missing features, broken UX)
> - Second pass: add polish (particles, transitions, juice)
> - Third pass: fine-tune (difficulty curve, timing, balance)
>
> Each run picks up where the last left off — previously fixed areas will score higher, surfacing new priorities.
>
> For targeted work, use the focus area: `/game-creator:improve-game gameplay` or `/game-creator:improve-game visuals`

© OpusGameLabs · MIT · PlayableIntelligence/game-creator

Similar skills

Everything for Game dev and 3D: Unity, Unreal, Godot, Blender →

From the same set30

game-audio Generates procedural background music and sound effects for browser games using Web Audio API. Needs zero external assets or npm packages. CX Codex +1 1,300installs game-architecture A skill that lays out how a browser game project should be structured: EventBus, one GameState, Constants.js, clear layers. Useful once game code starts sprawling. CX Codex +1 1,200installs make-game Guides game development across design, engine scaffolding, feature work, and architecture documentation. CX Codex +1 1,100installs game-qa A skill that turns the agent into a QA engineer for browser games: visual regression, gameplay checks, performance and accessibility via Playwright. Useful when writing or debugging game tests. CX Codex +1 1,100installs game-3d-assets Finds, generates, and integrates GLB/GLTF models into Three.js browser games to replace primitive cubes and spheres. CX Codex +1 1,100installs threejs-game Locks in a project layout and four core modules for building 3D browser games with Three.js. Useful when the agent scaffolds a scene and game loop from scratch. CX Codex +1 1,100installs add-audio This skill adds background music and sound effects to a browser game using the Web Audio API. No audio files, no npm packages — everything is synthesized in the browser. CX Codex +1 1,000installs add-assets Swaps the circles and rectangles in a 2D game for pixel art sprites of characters, enemies and items. Useful once the prototype plays fine but looks like a wireframe. CX Codex +1 997installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor