用 Codex 加 Unreal Engine 5.8 的 MCP 接口做游戏,这件事已经从”能不能”的演示题变成了可复现的工程流水线。本文按 Epic 官方文档加真实调用记录,把这条 AI 游戏开发 流水线完整拆开:Unreal MCP 到底开放了哪些能力、Agent 在编辑器里实际执行了什么动作、3D 资产这环怎么用 AI 顶掉建模工时,以及最容易把人卡死在第一步的九个连接坑。

第三人称骑马冲锋:AI 驱动的三国战棋原型

同一套系统有两个视角:俯视沙盘上指挥千军万马,或者切到第三人称亲自操控武将冲锋。

上帝视角:沙盘上的部队编队与指挥

第三人称近景:骑兵与步兵在战场上的交错

先说结论:这条流水线的代码侧和编辑器操作侧已经接近全自动,真正还卡在人身上的,是 3D 资产的骨骼与动画,以及”怎么验收 Agent 写出来的东西对不对”。想理解这条链路的能力边界,先得搞清楚 Unreal MCP 到底是个什么东西。

一、机会窗口:Unreal Engine 5.8 把 MCP 服务器塞进了编辑器

2026 年 6 月,Unreal Engine 5.8 正式发布(Epic 官网新闻 6 月 23 日,开发者论坛公告 6 月 17 日)。这一版最值得注意的不是渲染管线,而是官方内置了实验性插件 Unreal MCP —— 插件标识是 ModelContextProtocol,路径在 Engine/Plugins/Experimental/ModelContextProtocol/ModelContextProtocol.uplugin。

Epic 文档里的定义非常直接:

Unreal MCP embeds an MCP server inside the Unreal Editor process so that any MCP-compatible AI agent, such as Claude Code, Cursor, or the MCP Inspector, can drive the editor over a local HTTP connection.

翻译成工程语言:MCP 服务器跑在编辑器进程内部,任何说 MCP 协议的客户端都能通过本机 HTTP 直接驱动引擎。默认绑定 http://127.0.0.1:8000/mcp,serverInfo.name 恒为 unreal-mcp,端口和 URL 路径都能在编辑器偏好里改。

它开放的能力覆盖了相当一部分日常编辑器操作:

能力类别 官方文档列出的内容
关卡与对象 生成 Actor(spawn actors)、检查 Slate widget
材质与渲染 配置灯光(configuring lighting)、创建材质实例(creating material instances)
质量验证 运行自动化测试(running automation tests)
扩展方式 用自己的 Toolset / IModelContextProtocolTool 继续加工具

A first look at Unreal MCP:编辑器内嵌终端直接驱动引擎

三个模块的职责划分也值得记一下:ModelContextProtocol 和 ModelContextProtocolEngine 是运行时模块(服务器、协议实现、设置、控制台命令),ModelContextProtocolEditor 只管自动启动钩子和”把 Toolset Registry 里的工具集适配成 MCP Tool”。所以服务器本身并不死绑编辑器 —— 打包后的游戏也能通过 IModelContextProtocolModule::StartServer() 托管一个 MCP 服务器,只是 Registry 里的工具不会被自动发现,得自己 AddTool() 注册。

⚠️ 官方在这一页开头就写着:这是 Experimental 特性,「many features are incomplete or missing」,而且没有鉴权层、只绑 loopback、仅支持 HTTP 与 SSE(stdio 和 WebSocket 都不支持)。本地开发够用,别想着把它暴露到局域网或公网。

二、整条流水线:AI 游戏开发拆成三条并行支路,终点都是 Unreal MCP

这套做法最聪明的地方不在于”AI 写代码”,而在于把一个游戏项目拆成三条并行支路,每条支路都自带工具,最后统一汇入 Unreal MCP。最初的想法其实只是几张草图,后来才长成完整流程:

流程草图:玩法设计、角色与动画、战场素材三条支路汇入 Codex

