返回博客

Epic Games 会将 Model Context Protocol (MCP) 引入 UEFN 吗?AI 辅助 Verse 脚本编写背后的技术

发布于 2026年6月29日
Epic Games 会将 Model Context Protocol (MCP) 引入 UEFN 吗?AI 辅助 Verse 脚本编写背后的技术

概要

本文探讨了 Unreal Engine 5.8 实验性 Model Context Protocol (MCP) 插件对解决 UEFN 与 Verse 脚本本地上下文缺失问题的关键作用。分析了当前 AI 助手在沙箱环境下的局限性,以及原生 MCP 在资产查询、日志诊断和 Scene Graph 对齐方面的技术优势。最后介绍了如何利用 Backend 平台以及结构化 prompt 文件等实用方案来优化当前的游戏开发工作流。

每个 UEFN 创作者都深知那种枯燥乏味的循环:从 UEFN 日志中复制 Verse 编译错误,粘贴到外部 LLM 窗口,然后手动格式化关于其 Scene Graph 层级结构的上下文,只为期盼 AI 不会产生幻觉。由于公共 AI 模型是用过时或泛化的 Unreal Engine 数据训练的,它们无法感知你的本地项目结构、你正在使用的 Verse API 的确切版本,或者你在编辑器中设置的 device 配置。这种本地化上下文的缺失迫使开发者在编辑器与 AI 助手之间充当手动的数据流水线,从而拖慢了迭代效率。如果你曾花费数小时诊断由 Unreal Engine 网络驱动程序引起的 UEFN 运行会话启动超时,你就会明白,在没有一个能够直接检查你环境的助手的协助下,去排查本地日志状态是多么痛苦。

UEFN 开发中的本地上下文鸿沟

在传统的软件开发中,开发者使用 IDE 插件来索引他们的整个代码库、依赖项和环境变量。现代 AI 编码助手可以引用本地文件、读取项目结构,甚至运行测试。然而,Unreal Editor for Fortnite (UEFN) 在一个封闭且沙箱化的生态系统中运行。创作者只能使用 UEFN 暴露的内容:Verse 文件、专有的 device 配置(.utps 文件)以及 Unreal 编辑器的可视化界面。

这种孤立造成了严重的“上下文鸿沟”。当你要求一个通用的 AI 助手编写一个自定义 Verse device 时,它根本无法得知:

  • 哪些 asset 已注册在项目的 Content 目录下。
  • 关卡中绑定到你的 creative device 的确切属性和事件。
  • 在上一次 build 期间由 Verse 编译器生成的编译错误。
  • 你的自定义 Verse 代码与可视化 Scene Graph 层级结构之间的关系。

因此,AI 工具很难提供准确的答案。它们经常推荐 Verse 中不可用的 C++ 函数,引用已废弃的 API 签名,或者生成无法编译的逻辑。开发者只能不断进行复制、粘贴、纠错和重复——这种工作流不仅降低了生产力,还会引入隐蔽的 Bug。

什么是 Model Context Protocol (MCP)?

Model Context Protocol (MCP) 是专门为解决这一问题而设计的开放标准。为了在 AI 模型与本地资源之间建立安全且标准化的接口,MCP 充当了 LLM 与开发工具之间的 API 网关。MCP 无需依赖手动复制,而是允许 AI 助手安全地连接到运行在你环境中的 local server。

┌─────────────────┐       JSON-RPC        ┌────────────────┐
│   AI Client     │ <───────────────────> │   MCP Server   │
│ (Claude, IDE)   │                       │ (Unreal/UEFN)  │
└─────────────────┘                       └────────┬───────┘
                                                   │ Exposes
                                                   ▼
                                          ┌────────────────┐
                                          │  Local Files   │
                                          │  Editor Logs   │
                                          │  Scene Graph   │
                                          └────────────────┘

该协议在简单的 Client-Server 架构上运行:

  1. Host/Client:一个用于编排开发者交互的 AI 应用程序(例如桌面助手或 IDE 扩展)。
  2. Server:运行在开发人员机器上的本地进程,用于暴露工具、资源和 prompt。
  3. 传输层:通信通过诸如 Server-Sent Events (SSE) 或标准输入/输出 (stdio) 等标准协议进行,并使用 JSON-RPC 消息。

以下是一个简化的 JSON-RPC 负载,展示了 AI client 如何查询 local MCP server 以检索本地 Verse 文件上下文:

{
  "jsonrpc": "2.0",
  "method": "resources/read",
  "params": {
    "uri": "file:///C:/Users/Developer/Documents/FortniteProjects/MyIsland/Plugins/MyIsland/Content/game_manager.verse"
  },
  "id": 1
}

local MCP server 会返回 Verse 文件的实际内容,使 LLM 能够直接检查脚本的确切结构,而无需进行任何复制粘贴操作。

Unreal Engine 5.8 的实验性 MCP 插件

