跳至正文

7 月:Forge、加速 CEF 与协程!

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

Forge 插件、加速 CEF、协程修复、载具更新及更多!

欢迎来到我们过去一个月最新更新的汇总!这篇博客比平时稍晚一些,正如本月初在 Discord 上宣布的那样。今后,我们的新闻博客将恢复正常时间表,确保它们反映上个月取得的进展。

CEF 实验性功能​

我们很高兴地介绍几个长期以来被高度要求的全新 CEF 功能。从硬件加速到新的开发者工具功能!

硬件加速​

我们实现了在 CEF 上启用硬件加速的能力!这是一项允许 WebUI 利用你的 GPU 而非 CPU 进行渲染的功能。允许复杂动画流畅运行,同时减轻 CPU 的工作负载。

推荐

即使启用了硬件加速,也要避免在 UI 中使用过于复杂的动画。并非所有玩家都会启用此设置,因此建议为他们提供后备动画。

加速绘制​

目前,CEF 将 WebUI 页面渲染到缓冲区,然后将其复制到虚幻引擎纹理以进行屏幕渲染,全部由 CPU 处理。

加速绘制将此过程转移到 GPU,直接将渲染的纹理(DirectX 纹理)复制到虚幻引擎纹理,减少 CPU 工作负载。

性能说明

虽然这个功能备受期待,但它在所有情况下可能不会提高性能。

例如,如果你的 PC 受限于 GPU,启用硬件加速和加速绘制可能会对 WebUI 的响应性产生负面影响。

新的 WebUI 设置​

我们公开了几个新设置,以帮助你试验这些新功能:

新的 CEF/WebUI 设置

硬件加速与加速绘制​

允许你启用前面提到的那些功能。请注意,加速绘制需要启用硬件加速。

最大分辨率​

我们添加了一个设置来限制最大 WebUI 分辨率。例如,如果你以 4K 分辨率运行游戏,这可以节省性能,允许你将 WebUI 分辨率限制为 1080p。

消息循环计划​

这是一个内部 CEF 设置,可以通过减少空闲时不必要的 CEF 循环调用来提高 CEF 性能。

新的开发者工具​

我们正在引入游戏内的开发者工具,类似于你在浏览器中找到的!

使用开发者工具调试

之前,我们只有远程调试功能作为运行时调试的唯一选项,但由于安全顾虑和 Windows Defender 阻止它的问题而被禁用。

现在使用新的开发者工具,你可以使用新方法直接在游戏内调试你的 WebUI:WebUI:OpenDevTools() 和 WebUI:CloseDevTools()。

它启动一个与游戏集成的新窗口弹出,用于检查和调试页面中的 HTML 元素!

其他 WebUI 改进​

  • DPI 缩放: WebUI 页面现在随显示器 DPI 正确缩放,修复了 Windows 分辨率缩放影响 WebUI 分辨率的问题。
  • 平滑滚动: 我们为 WebUI 实现了原生平滑滚动,取代了之前的模拟。
  • 打印命令已禁用: JavaScript 中打开外部打印弹出窗口的 print 命令已被禁用。
  • 多实例修复: 解决了阻止两个游戏实例同时显示 WebUI 的问题。

隆重介绍…… Forge!​

nanos world Forge 是一个新的社区制作的插件,用于虚幻引擎,旨在简化 nanos world 的资产创建。它带有内置的工具和烘焙自动化以提高你的生产力!

新的 Forge 插件!

虽然仍在开发中,但建议将其作为当前 ADK 的补充工具,因为它自动化了各种流程,如烘焙、脚本,以及未来™ 将资产上传到资源库。

备注

此插件由一位专注的社区成员 NegativeName 开发,并将随 ADK 一起免费分发!

由于这是一个自愿项目,请考虑通过赞助来支持他和这个项目:https://ko-fi.com/negativename。

烘焙处理器​

烘焙处理器是一项功能,在你的资产烘焙后自动复制它们,将其移动到配置的 ServerPath/Assets/ 目录,这样你就不必每次烘焙时手动复制它们。

结合资产包自动重载功能,它极大地加快了重新烘焙和测试资产的迭代过程!

它还在每个资产包文件夹中生成一个 Assets.toml 文件,自动列出其所有资产。

其他工具和功能​

Forge 包含各种工具来增强你的资产创建体验:

  • Object2Lua:将虚幻引擎蓝图资产转换为 Lua 表。
  • Foliage2Lua:将植被 Actor 转换为 Lua 表表示。
  • 材质拾取器:通过在视口中点击材质来快速识别它们。
  • 占位符:在地图中放置 Actor 并将其导出为 Lua 代码。
  • 快速实例化器:将静态网格体 Actor 转换为实例化静态网格体 Actor。
  • StaticMeshToFoliage:将静态网格体 Actor 转换为植被类型。
  • 缩略图生成器:为资产创建高质量 PNG 缩略图,支持批量处理。

