Skip to main content

Godot Bridge

把 Profy 接到你本机的 Godot Engine,让专家能编辑场景树、写 GDScript、运行游戏,并做确定性回放测试 最后这项是它区别于其他所有 3D/游戏桥接的地方:绝大多数 AI 游戏开发只能截图看,而 Godot 允许冻结时间、逐帧推进、注入输入、读取任意节点属性——测试变成断言,不再是”看起来对”
当前实现状态(核对于 2026-08-11):本插件的 mcpServers 声明(uvx godot-mcp)在代码库中没有任何消费方——agent-runtime 的 PluginManifest.mcp_servers 被解析但从未读取,Core 侧只装配社区插件的 MCP(buildCommunityMcpToolsAndConfig),不覆盖内置 manifest。勾选后你会得到它的技能与提示词(下面的确定性回放方法论会真实影响模型行为),但拿不到可调用的 Godot 工具

声明与激活

两道门同时通过才激活:勾选(user_selectable)+ Desktop 已连接(desktop_connected,即 PROFY_DESKTOP == "true")。云端网页对话里它不存在。

环境前置

确定性回放测试

这是本插件的核心价值,值得单独理解。 普通的 AI 游戏测试是「跑起来,截图,看看像不像」。问题在于游戏是实时的:同一段代码两次运行,物理步长、帧率抖动、输入时机都不同,看到的画面也不同。截图对不上,你不知道是代码错了还是这一帧恰好没到位。 Godot 允许把时间冻住:
之后每一帧都由测试显式推进。整个循环:

例:测试跳跃

注意这里断言的是数值,不是像素。「跳起来了」变成 position.y > initial_y 这种可判定的命题,失败时你知道是跳跃高度不足还是根本没触发,而不是对着一张图猜。

开发工作流

前置检查三步:确认 MCP 连通(调 get_project_info)、确认 Godot 版本 ≥ 4.3、浏览项目结构(场景、脚本、资产)。

能力清单(MCP 接线补齐后可用)

安全规则

  • 不经询问不改 .godot/ 项目设置
  • 只用 undo 安全的操作
  • 跑测试前先保存
  • 不删除有大量依赖者的节点
最后一条是 Godot 特有的:场景树里删一个被多处引用的节点,报错会出现在完全无关的地方。

代码风格约束

提示词层要求 GDScript 保持整洁:静态类型 + @export 注解。这不是审美问题——静态类型让 Godot 在编辑期就报错,@export 让参数能在编辑器里调,两者都直接减少「跑起来才发现」的往返。

边界与失败态

  • 没有 Desktop 就没有这个插件,云端对话里不出现。
  • Engine.time_scale = 0 期间游戏不会自己前进。如果测试脚本忘了 step_frame(),表现是「卡住了」而不是报错——这是预期语义,不是死循环。
  • MCP 声明当前未接线(见页头),所以模型会给出方法论而非实际执行。
  • 确定性回放只覆盖能读到属性的逻辑。渲染正确性、shader 表现、音频这些读不出数值的部分,仍然只能靠截图与人工判断。
  • 热重载有边界。GDScript 可以热重载,但改变了导出变量结构或场景结构时通常需要重启游戏。

排错

验证你的配置

  1. 在 Profy Desktop 新对话的插件面板中应能看到 Godot Bridge。看不到 = Desktop 未连接。
  2. 勾选后问「当前 Godot 项目的场景树是什么结构」。返回方法建议而非真实节点树,说明命中页头描述的未接线状态。
  3. 让它「设计一个验证角色跳跃高度的测试」。正确回答必须包含 set_time_scale(0)step_frameread_node_property 断言三要素——这验证技能层已加载。

相关页面

3D 与可视化开发

云端 game-studio:Three.js / R3F / Phaser 网页游戏

Blender Bridge

同族桥接:本机 Blender 建模与 GLB 导出
核对日期 2026-08-11。来源:services/agent-runtime/src/plugins/builtin/godot-bridge/plugin.jsonskills/godot-workflow/SKILL.mdprompts/GODOT.mdservices/agent-runtime/src/plugins/registry.py_check_activation)。