随着 Unreal Engine 5.8 的发布,Epic Games 推出了一款实验性 MCP 插件。该插件使 Unreal Editor 能够托管一个内部 MCP server,从而将引擎的核心子系统暴露给外部 AI 工具。通过将编辑器的 C++ 和 Python API 桥接到 Model Context Protocol,Epic 为新一代 AI 辅助游戏开发工作流奠定了基础。

UE 5.8 的实验性 MCP server 提供了几个核心能力:

  • Asset Registry 查询:AI 助手可以搜索项目的 asset、识别未使用的 texture、检查 mesh LOD 设置并检查 material instance。
  • 日志查询:助手可以读取输出日志,捕获 Blueprint 编译错误,并追踪运行时警告。
  • Python 执行:由于 Unreal Engine 包含 Python 脚本接口,MCP server 可以执行自动化的编辑器任务,例如重命名 asset 以符合风格指南,或在关卡中放置 Actor。
  • Blueprint 检查:该 server 允许模型检查 Blueprint 节点和连接,减少了开发者截取可视化脚本配置屏幕截图的需要。

这一集成代表了 Unreal Engine 开发者的巨大飞跃,但也让 UEFN 创作者们不禁要问:这项技术何时才能登陆 Fortnite Creative?

为什么 UEFN 和 Verse 极度渴求 MCP 支持

将 MCP 支持引入 UEFN 不仅仅是为了方便,这在技术上是绝对必要的。与支持 C++ 插件、自定义编辑器实用工具和 Python 脚本的 standard Unreal Engine 项目不同,UEFN 将创作者限制在一个严格受控的环境中。这使得创作者不可能自己编写自定义 MCP server 来弥合这一鸿沟。Epic Games 必须提供原生支持。

如果 Epic Games 将 UE 5.8 MCP 插件集成到 UEFN 中,其带来的优势将彻底变革 Verse 脚本编写、device 设置和场景组织:

1. 完全感知上下文的 Verse 脚本编写

连接了 MCP 的助手不会凭空幻觉出代码,而是会读取你的本地 .verse 源文件和本地 API 定义。它将确切知道导入了哪些 module、定义了哪些 class 以及有哪些可用 method。

当编写复杂的 Verse 逻辑(例如自定义 telemetry 管理器)时,AI 可以确保所有的 method 签名都是有效的。例如,开发者在构建自定义 telemetry 系统时经常会遇到一些硬性限制,比如 Verse 中 32 字符的 analytics device 事件名称限制。local MCP server 将允许 AI 助手检查你的事件名称,验证它们是否超过 32 个字符,并自动重构代码以避免在生产环境中发生无感知的 telemetry 丢失。

以下是一个语法正确、感知上下文的 Verse 脚本示例,它负责管理 telemetry 并与 creative device 进行交互。MCP server 可以读取此文件并瞬间理解自定义 class 签名:

using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

# Custom telemetry manager that coordinates player state updates
telemetry_coordinator_device := class(creative_device):

    @editable
    ItemGranter : item_granter_device = item_granter_device{}

    @editable
    LogVerbosity : string = "Verbose"

    # Internal map tracking active player scores
    var PlayerScoreMap : [player]int = map{}

    # Initialize listeners on game start
    OnBegin<override>()<suspends> : void =
        GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
        GetPlayspace().PlayerRemovedEvent().Subscribe(OnPlayerRemoved)
        Print("Telemetry Coordinator Device Started.")

    # Executed when a player joins the match
    OnPlayerAdded(Player : player) : void =
        if (not PlayerScoreMap[Player]):
            if (set PlayerScoreMap[Player] = 0):
                Print("Tracking initialized for player.")

    # Executed when a player exits the session
    OnPlayerRemoved(Player : player) : void =
        if (Score := PlayerScoreMap[Player]):
            Print("Player disconnected. Final recorded score: {Score}")
            # Dispatch event to backend metrics aggregator
            DispatchTelemetryPayload(Player, Score)

    # Internal function to handle data dispatching
    DispatchTelemetryPayload(Player : player, Score : int) : void =
        # An MCP assistant can check that the payload conforms to the backend API schema
        Print("Dispatching telemetry payload for score: {Score}")

2. Scene Graph 与 Creative Device 对齐

UEFN 中新的 Scene Graph 架构使用 entity 和 component 来定义游戏。在编辑器中可视化地管理这些配置,同时编写引用它们的 Verse 脚本,这带来了协同方面的挑战。

MCP server 会将 Scene Graph 层级结构暴露给你的 AI client。模型可以读取你的 entity 配置,识别未绑定的事件监听器,检查 device 是否缺失关键引用(例如 @editable 属性中缺失 item_granter_device),并修复不匹配问题。

3. 自动化错误诊断

当 Verse 编译失败时,UEFN 会在输出控制台生成详细的错误日志。MCP client 可以自动捕获这些错误日志,将其与活跃的 .verse 文件关联起来,并直接在你的 IDE 中展示修正后的代码,而无需你手动切换窗口或阅读 stack trace。

Backend 挑战:连接本地编辑器与线上服务

