跳至正文

10 月:虚幻引擎 5.4 与加载!

· 5 分钟读完
Gabriel • SyedMuhammad
lead developer™

虚幻引擎 5.4 与加载!

欢迎阅读我们过去几个月的最新更新汇总!

虚幻引擎 5.4​

我们很高兴地宣布升级到虚幻引擎 5.4!此更新带来了众多生活质量改进,提升了我们的开发体验。如需详细了解,请查看完整的虚幻引擎 5.4 更新日志此处。

加载改进​

我们显著增强了加载屏幕子系统:

更快的地图加载​

进入包含大型关卡的服务器现在快得多!我们优化了加载阶段,该阶段之前重复执行了一些工作,并且还引入了常用资产的预加载,减少了游戏过程中的卡顿。

重连逻辑​

已实现一个新系统,在文件下载失败时重新尝试连接。此外,如果服务器在加载屏幕期间重新加载包,客户端也会重新连接,解决了脚本不同步的问题。

资产校验异步​

我们的本地资产校验器进行了重大改造,利用了多核处理器的优势。现在所有资产文件在所有核心线程之间分配并并行处理,大大提高了资产包的加载时间。

在我们的内部测试中,一个包含 ±130,000 个文件(±50 GB)的资产包,在 i9 第 14 代处理器上,我们看到了令人难以置信的改进:

备注

以下时间旨在与同一处理器/资产包中的其他时间进行比较,提供改进幅度的概念,而非绝对时间。

之前,在冷读¹中首次加载此资产包需要将近 4 分 15 秒才能完成。现在只需 ±35 秒。

在热读²中,之前需要 ±75 秒,现在只需 ±7 秒。

结合我们的内部缓存系统,读取此资产包(在我们缓存之后),之前需要 ±10 秒,现在只需不到 ±4 秒。

在多核处理器上首次读取资产包时,我们获得了近 10 倍的速度提升,在缓存后读取时获得了近 2 倍的提升。

加载之前之后速度变化
完全冷读4 分 15 秒35 秒快 7 倍
完全热读1 分 15 秒7 秒快 10 倍
已缓存10 秒4 秒快 2.5 倍

¹ 冷读:自操作系统启动以来,处理器之前未读取过这些文件。
² 热读:在此操作系统启动期间,处理器已读取过这些文件,现已被操作系统缓存,从而提高了后续读取速度。

备注

结果因处理器规格和线程数而异。

测试地图水体​

测试地图海洋回来了!

我们解决了阻止水体出现的问题,让你可以再次潜入水中。 🌊

网络主控调试​

我们通过添加附近实体的 ID 和类名增强了世界网络调试,使调试更加容易。

Events.UnsubscribeRemote​

我们引入了一个新方法 Events.UnsubscribeRemote() 来退订远程事件。

这样,Events.Unsubscribe() 的使用现在仅限于本地事件,与 Events.Subscribe() 和 Events.SubscribRemote() 方法名称保持一致。

请确保将你的包的 compatibility_version 更新到 1.65.0 才能使用此新功能。

64 位哈希​

所有内部哈希操作已升级到 64 位,显著降低了处理来自巨大资产包的数十万资产时发生哈希冲突的可能性。

Console.Error 和 Warn 堆栈​

现在使用 Console.Warn() 或 Console.Error() 时,控制台将输出脚本调用的堆栈跟踪,使识别警告和错误的来源更加容易:

testing/Server/Index.lua
function MyError()
Console.Error("来自脚本的错误")
end

MyError()

新的抗锯齿设置​

我们在设置中添加了新的抗锯齿选项。你现在可以选择禁用它,或使用虚幻引擎原生的时间抗锯齿(TAA)、FXAA 或时间超分辨率(TSR):

更新的依赖项​

我们继续更新内部依赖项,以始终获得最新的漏洞修复和安全补丁:

  • CEF:版本 130。
  • DLSS:最新版本 3.7.20。
  • Lua:最新版本 5.4.7。
  • Ultra Dynamic Sky:最新版本 8.4(如果你在地图上使用它,请确保也更新你的版本,以免地图崩溃)。
  • 各种其他内部库(例如 zip、toml、openssl 等)。

结语​

大家好!自上次新闻博客以来,我们有一些重要且需要的更新,但我知道最近进展有点慢。一些个人因素促成了这一点,但我想向你们保证,开发仍在向前推进,远未停止。我一直在寻找新想法,并有一些令人兴奋的计划,为 nanos world 带来更多更新和改进!

我非常非常感谢你们在这段时间的耐心和支持。我对未来感到兴奋,迫不及待地想尽快与你们分享更多更新!感谢你们成为我们社区如此出色的一部分!