拔高 · EXTRA
Verse 的三条设计原则
It's Just Code / Just One Language / Metaverse First——后面课程里那些「怪规矩」,几乎每一条都能追回这三句话里的某一句。
进入拓展 →你的蓝图技能不会作废,但会换一种形态。这一课先把 UE6 的事实摆清楚——什么已经宣布、什么只是目标、什么还没交付——再回答那个最实际的问题:为什么值得现在花时间学 Verse。最后你会亲眼看到,蓝图里那根白色执行线在文本代码里长什么样。
不会作废。但它会换一种形态,而且换得比你想的更彻底、也更无痛。
先想清楚一件事:你在蓝图里真正学会的,并不是「怎么把线拖到另一个针脚上」。你学会的是——一个事件在什么时刻被触发、执行线为什么必须按这个顺序走、哪个变量该活在函数里、哪个该挂在类上、什么东西值得拆成一个可复用的组件。这些是结构判断,它们不属于任何一种编辑器,搬到哪里都还在。真正会被淘汰的只有「肌肉记忆」那一层:右键搜节点的手法、连线的走位、Details 面板某个勾选框在第几栏。
换形态是什么意思?具体到不能再具体:蓝图里的 Event BeginPlay,在 Verse 里是一个叫 OnBegin 的函数;蓝图里的 Set 节点,在 Verse 里是一行以 set 开头的语句;蓝图里那根决定先后的白色执行线,在 Verse 里就是「从上往下」这件事本身;蓝图里靠摆放位置和注释框圈出来的层级,在 Verse 里是 4 个空格的缩进。这本手册接下来三十课的全部工作,就是把这张对照表一格一格发给你。
还有一句必须先说清楚,免得你带着焦虑往下读:按 Epic 已公布的信息,Actor 与 Blueprint 在 UE6 Early Access(目标 2027 年底)及早期版本中完整支持;只有当基于 Verse 的新玩法框架足够成熟之后,它们才会进入弃用流程,而那个时间点目前没有公布。不存在「某天早上打开引擎,蓝图不见了」这种剧情。
网上关于「UE6 要砍蓝图」的说法很多,大部分是把「已宣布」「只是目标」「已承诺但没交付」三种东西搅在了一起。下面这张表把它们分开——右边那一列比左边重要。
| Epic 公布的内容 | 当前状态 |
|---|---|
| State of Unreal 2026(芝加哥)宣布 Unreal Engine 6 | 已宣布 |
| UE6 把 UE5 与 UEFN 合并为一个引擎 | 已宣布 |
| UE6 Early Access | 目标 2027 年底,尚未发布 |
| Scene Graph:UE6 的新玩法框架,从零基于 Verse 构建(entity + component) | 已宣布 |
| Actor 与 Blueprint 在 UE6 EA 及早期版本中完整支持 | 已承诺 |
| Blueprint 的弃用,要等 Scene Graph 足够成熟 | 时间未定 |
| 弃用前提供转换工具(conversion tools) | Epic 已承诺,尚未发布 |
| Verse 将获得自己的可视化脚本层(社区称 "Visual Verse") | 形态尚未公布 |
| UE6 编辑器集成 Claude / Gemini 等生成式 AI 助手 | 已宣布 |
这张表里最值得蓝图作者注意的一行是 Scene Graph。它不是「蓝图编辑器换了个皮肤」,而是一套新的世界模型:一个 entity(实体)本身几乎什么都不会,能力全靠往上挂 component(组件)——组合代替继承。你今天在蓝图里做的很多事(拖一个 Actor 进关卡、给它加一堆 Component、写一段 Construction Script)在那套模型里都有对应物,但对应得并不整齐。这是第八章的正题,现在只需要记住一件事:Scene Graph 是从零基于 Verse 构建的——想读懂它,先得读得懂 Verse。
另一行值得记住的是转换工具:Epic 已经承诺在弃用前提供它,但到今天为止还没有发布。所以「等工具出来再说」是一个真实存在的选项,没人拦你。它唯一的问题是:工具能把你的资产搬过去,搬不了你的判断力——转换出来的那一屏 Verse 代码,还是得有人能读懂、能改。
三条理由,都不是「未来会怎样」的许诺,而是今天就能验证的事实。
diff——两个版本之间改了什么,三行绿字说清楚;文本能 code review——同事在第 47 行留一条评论,而不是在群里发一张节点图截图圈红圈;文本能被 AI 读写——UE6 编辑器已经集成了 Claude / Gemini 等生成式 AI 助手,而模型天生擅长读写文本,不擅长「看懂一张连线图的截图」。你写的每一行 Verse,都是能被工具链和 AI 直接接手的形式。顺带说清工具的位置:今天唯一能真正编译并运行 Verse 的地方是 UEFN(Fortnite 的创作环境)。它在这份手册里的角色仅此而已——一个能把代码跑起来的地方,不是学习目标。我们教的是语言:等 UE6 到来,这些语法一个字都不用重学,变的只是它挂在什么框架上。三条上手路径的细节在文末的技巧拓展页。
光说不练没有说服力。取一个简单到不能再简单的需求:游戏一开始,在屏幕上打印一句话。这是每个蓝图作者闭着眼都能连出来的东西——一个 Event BeginPlay,拉一根白线,接一个 Print String。左边是你熟悉的动作,右边是同一件事的 Verse 写法。
| 你在蓝图里的动作 | Verse 里对应的一行 |
|---|---|
| 在内容浏览器里新建一个蓝图类,父类选 creative_device | hello_verse_device := class(creative_device): |
| 在事件图表里放一个 Event BeginPlay 节点 | OnBegin<override>()<suspends>:void = |
| 从 BeginPlay 拉一根白色执行线,接第一个 Print String | 在 OnBegin 下面缩进 4 格,写 Print("Hello, Verse!") |
| 从第一个 Print String 再拉一根线,接第二个 | 下一行,保持同样的缩进,再写一句 Print(...) |
把表格的右列竖着抄下来,就是一个能编译、能运行的完整设备。注意最后两行:那根白色执行线并没有消失,它变成了「谁写在上面谁先跑」;而「这几行归谁管」这个问题,蓝图靠连线回答,Verse 靠缩进回答。整个第二章会把这张对照表铺开讲,这里先建立一个直觉:你不是在学一门新东西,你是在学同一件事的另一种记法。
下面就是上一节那张表竖起来的结果。别急着理解每个字——尖括号里那两个词、末尾的 :void =,后面都有专门的课来拆。现在只做一件事:点「运行下一步」,像看回放一样,看这段代码是怎么一行行往下走的。你正在看的,就是那根白色执行线。
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
hello_verse_device := class(creative_device):
OnBegin<override>()<suspends>:void =
Print("Hello, Verse!")
Print("这一行就是一条执行线")
点「运行下一步」,看代码怎么一行行执行。
五步走完,你已经完整读过一段真实的 Verse 代码了。回头看第 7、8 两行:在蓝图里,它们之间必须有一根白线,少连一根就什么都不会发生;在 Verse 里,它们之间什么都没有——「写在下面」本身就是那根线。这是文本代码最朴素也最重要的一个便宜:顺序不需要被维护,它就在那儿。
这一课出现的每一样东西,在蓝图里都有对应物。差异那一列才是重点——它解释了为什么 Epic 愿意为此换一套东西。
| 蓝图里的做法 | Verse 里的写法 | 差异 |
|---|---|---|
| 新建 Child Blueprint Class,父类选 creative_device | hello_verse_device := class(creative_device): |
蓝图类是二进制资产(.uasset),Verse 类是纯文本文件(.verse)——后者能 diff、能 review、能被 AI 直接读写 |
| 事件图表里的 Event BeginPlay 节点 | OnBegin<override>()<suspends>:void = |
蓝图里它是一个「事件节点」;Verse 里它是你从父类覆写(override)的一个函数,写法固定 |
| 白色执行线决定先后顺序 | 行的书写顺序,从上往下 | Verse 里没有线可连错,也没有「忘了连线导致这段永远不跑」这种 bug |
| 靠节点摆放位置与 Comment 框圈出层级 | 4 个空格的缩进 | 在蓝图里排版是审美问题,在 Verse 里缩进是语法本身——缩错了直接编译不过 |
| Print String 节点 | Print("Hello, Verse!") |
需要先 using 引入 Diagnostics 模块,而且大小写严格:print 编译不过 |
| 两人同时改一张事件图表 | 两人同时改一个 .verse 文件 | 二进制资产冲突基本只能二选一;文本冲突可以逐行合并,这是团队协作里最实的一条差别 |
这些差异不是审美,而是同一个取舍的不同侧面:蓝图把结构画出来给人看,Verse 把结构写出来给人和机器一起看。画出来的东西直观,代价是它只能被眼睛读;写出来的东西第一眼没那么亲切,但版本控制、自动化工具、代码审查、AI 助手——所有这些能替你干活的东西,全都只认文本。
还有一条差异藏得比较深,值得提前说:蓝图里能连的节点,不一定在 Verse 里有同名写法。Verse 只开放 Epic 显式暴露的那部分能力,查功能要以 Verse API Reference 为准,不能照搬蓝图的节点名。这一条会在第二章的名词对照词典里正面处理。
第一课的验收,三道题。答对拿星星 ★,答错可以无限重试,不掉血。
按 Epic 已公布的信息,Blueprint 在 UE6 里的处境是?
今天(UE6 尚未发布),要真正编译并运行一段 Verse 代码,唯一的去处是哪里?
为什么「Verse 是文本代码」这一点,对 AI 协作特别关键?
拔高 · EXTRA
It's Just Code / Just One Language / Metaverse First——后面课程里那些「怪规矩」,几乎每一条都能追回这三句话里的某一句。
进入拓展 →拓展 · EXTRA
函数式 + 逻辑式 + 命令式的血统、Verse Calculus 论文,以及事务性内存与结构化并发为什么对多人在线世界是刚需。
进入拓展 →技巧 · EXTRA
装 UEFN、只读练习、等 UE6 Early Access——三条路各自要付出什么、能拿到什么,以及为什么换到 UE6 后语法一个字都不用重学。
进入拓展 →