整体结构是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
+------------------------------------------------------------+
| Codex: feasibility -> phases -> acceptance checklist |
+------------------------------+-----------------------------+
|
+--------------------+--------------------+
+----------------+ +----------------+ +----------------+
| Gameplay | | Character | | Battlefield |
| prototype | | Hi3D -> | | maps / |
| -> rules | | Blender | | soldiers |
+----------------+ +----------------+ +----------------+
+--------------------+--------------------+
| | |
|
v
+------------------------------------------------------------+
| Unreal MCP: HTTP server inside the editor |
| http://127.0.0.1:8000/mcp |
+------------------------------+-----------------------------+
|
v
UE 5.8 editor / runtime

三条支路各自的分工与工具链:

支路 做什么 工具链
玩法开发 原型 → 规则:选兵、队列移动、攻击、伤亡、胜负结算 Codex → Unreal MCP
角色与动画 关羽、赤兔马、青龙偃月刀的建模、骨骼与动作调试 Hi3D Agent → Blender → Unreal MCP
战场素材 地图场景、士兵模型等外部素材的挑选与摆放 素材库 + Unreal MCP

3D 游戏制作流程图:Codex 居中,三条支路最终通过 MCP 与虚幻引擎交互

有意思的是,在这套分工里 Codex 不只是”写代码的”,它同时扮演了项目管家、玩法设计师和任务调度器的角色。具体的做法是:让 Agent 先把一个模糊的想法拆成”能独立验收的小步”,每一步都能立刻试玩,然后再决定哪条支路先动。

三、第 0 步:让 Codex 先评估可行性,再拆阶段出验收清单

这是整条流水线的启动姿势,而且顺序不能乱。Agent 在写第一行代码之前,先被要求回答四个问题:

  • 哪些功能在当前技术条件下可以实现
  • 可能会遇到的技术难点是什么
  • 需要准备哪些素材
  • 需要补哪方面的知识

可行性评估阶段:先问清楚能做什么、缺什么

然后才进入第二阶段:把整个开发流程拆成不同阶段,输出一份任务清单。这份清单里最有价值的一条设计原则是 —— 每一步都做成可以试玩验收的版本,而不是攒到最后统一验收。

实际产出的清单长这样(这是已经跑通的基础 + 后续待做项):

顺序 制作内容 完成后能体验到什么
已完成 基础镜头、选兵、队列移动、攻击、伤亡、简单敌军迎击、胜负结算与重开 一个能开一局、能分胜负的循环
1 部队避让与接敌阵型 改善友军重叠、多人围攻挤成一团、转向与补位,多队同时移动交战时阵型更难混
2 指挥操作与中文界面 中文提示、目标标记、部队编号快捷键、暂停下令、速度控制
3 士气与溃退 伤亡与附近友军溃散影响士气,加入撤退与重整;战斗可以通过打垮士气获胜
4 侧击与背击 判断攻击方向,加入侧后方奇袭和士气惩罚,绕侧翼、包围开始有明确收益
5 兵种差异 先完成枪兵、刀盾兵、弓兵,再加入骑兵,可搭配阵容,测试掩护、远射和冲锋
6 战场地形与寻路 山坡、树林、障碍、通道,加入绕行与射线遮挡,地形会影响布阵和进攻路线
7 敌军战术 分配目标、保护弓兵、使用预备队,敌军能组织进攻而非只向最近目标靠近

Codex 输出的后续制作清单:每一步都对应可试玩的验收点

这份清单的工程质量其实比”AI 帮我列个计划”高一个档次:它把抽象需求(比如”战斗手感要好”)翻译成了可验证的行为(比如”侧击要有明确收益”),这正是后面 Agent 能自我验收的前提。玩法设计的参考系是《全战:三国》的战棋层加《骑马砍杀》的第三人称操控层,前者给宏观调度,后者给个体操作。

四、代码侧:Agent 在编辑器里到底干了什么

