Community编程与开发github.com

Pranesh0805-S/Game-Dev-Skills

针对简单2D或3D游戏(尤其是Web和Three.js游戏)的系统化质量保证与缺陷猎杀。用于要求测试、试玩、QA调试或查找游戏中的错误,以及对照RULES.md验证游戏。生成测试计划、尽可能的自动化检查以及按严重程度排序的缺陷报告。

Game-Dev-Skills 是什么?

该技能将一个严谨的质量保证工作流带入AI辅助游戏开发环境中,尤其是在Claude Code或类似代码代理中。它的设计目标是确保2D和3D游戏(尤其是基于Web和Three.js的游戏)可靠且符合预期。技能首先要求加载或推断游戏的`RULES.md`,这是所有测试的基础。然后,它会引导用户对游戏核心系统(如游戏循环、状态机、碰撞逻辑)进行静态代码审查,并参考一份常见缺陷清单(`references/checklist.md`)。之后,技能会指导用户编写自动化测试——侧重于纯逻辑单元测试和确定性模拟——这些测试独立于人工“感觉”来验证行为。最后,它会生成一份格式化的`BUG_REPORT.md`,其中明确要求提供可重现的步骤、严重性评级以及每个缺陷的证据(如失败的测试或代码引用)。工作流最终包含一个总结表和一份未测试内容的清单,确保透明度和可追溯性。该技能非常强调基于证据的测试,明确禁止无证据地声明缺陷,也禁止未实际执行就声明代码工作正常。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Pranesh0805-S/Game-Dev-Skills/tree/HEAD/skills/game-testing

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

游戏测试

像QA工程师一样测试游戏,使用Claude Code或包含项目文件的聊天会话。

工作流

  1. 读取规则:如果存在RULES.md则打开(来自game-rules-core技能)。如果没有,则从代码中推断规则并先写下来。无法测试的规则属于规范中的缺陷。
  2. 映射代码:找到游戏循环、状态机、输入处理、碰撞、生成和计分代码。
  3. 静态审查:扫描references/checklist.md中的常见缺陷。
  4. 编写测试:对纯逻辑(碰撞计算、计分、状态转换)进行单元测试,并在可能的情况下添加确定性模拟测试(固定种子、固定dt、脚本化输入)。
  5. 运行并观察:运行测试,如果浏览器工具可用,则玩游戏并捕获控制台错误。
  6. 报告:使用以下格式编写BUG_REPORT.md。

测试类别(覆盖所有)

  • 核心循环:开始、暂停、恢复、重新开始、游戏结束、胜利。每个状态转换都有效并重置正确的项。
  • 输入:同时按键、暂停时按住键、快速点击、焦点丢失(模糊)、触摸和手柄(如果支持)。
  • 碰撞/物理:高速穿模、角落卡住、站在边缘、移动平台、掉出世界。
  • 规则:RULES.md的每一行至少有一个测试:触发条件、条件、效果、边界情况。
  • 计分/进度:正确地递增,不重复计数,重新开始时重置,持久化(localStorage)在重新加载后存活并能处理损坏数据。
  • 生成:尊重上限,始终可通过,重新启动后没有残留实体,内存不随时间增长。
  • 帧率独立性:在模拟的30、60和144 FPS下运行;游戏结果必须匹配。
  • 性能:帧时间、实体数量增长、内存泄漏、绘制调用(3D)。
  • 健壮性:调整窗口大小、切换标签页、快速重启、移动视口。
  • 确定性:相同种子加上相同输入给出相同结果。

缺陷报告格式

对于每个缺陷:

  • ID / 标题
  • 严重性:关键(崩溃、软锁、进度丢失)/ 主要(规则被破坏)/ 次要(视觉、手感)/ 打磨
  • 重现步骤(编号,精确)
  • 预期 vs 实际
  • 证据:文件和行号、控制台错误或失败的测试名称
  • 建议修复(一至两行)

报告以总结表(按严重性计数)和未测试内容列表结束。

硬性规则

  • 没有证据(失败的测试、日志或可指向的代码路径)绝不声称存在缺陷。
  • 如果未实际运行,绝不声称某功能工作正常;应说明“已审查,未执行”。
  • 优先使用确定性测试,而不是“我玩过了,感觉还行”。
  • 除非要求,否则不要修改游戏代码;先报告,按请求修复。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能