虽然 UEFN 内的 MCP 支持可以解决本地编辑器上下文鸿沟,但游戏开发者面临着一个更大的障碍:将本地开发环境与线上的游戏 Backend 连接起来。在现代 Fortnite Creative 游戏中,持久化就是一切。要构建持久化的 RPG、大亨类 (tycoon) 游戏或带 Matchmaking 的射击游戏,你需要存储玩家进度、管理动态库存并追踪虚拟经济系统。

手动构建和维护这些系统需要大量的后端基础设施工作:

  1. API 集成:在 Verse 中编写自定义 HTTP 请求处理程序以与外部数据库进行交互。
  2. 本地 Mock:在部署前创建并运行本地 mock server 以测试 Backend 交互。
  3. 数据库维护:设计数据库 schema、处理玩家数据序列化,并配置服务器以应对玩家激增的扩容需求。
  4. 安全与验证:实现身份验证,确保 client 请求无法随意篡改数据库数值,并配置 SSL 证书。

手动搭建这种 Backend 基础设施——处理 Load Balancing、数据库分片、API endpoint 和实时状态同步——很容易耗费 4 到 6 周的专属工程开发时间。对于个人创作者或 indie 团队来说,这会占用本应投入在游戏玩法设计、关卡搭建和宣发上的宝贵时间。

而这正是 horizOn 提供无缝、开箱即用替代方案的用武之地。作为一个专业的游戏 Backend-as-a-Service,该平台为数据库管理、玩家档案和 telemetry 提供了开箱即用的支持。它提供了预配置的 Backend endpoint,可以直接挂载到你的游戏逻辑中,让你无需编写单行 Backend 服务器代码即可管理整个数据库状态。

此外,horizOn 拥抱了 MCP 的强大功能。通过为游戏数据库管理提供自定义 MCP server,horizOn 允许你的 AI 助手直接在编辑器中检查线上的数据库 schema、执行查询并优化数据表。这意味着你的 AI agent 对本地 Verse 前端代码和线上 Backend 数据库都拥有完全的可见性,从而确保生成的任何代码都与你的实际数据结构完美契合。

UEFN 创作者当下的实用最佳实践

在 Epic Games 为 UEFN 发布原生 MCP 支持之前,开发者必须寻找手动优化其工作流的方法。以下是你可以立即采用的四项实用最佳实践,以弥合上下文鸿沟并简化你的 Verse 开发:

1. 维护一个专属的 LLM 上下文文件

由于外部 AI 工具无法扫描你的 UEFN 目录,你应该在项目根目录下维护一个单独的文本文件(例如 workspace_context.prompt)。用它来跟踪:

  • 你正在使用的确切 Verse API 版本。
  • 主关卡中所有活跃的 creative device 列表。
  • 自定义 Verse class 的结构和类型签名。
  • 活跃的 @editable 连接摘要。

在开始与你的 AI 助手对话时,首先粘贴此文件。这充当了手动的静态 MCP 资源,可为模型提供所需的确切上下文,从而避免 API 幻觉。

2. 精简 Verse 编译日志

与其手动复制编译器错误,不如创建一个监控 UEFN Verse 编译器输出日志的本地脚本。通过运行终端命令,你可以解析日志文件并仅提取相关的错误和行号。这使得复制一段干净、精简的日志片段变得更加容易,而不用面对一大堆冗余的警告。

3. 执行严格的事件和 Device 命名规范

为了防止去同步 (desync) 以及 device 引用断开,请为你的 device 和 Verse 代码制定严格的命名规范。例如,如果某个 device 在编辑器中被命名为 VendingMachine_01 ,其对应的 Verse 变量应该为 VendingMachine01。这种视觉上的一致性有助于你快速验证绑定,并使手动向 AI 模型共享上下文变得更加容易。此外,切记保持事件名称在 32 字符限制以内,以避免无感知的 analytics 数据丢失。

4. 构建本地 Mock HTTP 服务器

在开发 Backend 系统时,初期原型阶段不要直接对线上的数据库进行测试。使用 Node.js 或 Python 搭建一个简单的本地 mock server 来模拟 Backend 响应。这允许你在本地测试 Verse 的 HTTP 请求、运行 mock 查询并验证 JSON 解析,而不会产生网络延迟或面临线上数据损坏的风险。

展望未来:AI 辅助游戏创作的未来

在 Unreal Engine 5.8 中引入 Model Context Protocol 支持,是游戏开发工作流现代化迈出的重要一步。通过让 AI 模型能够理解编辑器的上下文,Epic Games 向业界展示了如何将 AI 集成为协同工具,而非仅仅是一个通用的文本生成器。

对于 UEFN 创作者来说,原生 MCP 支持将降低 Verse 脚本编写的门槛,简化 device 路由,并加速调试过程。在 Epic 将该插件引入 Fortnite 生态系统之前,开发者可以利用结构化上下文文件、自动化日志记录和外部 Backend 平台来弥合这一差距。

准备好扩展你的 Multiplayer Backend 了吗?免费试用 horizOn 或查看 API 文档,了解我们如何为现代游戏开发者简化数据库管理和 telemetry。


来源:Bring Unreal Engine 5.8 MCP Support to UEFN