用途:在 codesmith 与 playtester 之后、宣布游戏完成之前,验证游戏是否真正可玩,而不仅是能启动和响应输入。检查玩家能否到达目标、是否存在死区、平台跳跃能否越过建筑师设计的间隙。
主要能力分三层。静态层(scripts/static_check.mjs)为纯 JS、无需浏览器,遍历 levels.json 与 gdd.json,检查 BFS 可达性(拾取物/目标是否与出生区域连通)、边界完整性(外圈不可通行环是否有洞)、出生点可站立(平台实体是否悬空)、跳跃弧间隙(间隙是否超过 2v/g × hSpeed 的最大水平跳跃距离)、目标对齐(winCondition 引用的计数器是否可被填满)、致命深坑警告、出生点碰撞。输出按关卡的结构化问题,如 unreachable-pickup、gap-too-wide、border-hole。
动态层(scripts/dynamic_check.mjs)启动开发服务器,在无头 Chromium 中用 30 秒智能模糊测试驱动游戏,随机输入左右、跳跃与动作键,逐帧记录位置、速度、HP、胜利计数器,检测卡住、出生陷阱、无进展、越界、NaN/inf 状态,并在 0/10/20/30 秒截图。视觉层由宿主智能体用自身视觉能力审查截图,发现精灵错位、瓦片渲染故障、HUD 遮挡、对比度问题、镜头取景、精灵翻转等静态检查无法覆盖的问题。
使用方式:依次运行 static_check.mjs <project-dir>、dynamic_check.mjs <project-dir> [--port N] [--seconds 30],可选运行 judge_visuals.mjs <project-dir> 生成截图与 JSON 摘要;将问题交给 level-fixer(关卡数据)或 refiner(代码)修复,再重跑,最多迭代 3 次。
适用场景:生成式游戏项目的可玩性验证与关卡质量把关。限制:动态检查依赖 Playwright 与无头浏览器;视觉层需宿主智能体具备视觉能力;具体安装与依赖信息暂未提供。