关于 improve-game
improve-game 是一项用于改进当前游戏项目的技能,会审查玩法、视觉、代码、性能和体验,再提出按影响排序的改进方案。实施前先征求选择,并在完成后构建和测试。
主要功能
- 01全面审查游戏代码与体验
- 02按多个维度评分并诊断
- 03列出优先级改进计划并等待确认
- 04实施改动后运行构建与测试
- 05支持按玩法、视觉或移动端聚焦
适用场景
- 01评估现有游戏并确定优先修复项
- 02针对移动支持或性能进行专项审查
- 03实施选定改动并验证构建和测试
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ playableintelligence/ game-creator --skill improve-game安装后在 Claude Code 中输入/improve-game确认已加载。
详细介绍
性能说明
- 请花时间彻底完成
- 质量比速度更重要
- 不要跳过验证步骤
改进游戏
让你的游戏变得更好。此命令会深入审查游戏玩法、视觉效果、代码质量、性能和玩家体验,然后实施影响最大的改进。你可以根据需要多次运行——每次都会找出下一个最值得修复的问题。
说明
改进当前目录中的游戏。如果 $ARGUMENTS 指定了重点领域(例如“游戏玩法”“视觉效果”“性能”“润色”或“游戏结束”),就提高该领域的权重,但仍要审查所有方面。
第 1 步:深入审查
阅读整个游戏代码库,全面了解项目:
package.json— 引擎、依赖项、脚本src/core/Constants.js— 所有配置值src/core/EventBus.js— 所有事件及其用法src/core/GameState.js— 状态结构和重置逻辑src/core/Game.js(或GameConfig.js)— 协调器和游戏循环src/scenes/或src/systems/中的所有文件 — 游戏逻辑src/entities/中的所有文件 — 游戏对象src/ui/中的所有文件 — 游戏结束界面、覆盖层src/audio/中的所有文件 — 音乐和音效index.html— 标记、覆盖层、样式、视口元数据src/systems/InputSystem.js— 输入处理、移动设备支持(陀螺仪、摇杆、触控)tests/— 测试覆盖率和质量
不要粗略浏览。彻底阅读每个文件,充分了解全貌后再提出建议。
第 2 步:评分与诊断
按 1–5 分制为每个领域评分(1 = 损坏或缺失,3 = 可用但基础,5 = 完善且精良)。提供诊断表:
| 领域 | 分数 | 诊断 |
|---|---|---|
| 游戏玩法手感 | 核心循环是否有趣?操作是否灵敏?难度是否逐步提升? | |
| 视觉润色 | 背景、颜色、粒子、动画、屏幕特效 | |
| 游戏结束与 UI | 游戏结束界面、过渡效果、重新开始流程、按钮 | |
| 音频 | 各状态的 BGM、各操作的 SFX、音量平衡、静音开关 | |
| 代码架构 | EventBus、GameState、Constants、无循环依赖 | |
| 重新开始的可靠性 | GameState.reset() 是否彻底清理?连续重启 3 次是否结果一致?是否存在过期的监听器或计时器? | |
| 性能 | Delta 是否设有上限、对象池、资源释放、无内存泄漏 | |
| 玩家体验 | 新手引导、反馈、难度曲线、可重玩性 | |
| 移动设备支持 | 触控输入、响应式布局、陀螺仪/摇杆、44px 触控目标 | |
| Play.fun 安全区域 | 所有 UI 元素是否都位于 SAFE_ZONE.TOP(约 8% / 75px)以下?是否有元素被 Play.fun 小组件遮挡? | |
| 游戏玩法不变量 | 玩家能否得分?玩家能否死亡?游戏结束按钮是否显示文字?render_game_to_text() 是否返回有效 JSON? | |
| 实体尺寸 | 角色是否足够大、清晰可辨?角色驱动型游戏中的角色尺寸应占 GAME.WIDTH 的 12–15%。是否采用按比例缩放(GAME.WIDTH * ratio),而非固定像素? | |
| 测试覆盖率 | 启动、游戏玩法、得分、重新开始、视觉效果、性能测试 |
总分:X / 65
第 3 步:改进计划
根据审查结果,按对玩家的影响从高到低,找出5–8 项最值得改进的内容。每项包括:
- 标题 — 简短名称(例如“加入难度递进”)
- 领域 — 所改进的类别
- 影响 — 说明这对玩家的重要性
- 具体措施 — 用通俗语言描述改动
- 涉及文件 — 将创建或修改的文件
请使用编号列表,影响最大的项目排在最前面。
向用户展示计划,并询问要实施哪些改进。可选项:
- “全部” — 全部实施
- 指定编号 — 实施选中的项目
- “前 3 项” — 只实施影响最大的三项
在用户选择之前,等待并不要开始实施。
步骤 4:实现
针对每项选定的改进,请遵循以下规则:
- 先定义常量 — 将所有新的配置值添加到
Constants.js。不得使用硬编码值。 - 再添加事件 — 使用
domain:action命名方式,将所有新事件添加到EventBus.js。 - 必要时添加状态 — 将新的状态字段添加到
GameState.js,并妥善处理重置。 - 将新文件放在正确的目录中 — 实体放在
entities/,系统放在systems/,UI 放在ui/。 - 通过编排器接入 — 在
Game.js中注册新系统,并正确处理其生命周期。 - 通过 EventBus 通信 — 模块之间不得直接相互导入。
- 遵循现有代码风格 — 使用与项目其他部分相同的模式、命名和格式。
- 不要破坏现有功能 — 现有玩法、控制和计分必须保持原样,除非改进明确针对它们。
每实现一项改进后,都运行 npm run build,立即检查错误。进入下一项改进前,先修复所有构建错误。
步骤 5:验证
完成所有改进后:
- 运行
npm run build— 确认构建成功且没有错误 - 如果存在测试,运行
npm test— 确认所有测试仍然通过 - 如果测试因有意的更改(新场景、元素变更)而失败,请修改测试,使其符合新行为
- 如果游戏有视觉回归测试,请更新快照:
npm run test:update-snapshots
步骤 6:报告
告知用户有哪些更改:
改进报告
评分:X/65 → Y/65(+Z 分)
已实现:
- [标题] — [用一句话概述更改内容]
- [标题] — [用一句话概述更改内容] ...
新建文件: [新文件列表] 修改文件: [已更改文件列表]
如何测试: 运行
npm run dev并尝试:
- [要检查的具体内容]
- [要检查的具体内容]
后续改进: 再次运行
/game-creator:improve-game,寻找下一批改进项。
重点领域
当 $ARGUMENTS 包含某个重点领域关键词时,应加大对以下特定检查项的权重:
"gameplay" — 核心循环、操作方式、难度递进、敌人多样性、强化道具、风险与回报、节奏、关卡设计
"visuals" — 加载 game-designer 技能,并应用完整的设计审核(背景、配色、动画、粒子效果、过渡、排版、爽快感)
"performance" — delta 上限、对象池、几何体/材质释放、事件监听器清理、requestAnimationFrame 使用情况、绘制调用次数、纹理图集使用情况
"polish" — 屏幕震动、受击停顿、挤压与拉伸、缓动曲线、音效时机、按钮反馈、分数弹出效果、死亡动画、过渡流畅度
"game-over" — 游戏结束画面的吸引力、重新开始流程、按钮样式、分数显示、最高分显示、动画。按钮文字必须可见 — 确认 createButton() 模式使用 Container + Graphics + Text(先创建 Graphics,再创建 Text,并让 Container 可交互)。如果按钮标签不可见,则说明该模式存在问题。注意:游戏默认不包含标题/菜单画面(Play.fun 会处理界面外框)。只有用户明确要求时才添加标题画面。分数 HUD 由 Play.fun 小组件负责 — 不要在游戏内另加分数显示。所有游戏结束界面元素都必须位于 SAFE_ZONE.TOP 下方。
"audio" — 加载 game-audio 技能。检查背景音乐覆盖情况(每种游戏状态都应有音乐)、音效覆盖情况(玩家每种操作都应有反馈)、音量混音、曲目间过渡的流畅度
"mobile" — 已实现触摸输入(点击区域、虚拟摇杆或陀螺仪)、画布自适应(Phaser.Scale.FIT 或 CSS width:100%)、最小触摸目标尺寸为 44px、使用虚拟摇杆或点击区域进行移动、倾斜类游戏支持陀螺仪、没有仅限悬停的交互、已在移动端视口上测试(Pixel 5 模拟)。阅读 InputSystem.js、所有场景/系统的 update() 方法、index.html 视口元标签,以及 Constants.js 中的触摸目标尺寸。
"ux" — 新手引导(玩家是否知道该做什么?)、反馈(每个操作是否都有响应?)、难度曲线(是否太难/太简单?)、可重玩性(是否有再次游玩的理由?)
示例用法
常规改进
/improve-game
结果:深度审核 → 得分为 38/65 → 找出最重要的 6 项改进(难度递进、屏幕震动、更好的游戏结束界面、粒子效果、移动端触摸、重新开始安全性)→ 询问要实施哪些改进 → 实施所选项 → 得分升至 52/65。
针对性改进
/improve-game gameplay
结果:提高 gameplay 检查项的权重 → 发现敌人种类较少且难度平缓 → 添加 3 种行为各异的敌人、逐步提升速度,以及基于分数的难度等级。
故障排查
改进破坏了现有玩法
原因: 修改共享系统(物理、计分)会产生连锁影响。 解决方法: 每次单独测试一项改进。每次修改后运行现有测试。如果修改破坏了核心玩法,则撤销该修改。
一次改动过多
原因: 审核发现了 10 个以上问题,并且同时实施了所有改动。 解决方法: 优先处理最重要的 3-5 项改进。逐步发布。每次改动后都进行验证。
提示
此命令专为迭代改进而设计。请多次运行:
- 第一轮:修复最大的缺陷(缺失功能、损坏的用户体验)
- 第二轮:添加润色效果(粒子、过渡、爽快感)
- 第三轮:微调(难度曲线、时机、平衡性)
每次运行都会从上次的进度继续 — 之前修复过的领域得分会更高,从而显现新的优先事项。
如需针对性处理,请使用重点领域:
/game-creator:improve-game gameplay或/game-creator:improve-game visuals