作者: Aurel Cordonnier 和Kavita Chodavarapu
《Fortnite》开发者们,你们好。
我们去年承诺 https://www.youtube.com/watch?v=M1F5CimXO_8&t=2492s 会提高UEFN的稳定性和迭代速度。我们的目标是在6月份之前将迭代时间缩短50%(或者能更多,但我们更希望少说多做)。这篇帖文旨在概述我们对内部测试和质量保证流程做出的改进,以解决发布稳定性问题,以及我们会在未来几个月内推出的用于改进迭代时间的初步更新。
版本稳定性和测试
我们改变了测试方法,聚焦于对开发者最重要的方面——高参与度和重持久性的岛屿。现在的测试覆盖范围包括了更多更容易出现回退问题的开发者内容,因此,我们能在影响开发人员的体验之前更早地发现关键缺陷。
我们还实施了24小时分流升级流程,这意味着当我们发现问题时,我们能够比以往更快地解决问题。此外,我们现在每周会对六个复杂的开发者岛屿进行两次测试,以跟踪关键性能基准,如启动时间、加载时间和小游戏操作,一旦发现任何性能回退,会立即升级处理。
目前的结果令人鼓舞。在39.30本版中,我们防止了57%的缺陷上线,而在39.40版和39.50版中,与开发人员内容或持久性相关的关键缺陷为零——这是更快分流和扩大覆盖范围的直接结果。我们的缺陷逃逸率(即流入到正式版本的缺陷比例)也大幅下降:从39.11版本的18.5%降至39.40版本的4.7%。
我们知道内部指标只能说明部分情况,因此我们与社区团队合作,进行每月稳定性调查,以便直接听取开发者的反馈,确保大家能感受到明显的改进。这些反馈将帮助我们确定稳定性工作的重点方向。
稳定性和资产管理工具
在扩展内部质量保证流程的同时,我们也在增加新的工具和工作流程,帮助大家在项目中发现并修复错误,避免造成崩溃或卡顿。
- 资产健康工具:使用新的导入后监控、报告以及针对不同平台的内存阈值,在迭代过程中解决资产验证问题和"内存不足"的错误。
- 空间分析器更新:借助UEFN中扩展的分析功能,你将能跨平台快速定位占用资源较多的资产。这包括新的直接内存计算结果,以及带有UObject Objects in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community 分析的新实时资产视图。
烘焙器优化
为了加快为游戏会话准备岛屿所需的时间并缩短迭代时间,我们正在重构UEFN的烘焙管线以提高效率。“烘焙” cook | Fortnite Documentation | Epic Developer Community 是将原始资产转换为优化的、客户端可直接使用的格式的过程,以便内容能够快速加载和渲染。
这些将是对UEFN后端基础设施的底层改进,因此你无需对自己的工作流程做任何更改。
- Zen DDC(衍生数据缓存 - Using Derived Data Cache in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community :我们在UEFN后端部署了最新的Zen服务器系统,并引入烘焙快照,以提高烘焙过程的效率,从而缩短"在客户端运行"的迭代循环。
- 增量烘焙:我们正在增加一个系统,该系统仅烘焙从项目推送的、发生变更的所需资产增量,而无需重新处理未更改的数据。
- 分布式着色器编译:我们将把着色器编译工作分发到云端完成,而不是让你的本地机器承担全部负载,从而加快编译时间。
实时编辑改进
我们正在扩展实时编辑,提供更多在实时编辑会话期间进行迭代的方法,支持更多资产类型和用于编辑运行会话的新编辑器内工作流。
- 扩展资产类型支持:你将能够在实时编辑会话期间直接修改更多类型的资产,从而减少需要推送更改操作的频率,例如Sound Bus(声音总线)、Level Sequence(关卡序列)
- 游戏模式期间的实时编辑:当游戏模式在实时编辑期间进行时,UEFN编辑器中进行的部分编辑将即可生效,无需推送更改和停止游戏。比如你正在搭建一个障碍赛道,你将能够直接变换对象并微调其位置。
- 编辑历史面板:显示你当前会话中哪些更改已经实施,哪些编辑仍然需要推送更改操作。在会话运行期间,此面板在编辑模式和游戏模式下均可使用。
你可以在《Fortnite》开发者路线图 Trello 上跟踪这些更新。我们后续还会分享关于持续改进UEFN稳定性和迭代时间的工作进展时,并会在此帖文中更新。