这是最能说明”AI 到底能不能碰引擎”的一段。实际调用记录里,Agent 通过 unreal-mcp 工具做的是这样一类事:

  • 在项目里检索可用的资产与子图,判断”这一步到底需不需要额外查资产”
  • 发现选定的子图已经能完成目标后,主动放弃一次查询(记录里明确写了”选定了一个恰好满足需求的子图,不用再查 SGD 资产”)
  • 读取地形数据、抽取点位、批量散布树木
  • 替换建筑生成节点:识别出一个自建的 Assign_CityStyleBuildings 原语,带着 minHeight、maxHeight、buildingStyles、staggered、foundation 这些参数,把旧的入口节点替换成”每类建筑一个原语”
  • 整体缩放对齐(propagating 阶段耗时 58 秒,约 3.1k tokens)

Agent 在 UE 编辑器里执行 unreal-mcp 工具调用,生成程序化城市

几个关键工程细节决定了这类调用能不能稳定跑通:

机制 官方定义 对 Agent 的影响
Tool Search 模式 tools/list 默认只返回 list_toolsets / describe_toolset / call_tool 三个元工具 工具集几百个时不会撑爆上下文,Agent 需要时再按需展开
线程模型 Tool 调用在游戏线程上串行执行 客户端不能并发发工具调用,否则会互相踩
命令行开关 -ModelContextProtocolStartServer、-ModelContextProtocolPort=N 可以在 commandlet 里起服务器,做自动化流程
工具刷新 ModelContextProtocol.RefreshTools 重新轮询注册表 Live Coding 改完函数体后跑一次;但新增 UFUNCTION 必须重启编辑器

另外,官方自带了一套工具集基线:SceneTools、ActorTools、MaterialInstanceTools、ObjectTools(Python 实现),C++ 侧则有 UAttributeSetToolset(在 GASToolsets 插件里,默认禁用)。想自己加工具,规矩很明确:Python 侧用 @unreal.uclass() + @toolset_registry.tool_call + @staticmethod,类型注解直接生成 JSON Schema,docstring 用 Google 风格的 Args: / Returns:;C++ 侧继承 UToolsetDefinition 并标 meta = (AICallable)。描述写得好不好,直接决定 Agent 选不选你的工具 —— 这是写 Toolset 时最容易被低估的成本。

五、3D 资产侧:Hi3D Agent 把”建模”压缩成一句话

游戏项目里最贵的从来不是代码,而是美术资产。这条流水线的做法是引入 Hi3D Agent —— 一站式 AI 3D 创作平台 Hi3D(开发方 Math Magic)推出的 3D 创作 Agent,2026 年 9 月 21 日发布,官方定位是”首个专为 3D 创作打造的一体化 AI Agent”,底层是 Hi3D V3.0 —— 首个商用的 2048³ 体素级分辨率 AI 3D 模型,Agent 侧内置 GPT-6 Astra。

实际使用下来的操作序列是这样的:先出提示词图 → 云端生成模型 → Agent 拆件 → 记录进资产库。中间的一次生成任务留下了完整痕迹:

  • 云端生成产出两版模型:chitu · v2(GLB 47.17 MB)与 chitu · v3(GLB 191.58 MB)
  • Agent 一次任务完成 6 项操作(思考 1 次 · 5 次工具调用)
  • 自动拆件:赤兔马的鬃毛和尾巴被拆成独立网格,可以分别选择、隐藏或调整位置 —— 这一步对后续骨骼绑定几乎决定成败
  • 交付形态:登记为包含鬃毛、尾巴等 10 个独立部件的资产
  • 关键限制:目前还没有绑定骨骼,也没有启用物理模拟

Hi3D Agent:云端生成 + 自动拆件,输出可交付的 GLB 资产

平台侧配套能力还包括 3D Model Maker(图生 3D、贴图、拆件、多格式导出)、AI Texturing、Split for 3D Printing(拆件并自动加连接件)、多色打印等。计费走积分制,注册可领积分,新用户有 48 小时免费体验窗口。

