mcpField
I
improve-game

improve-game

github.com/playableintelligence开发3501.1k 次安装22 周前更新
代码仓库

关于 improve-game

improve-game 是一项用于改进当前游戏项目的技能,会审查玩法、视觉、代码、性能和体验,再提出按影响排序的改进方案。实施前先征求选择,并在完成后构建和测试。

主要功能

  1. 01全面审查游戏代码与体验
  2. 02按多个维度评分并诊断
  3. 03列出优先级改进计划并等待确认
  4. 04实施改动后运行构建与测试
  5. 05支持按玩法、视觉或移动端聚焦

适用场景

  1. 01评估现有游戏并确定优先修复项
  2. 02针对移动支持或性能进行专项审查
  3. 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 项最值得改进的内容。每项包括:

  1. 标题 — 简短名称(例如“加入难度递进”)
  2. 领域 — 所改进的类别
  3. 影响 — 说明这对玩家的重要性
  4. 具体措施 — 用通俗语言描述改动
  5. 涉及文件 — 将创建或修改的文件

请使用编号列表,影响最大的项目排在最前面。

向用户展示计划,并询问要实施哪些改进。可选项:

  • “全部” — 全部实施
  • 指定编号 — 实施选中的项目
  • “前 3 项” — 只实施影响最大的三项

在用户选择之前,等待并不要开始实施。

步骤 4:实现

针对每项选定的改进,请遵循以下规则:

  1. 先定义常量 — 将所有新的配置值添加到 Constants.js。不得使用硬编码值。
  2. 再添加事件 — 使用 domain:action 命名方式,将所有新事件添加到 EventBus.js。
  3. 必要时添加状态 — 将新的状态字段添加到 GameState.js,并妥善处理重置。
  4. 将新文件放在正确的目录中 — 实体放在 entities/,系统放在 systems/,UI 放在 ui/。
  5. 通过编排器接入 — 在 Game.js 中注册新系统,并正确处理其生命周期。
  6. 通过 EventBus 通信 — 模块之间不得直接相互导入。
  7. 遵循现有代码风格 — 使用与项目其他部分相同的模式、命名和格式。
  8. 不要破坏现有功能 — 现有玩法、控制和计分必须保持原样,除非改进明确针对它们。

每实现一项改进后,都运行 npm run build,立即检查错误。进入下一项改进前,先修复所有构建错误。

步骤 5:验证

完成所有改进后:

  1. 运行 npm run build — 确认构建成功且没有错误
  2. 如果存在测试,运行 npm test — 确认所有测试仍然通过
  3. 如果测试因有意的更改(新场景、元素变更)而失败,请修改测试,使其符合新行为
  4. 如果游戏有视觉回归测试,请更新快照:npm run test:update-snapshots
步骤 6:报告

告知用户有哪些更改:

改进报告

评分:X/65 → Y/65(+Z 分)

已实现:

  1. [标题] — [用一句话概述更改内容]
  2. [标题] — [用一句话概述更改内容] ...

新建文件: [新文件列表] 修改文件: [已更改文件列表]

如何测试: 运行 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

评论

支持 Markdown