有关工具的详细列表和如何下载的说明,请访问 Forge 页面:

Forge 设置assets-modding/forge/setup

未来发展​

Forge 仍在开发中,如果你有任何建议或发现任何漏洞,请不要犹豫,直接联系我们或 NegativeName!

我们仍在共同努力不断扩大 Forge 的可能性,我们计划打造一个非常可靠的工作流程,直接从 Forge 创建、管理和上传资产包!

此外,在接下来的几天里,我们将更新我们的 ADK 教程和 ADK 项目,以减少冗余工具并进一步简化它!请继续关注更新!

载具更新​

我们对载具进行了重大改进,添加了缺失的方法并增强了方向盘上的程序化手部放置。

手部放置​

角色的手现在程序化地适应方向盘的位置。为实现这一点,你必须在配置 VehicleWheeled:SetSteeringWheelSetup() 时指定方向盘的位置。

之前,我们使用角色的相对位置,这导致不同角色和网格体之间的不一致。通过此更新,所有角色和网格体将表现一致。

我们还为 VehicleWheeled:SetSteeringWheelSetup() 添加了一个新参数:rotation。此重构确保传递给它的参数相对于载具的根骨骼。因此,所有载具都需要使用这个新的相对位置重新配置。

角色根据方向盘和座位位置程序化调整手部位置

扭矩曲线​

你现在可以配置载具的扭矩曲线!我们为 VehicleWheeled:SetEngineSetup() 添加了一个新参数:torque_curve,允许通过脚本自定义它:

Server/Index.lua
local torque_curve = {
[ 0.0] = 0.5,
[ 800.0] = 0.9,
[2000.0] = 1.0,
[4000.0] = 0.9,
[5000.0] = 0.0,
}

my_vehicle:SetEngineSetup(600, 5000, 900, 0.2, 5, 600, torque_curve)

新载具方法​

我们引入了一个新方法:VehicleWheeled:SetDifferentialSetup()。允许你通过传递自定义 DifferentialType 来配置载具的差速器。

此外,我们公开了一个新参数来更改用于计算车轮悬挂的形状到 :SetWheel():suspension_sweep_shape(SuspensionSweepShape)。

Lua 协程修复​

我们终于成功解决了 Lua 协程的大部分已知问题,修复了众多崩溃并确保其与各种脚本调用和方法一起工作。

例如,Package.Require 和来自 Database 或 File 操作的异步回调现在在协程执行中无缝工作。

感谢所有帮助重现这些漏洞和崩溃的测试者!

Linux 服务器要求​

我们审查了运行 Linux 服务器的最低要求版本。官方支持的版本现在是 Ubuntu 22 和 24,以及 Debian 12。

我们还改进了构建过程,为较旧的机器包含必要的库(例如 glibc),解决了兼容性问题。但是,Debian 11 不再被官方支持。

有关更多详细信息,请访问更新的服务器安装指南:

服务器安装指南core-concepts/server-manual/server-installation

资源库维护​

资源库维护进行中

本月早些时候,我们宣布了资源库/商店的维护期。我们正在开发一个能更好满足我们需求的新版资源库,因此进行了完整的后端重构。

虽然我们还没有发布日期,但进展迅速。目前,游戏仍将通过游戏内资源库和 CLI 提供默认包(sandbox、default-weapons 和 default-vehicles)供下载。

账户系统迁移​

除了资源库维护之外,我们还在改进我们的账户系统后端,将其与新资源库系统集成。在我们完成这些迁移期间,我们已经暂停了新的测试者邀请几周。我们应该很快™就准备好了。

如果你在此过渡期间遇到登录错误,请告诉我们!

结语​

这是一个“两个月”的更新,包含了几项令人兴奋的功能和改进。社区创建的 Forge 的引入是我们愿景的开始,即打造一个更可靠资产开发套件(ADK),简化资产创建过程。虽然仍有很多需要改进的地方,但这是重要的第一步。再次感谢 @NegativeName 发起这项倡议!

高度要求的 CEF 硬件加速功能已集成,这不是一个容易的集成,希望你能充分利用它!现在让我们测试其稳定性并确保它按预期工作!

Lua 协程问题困扰了我们很长时间,感谢你们的报告和坚持,我们成功修复了它的大部分问题!

我们也在不知疲倦地工作,为资源库和账户系统创建一个新的生态系统,我们已经在将账户迁移到新系统,并为资源库开发满足我们所有需求的后端。这些更改正在逐步推出,以尽量减少摩擦。许多更新已经无缝实施,我们正努力在没有任何停机时间的情况下进行,以使这一过渡尽可能顺利!

我们感谢你在这些过渡期间的耐心和支持。你的反馈对我们改进非常有价值。请继续关注更多更新,感谢你成为 nanos world 社区的一部分! 💖

也感谢所有在 Ko-fi ☕ 上支持我的人,你不知道看到你们的支持愿望让我多么有动力,这对我来说多么令人安心! 💙

Ko-fiKo-fi