⚠️ 两个要提前知道的现实问题:一是 GLB 体积(47 MB / 192 MB)直接进 UE 是不可能不炸内存的,必须减面 + LOD + 纹理压缩;二是 Hi3D 不解决绑定与动画,它省掉的是”从零建模”的工时,不是”让它动起来”的工时。

六、Blender 是省不掉的中间层

所以关羽、赤兔马、青龙偃月刀这三件套的最终形态,是在 Blender 里反复调出来的:模型整合进 Blender 之后,Agent 参与骨骼与动作的调试,画面里能看到至少三轮”再调一版”(每一次都是同一个动作修一个具体问题),最后才导入虚幻引擎试运行。

Blender 里反复调试角色动作与动画,再导入 UE

这一环的定位需要说清楚:AI 把资产生产的前半段(概念图 → 高精度网格 → 分件)压缩到了分钟级,但后半段(蒙皮权重、骨骼层级、动画曲线、碰撞体、LOD)依然是人和 Agent 协作的重活。想跳过 Blender 直接把 AI 生成的模型塞进 UE,结果通常是模型在原地抽搐。

七、原型阶段的纪律:先方块人,后内容

整个项目最初的原型极其简陋 —— 只有方块人物和一个简单的测试场景,唯一目的是验证基础功能能不能跑通。等核心循环(选兵 → 队列移动 → 攻击 → 伤亡 → 胜负结算 → 重开)跑通之后,才让 Codex 逐步丰富内容:从素材库里挑合适的地图和士兵素材,一点点把战场环境搭出来。

原型阶段:方块人物 + 测试场景,只验证基础功能

这个顺序值得单独拎出来说,因为它是整个项目能”一周做完”的关键:内容丰富度是可延后的,玩法闭环不可延后。很多人用 AI 做项目时反过来做 —— 先堆素材和场景,最后发现核心循环根本不好玩,素材全废。

逐步丰富后的战场:部队编队与阵型开始成型

顺带提一句素材来源的合规问题:地图和士兵素材一般来自网络素材库(UE 生态的 Fab 是主要来源),商用必须拿到授权;《三国》这个题材本身没有版权,但你用的每一个具体美术资产都有版权。这条流水线不帮你解决任何授权问题。

八、Unreal MCP 的九个连接坑(踩过才知道)

Unreal MCP 是实验特性,文档自己都写明”many features are incomplete or missing”。下面这几条来自 Epic 开发者论坛的真实排障记录和官方文档,建议直接照着做:

  1. 端点必须是 http://127.0.0.1:8000/mcp,不是裸 :8000。连到根路径会在 TCP 层连上、协议层立刻断,表现就是”连接秒断”,很容易误判成插件坏了。
  2. 健康检查用 GET:GET http://127.0.0.1:8000/mcp 返回 405 说明服务器活着;再 POST 一个 initialize 载荷完成握手。
  3. 服务器在编辑器进程内,要等编辑器完全加载(地图 + 着色器)之后再连;连接能扛住编辑器重启,但扛不住客户端重启 —— 客户端重启后必须重连。
  4. “MCP Client Toolset” 是让 UE 当客户端用的,和对外提供服务无关,打开它不会修复入站连接。
  5. list_toolsets 只返回 AgentSkillToolset 说明 toolset 插件没在项目里启用,和服务器本身无关。
  6. Codex CLI 的 TOML 配置是 write-once:GenerateClientConfig 拒绝覆盖已存在的文件,配置过期了得手动删掉再生成(JSON 格式的 .mcp.json 则会合并,反复执行安全)。
  7. Live Coding 不传播新的 UFUNCTION 声明:改函数体可以热重载,新增工具必须重启编辑器,之后还要跑 ModelContextProtocol.RefreshTools 并重连客户端。
  8. 只支持 HTTP 与 SSE,stdio / WebSocket 都不支持;没有鉴权、只绑 loopback。
  9. 在编辑器内嵌终端跑 Agent 要额外两步:export TERM=xterm-256color,并显式 cd 到 .mcp.json 所在目录(终端面板默认从引擎安装目录启动)。少了第一条,claude 这类 CLI 会退化到裸转义序列输出。

