不停服热更:Push Verse Changes 与迭代工作流
正课里你学会了「Build → 拖放 → Launch Session」的完整流程。但如果每改一行代码都要结束会话、重新启动,一天下来大半时间都在看加载条。这一页介绍会话运行中的热更新按钮 Push Verse Changes,以及让迭代快到飞起的增量烘焙。
一、会话不是「一锤子买卖」:编辑器与客户端实时连着
很多新人以为 Launch Session 像打包发货:游戏开跑之后,编辑器这边就说不上话了。实际恰恰相反——游玩测试期间,UEFN 编辑器与游戏客户端之间保持着实时连接:你在编辑器视口里挪动一面墙、改一个设备参数,变化会即时同步到正在运行的客户端里。测试你的岛屿本来就是「边跑边改」的体验。
对代码而言,同步不是全自动的,你需要主动「推送」。工具栏上有两个相关按钮:
- Push Changes —— 推送项目的全部变更:场景、资产、设备设置、代码,一股脑同步进会话;
- Push Verse Changes —— 只拾取并推送 .verse 文件的变更,相当于「Verse 热重载」:不重启会话,新逻辑直接换上。
于是会话内改代码的标准姿势是三步:改 .verse 代码 → Build Verse Code(Ctrl+Shift+B)编译通过 → 点 Push Verse Changes。几秒钟后,会话里跑的就是新逻辑,不用退出、不用重新加载整个岛。
二、41.00 的提速:从全量烘焙到增量烘焙
「烘焙」(cook)是把项目内容转换成游戏可加载格式的过程,也是推送变更时最耗时的一步。在 41.00 版本之前,每次 Push Changes 都是全量烘焙——哪怕你只改了一行代码,整个项目也要重烤一遍,岛越大等得越久。
官方在 41.00 版本的 Fortnite 生态更新说明中宣布:Push Changes 从该版本起改为增量烘焙,只烘焙项目中被修改的部分。对大项目来说,这意味着推送变更的等待时间从「去倒杯水」缩短到「眨两下眼」,迭代速度显著提升。
把这套机制串起来,高效工作流长这样:
- 小步快跑:每次只改一小块逻辑,Build → Push Verse Changes,立刻在会话里验证;
- 代码之外的改动(挪设备、换资产)照常做,需要同步时用 Push Changes;
- 只有大改动(比如改了类名导致关卡里的实例失去引用)才结束会话重新 Launch。
- 只有大改动(比如改了类名,导致关卡里摆好的实例找不到它对应的那块蓝图、引用断了)才结束会话重新 Launch。
三、热更不是银弹:失败时的兜底手段
需要泼一盆冷水:Verse 热更新并非百分之百可靠。论坛上有不少 Verse Hot Reload 失败的报告——推送后客户端崩回大厅、会话卡在「Session Updating」不动等情况都出现过。遇到这类情况不要死磕,兜底手段简单粗暴:结束会话,重新 Launch Session。全新启动的会话总是干净的。
一条实用的判断标准:如果推送后游戏行为变得诡异(旧逻辑阴魂不散、状态错乱),先怀疑热更没成功,重启会话验证一遍,再怀疑自己的代码。这能帮你省下大量「调一个根本不存在的 bug」的时间。
会话正在运行,你只改了一个 .verse 文件里的逻辑,想最快换上新代码。正确的操作是?
四、出处
本文整理自 Epic 官方文档与开发者论坛: