AI 改完场景,怎么知道没改坏?EVEngine 0.6.1 的白盒自动试玩

让 AI 在场景里增加一面墙很容易,判断它有没有把玩家的路线堵死,则需要真正运行游戏。

我是 EVEngine 的作者。我一直关注 AI 做游戏之后的维护问题:哪些规则必须保留,怎样把规则变成可以重复执行的检查。0.6.1 纳入的 whitebox-playtest,就是沿这个方向做的一步。

把一次手动检查留下来

设想一个走廊场景。人手检查时,会重置场景、调整墙体、按住前进键、等待几帧,再查看角色和场景状态。下次改了墙的位置,还要重复这些步骤。

白盒工具把这些步骤组织成一份 recipe:reset、scene、inputs、waitFrames、play,以及最终 assert。它既能批量搭景,也能注入输入,并把结果交给断言检查。目的在于让检查步骤可以保存、重跑和比较。

引擎侧提供 eve_scene_batch 和 eve_whitebox_playtest;Python 工具也能作为独立 stdio MCP 服务接入,提供 wb_run、wb_apply_scene、wb_playtest、wb_default_recipe。

批量操作还有一个实际作用:把多次场景调整放在一次调用里,减少 Agent 逐对象来回调用的次数。但批量提交是否全部成功,仍要读取返回结果,不能凭调用次数推断。

从最小 recipe 开始

仓库的 tools/whitebox-playtest 目录提供 corridor recipe。先在该目录验证工具配置:

bash 复制代码
python -m whitebox_playtest --dry-run --trace

干跑不需要引擎,适合检查 recipe 和工具接口;它不能证明真实碰撞或角色移动正确。连接真实引擎时,可按该版本 README 的方式启动舞台:

bash 复制代码
eve run --debug --mcp-port=7529 examples/ai-stage

然后在工具目录执行:

bash 复制代码
python -m whitebox_playtest recipes/corridor.json --port 7529 --report build/wb_report.json

这些命令来自 v0.6.1 的工具文档,运行前需要对应的 Python 环境和带相关模块的引擎。输入包含等待或抓帧时,调用可能返回 pending;需要继续轮询 eve_input_poll,直到完成。Python runner 已负责这一步。

断言要检查游戏要求

示例 recipe 展示了 scene.applied、info.count 等报告字段的断言,也支持 eq、gte、contains、truthy 等操作。它们能检查基本执行结果,但"对象添加成功"与"玩家能走到出口"是两种不同的要求。

对于真实游戏,可以逐步补充更贴近玩法的检查:在固定起点生成角色,运行明确的输入或控制脚本,在限定时间内检查目标状态;失败时保存状态和画面。具体目标和观察字段需要由游戏接入,不能照搬一个通用断言就宣布地图全部连通。

尤其要区分导航与移动:寻路算出了路径,角色仍可能因为碰撞体、台阶或自身尺寸而卡住。涉及通行性的验收,应尽可能让真实角色控制和碰撞参与。

用同一份检查陪着 AI 继续改

比较适合的工作方式是:先把一个已知能通过的小场景存成 recipe,再让 AI 改一处内容,重复运行相同检查。如果失败,把报告、输入和场景变更一起交给它,缩小问题范围。

检查通过也有范围。它只能说明这份 recipe 覆盖的要求得到满足;关卡节奏、战斗手感和美术质量仍需要人体验。对维护来说,先把几条确定的硬性规则守住,已经比每轮都从头人工巡视更有积累价值。

这项能力由 PR #545 引入,并纳入 0.6.1。完整配置、recipe 字段与示例见 v0.6.1 工具说明。本文是基于源码文档的工作流介绍,没有另行执行上述命令。

EVEngine 源码 · 官网。项目采用双许可,使用及商用条件见仓库许可证。

相关推荐
风无雨3 小时前
三角洲如何快速拾取物品
游戏
老王的笔记v7 小时前
71期 免费开源游戏资源管理工具 Pavise模式切换 游戏库 程序白名单与系统体检
游戏·电脑
Escalating_xu9 小时前
【C语言项目实战】贪吃蛇(下):移动、碰撞与计分,完成一局可玩的游戏
c语言·开发语言·游戏
Solange__10 小时前
城市更新方案怎么用AI生成3D街区预演?从底图、体块到公众网页展示
人工智能·游戏·3d·ai·自然语言处理·1024程序员节·关卡设计
可涵不会debug11 小时前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
ShyanZh1 天前
【GTA】无法启动游戏排查:RockstarLauncher-C0000005与IDA环境冲突排查
游戏·gta
李航19831 天前
虚拟盖房子,在游戏中学习房子的建造过程
人工智能·学习·游戏·计算机视觉·ai编程
充值内卷1 天前
C++单文件迷宫游戏:TauriCPP 开发全记录
开发语言·c++·游戏
郝学胜-神的一滴1 天前
游戏设计:原型与开发 12:概率和反馈与数值平衡实战
人工智能·游戏·游戏程序·游戏策划·游戏设计