调试时还有三个官方入口:日志类别 LogModelContextProtocol(控制台 Log LogModelContextProtocol Verbose)、输出日志里的启动绑定信息、以及 MCP Inspector(npx @modelcontextprotocol/inspector,用 Streamable HTTP 指向 http://127.0.0.1:8000/mcp)。Tool 调不通时先用 Inspector 排除 Agent 本身的理解偏差 —— 这一步经常能直接定位问题。

九、这套流程适合谁,不适合谁

适合 不适合
独立开发者做玩法原型 / 可玩 Demo,验证”这个机制好不好玩” 目标是成品美术质量的项目 —— AI 生成的资产离商业品质仍有距离
已经有 UE 基础、能看懂蓝图/C++/资产管线的美术或 TA 完全不懂 UE 的人 —— Agent 会替你搭,但你没法验收它写的东西对不对
内部工具、关卡原型、内部工具型小游戏的快速验证 不熟悉 IP 与资产合规的团队 —— 素材授权问题会直接卡住上线
想把”AI 能做游戏”从口号变成可度量工程量的团队 指望 Agent 一次到位端到端交付美术成品的人

十、一周复刻清单

如果要用 UE 5.8 + Codex + MCP 复刻这套流程,按这个顺序走:

  1. 装 UE 5.8,Edit > Plugins 里启用 Unreal MCP 和 All Toolsets(会连带启用 Toolset Registry),重启编辑器。
  2. Edit > Editor Preferences > General > Model Context Protocol → 打开 Auto Start Server,确认端口 8000、路径 /mcp。
  3. 编辑器控制台执行 ModelContextProtocol.GenerateClientConfig Codex(想同时配多个 Agent 用 All),在项目根目录生成配置文件。
  4. 从项目根目录启动 Codex —— 在别的目录启动它就找不到 MCP 配置。
  5. 先让 Agent 出可行性评估 + 阶段拆分 + 任务清单,每条验收标准都写成可试玩的行为。
  6. 做方块原型,只跑通核心循环:选兵 → 移动 → 攻击 → 伤亡 → 胜负结算 → 重开。
  7. 再补三块:玩法规则、3D 资产(Hi3D 出模型 → Blender 补骨骼动画 → 减面 → 导入)、战场场景。
  8. 每加一块就试玩验收,别攒到最后。

总结:AI 把游戏开发切成了”可并行的三段”

一周做出一个能玩的三国战棋原型,这件事真正被证明的不是”AI 能写游戏”,而是游戏开发可以被切成玩法、角色动画、战场素材三条并行支路,每条支路配一个 Agent(规划统一交给 Codex),最后通过 Unreal MCP 汇入同一个引擎。瓶颈从”写代码”转移到了”验收”和”美术资产的后处理”。

对想动手的人,优先级建议是:先花半天把 Unreal MCP 连通(照着第八节的九条坑走,一次通),再花半天让 Agent 把玩法原型跑通 —— 这两步加起来一天,就能验证这套流水线的上限到底在哪。如果你想先理解”MCP 把专业工具接给 Agent”这件事的通用形态,可以把 REA 逆向一切 MCP 实测 也一起读了,那是同一条思路在逆向工程方向的落地;Codex 本身的迭代节奏可以看 Codex 半年更新盘点,模型侧的底层逻辑则可以对照 AI 大模型底层逻辑拆解笔记。

欢迎在评论区说说:如果让你只保留这条流水线里的一个环节,你会留下哪一步?或者你已经在用 MCP 驱动过什么工具,欢迎分享踩坑经历。

参考资料