跳至正文

12 月:资源库集成与网络插值++!

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

资源库与账户游戏内集成以及更好的网络插值!

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

资源库完整集成​

本月的重点是资源库迎来的重大飞跃:它终于与商店实现了完整集成,并可以直接从主菜单访问!

游戏内资源库标签页

你可以查看全新的文档页面,了解关于资源库所有新功能的详细说明:

🛒 资源库文档vault-and-store/vault

以下是本次更新的亮点:

资源管理​

我们重新设计了资源库管理标签页。

你现在可以编辑资源元数据,包括标题、描述、徽标、截图、可见性以及标签:

资源库管理信息标签页

还可以通过管理标签页直接 管理版本,包括上传、设置 更新日志、发布、删除以及修改版本号:

资源库管理版本标签页
提示

你可以直接在游戏内上传新版本,系统会自动压缩你的本地资源文件夹并将其上传至商店!无需再通过网站手动将其压缩为 .zip 并上传。

资源库管理版本标签页正在上传新版本

评分与评价​

你现在可以对任何资源库资源进行 评分和评价。所有评分和评论都会显示在评价标签页中以及资源名称正下方。

资源库资源评分标签页

创建资源​

我们还重做了 创建资源 的流程。你现在可以直接在游戏内创建本地资源和商店资源!

如果你已经拥有自己创建的本地资源,它将在你的资源库中显示为带有黄框的资源,并且你可以直接基于它创建商店资源:

资源库本地资源

通过点击 + 在商店中创建此资源 按钮,将弹出一个窗口,你可以在其中确认商店资源所需的所有信息,并选择其所属的团队,系统将自动为你在商店中创建该资源:

资源库在商店创建资源

之后,你就可以直接在游戏内编辑其所有信息并管理版本了!

依赖项信息​

现在,点击 资源库依赖项 标签页中的任意项目,都会打开一个包含所选项目完整信息的弹窗!递归形式

资源库依赖项信息弹窗

个人资料与账户集成​

个人资料屏幕得到了极大改善与集成。你现在可以直接在游戏内修改用户名,并查看你及好友的身份组与徽章!

个人资料弹窗

同样在你的个人资料中,你现在可以查看你所属的所有 团队:

个人资料团队

团队集成​

我们还将团队管理直接集成到了游戏内!

点击任何团队徽标,即可查看有关该团队的所有信息,包括其 描述、成员 以及所有关联的 资源:

团队弹窗

团队管理​

现在可以直接从菜单中创建团队。团队的名称、描述和徽标均可被编辑,且既可以在个人资料屏幕创建,也可以在创建资源的过程中创建。

你还可以直接在团队的管理标签页中添加或移除团队成员,以及提升或降低其管理员状态!

团队管理弹窗

UI 改进​

退出确认与等待​

我们新增了按下退出按钮时弹出的退出确认与等待弹窗。

退出确认弹窗

过去在退出游戏时,如果仍有一些操作在后台运行(大多为异步 API 调用),游戏会出现卡住等待的情况。

现在我们实现了一个弹窗,会在这些后台操作完成前持续显示,以确保游戏能够优雅地退出,不再卡住。你仍然可以通过按下上面的 强制退出 按钮来强行关闭游戏。

退出等待弹窗

改进的网络调试​

我们改进了在游戏世界中显示的 网络调试 信息。现在,你可以从“网络实体”视角更好地直观查看接收到的快照和实体的速度。

它现在会在实体周围绘制方框和箭头,以更清晰地展示从服务器接收到的数据。

你可以在下一节的视频中查看具体样子。

改进的插值系统​

我们对网络插值系统进行了新一轮迭代。我们大幅改进了它在不同网络条件以及高速移动实体场景下的表现。

现在,诸如载具或投掷物等高速移动实体的动态表现将变得更加平滑。以前当作为乘客或与其他玩家并排驾驶时,经常能明显感到卡顿和延迟;现在即使在较差的网络环境下,体验也会好上许多!

此外,插值现在仅对屏幕内可见且距离在 10000 单位以内的实体生效。超出范围的实体将直接对齐到从网络接收到的实际位置。这能有效提升游戏性能,并大幅减少针对远处实体的不必要插值计算。

在这项测试中,视频是从乘客视角(接收来自驾驶者的网络数据)录制的,此时载具正在高速行驶。可以看到,代表接收快照的方框虽然接收得并不稳定,但实体依然能在它们之间进行平滑的插值

网络插值在高速度下更加平滑

再也不会出现相机或载具的卡顿与闪烁了!

游戏内错误日志通知​

错误日志通知弹窗

我们集成了一个全新的开关选项,启用后所有脚本错误都会直接以游戏内通知的形式显示。旨在辅助脚本的开发与调试。

若要启用,只需前往 设置 > 调试 标签页,勾选 将错误显示为通知 选项即可。

结语​

本月,我们完成了 nanos world 中最重要的核心功能之一:完整的资源库集成。对于沙盒游戏而言,最关键的要素之一就是内容创作与分享能力,而这次更新让我们朝着这个方向迈出了巨大的一步。

现在只需点击几下,即可在无需离开游戏的情况下创建并分享包或资产包。管理版本、更新元数据以及查看评价和评分,现在都可以在游戏内的资源库界面中直接完成!

我们在这一领域仍有工作要做,未来计划推出更多改进和新功能,但这已经奠定了坚实的基础。

在网络方面,改进后的插值系统应该会对游戏观感带来显著的提升,特别是在高速度的场景中。这将有助于让驾驶载具和快节奏的动作体验变得更加平滑且充满乐趣。

此外,如果你在 1 月 11 日之前看到了这篇日志,我们将在 1 月 11 日星期日 举办一场特别的游戏测试,以测试游戏及社区创作的游戏模式!欢迎加入我们,协助并尽情畅玩!

希望大家喜欢本月的更新!我们下期再见!祝大家在新的一年里万事顺意、新年快乐!感谢你成为 nanos world 社区的一员! 🎉🎉

11 月:Go Horse Studios 与虚幻引擎 5.7!

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

Go Horse Studios、虚幻引擎 5.7、文件校验器重做、文件传输系统改版、性能提升及更多内容!

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

隆重介绍…… Go Horse Studios!​

我们非常高兴地宣布 nanos world 背后全新的团队品牌:Go Horse Studios!

Go Horse Studios 徽标

有何变化?​

实际上,什么也没变!我们还是我们,只是有了正式的名称。这是我们迈向更加成熟和专业的工作室的重要一步!

我们还将更新 ToS(服务条款)和隐私政策,提供有关 UGC、变现等方面的最新细节。

我们建立了一个简单的落地页,你可以在其中找到所有官方文档和条款(即将推出™),以及官方联系信息:

🐴 Go Horse Studioshttps://gohorsestudios.com

万圣节游戏测试回顾​

我们的万圣节测试圆满收官!与以往活动相比,我们看到崩溃和漏洞大幅减少,这表明我们的稳定性改进正在取得成效!

本次游戏测试中收集的数据和见解极大地帮助我们找到了改进 nanos world 所需解决的若干瓶颈和优化!

再次对所有参与测试、试玩并反馈问题的玩家表示由衷的感谢!敬请期待,我们未来还会举办更多类似的活动! 🎃

社区创作者​

我们还要特别感谢制作了我们所游玩游戏模式的优秀创作者们:NegativeName、Wast3d、Antho、Voltaism、Ayanokoji 和 olivato。

为庆祝大家的贡献,你们所有人都已获得 2025 年万圣节徽章!现在已经显示在你们的个人资料页面中了!

2025 年万圣节游戏内徽章

截图亮点​

欢迎在我们的 Discord 频道中查看截图和亮点。

虚幻引擎 5.7​

虚幻引擎 5.7 公告

在费了一番功夫解决了本次更新中的一些破坏性更改后,我们已成功将 nanos world 升级到了虚幻引擎 5.7! 🚀

我们之前使用的是 5.5 版本,因此这次更新带来了许多令人兴奋的渲染和动画改进!你可以查看完整的虚幻引擎 5.7 发行说明了解所有详情。

我们目前在等待首个热修复发布后再推送新的 nanos world 版本。 截至撰稿时,虚幻引擎 5.7.1 刚刚发布!我们将在未来几天进行测试并推送更新!

全新视频设置​

随着虚幻 5.7 的引入,我们还开放了新的设置,用于控制全新的渲染特性,例如 MegaLights 以及新的抗锯齿 SMAA。

文件校验器重做​

连接到服务器时校验文件

我们的文件校验器已完全重做。现在,在启动服务器缓存所有客户端文件或加入服务器检查更新时,校验本地文件的速度大幅提升(可充分利用你的所有 CPU 线程)。

此外,它现在能够正确清理服务器上已删除的任何过期文件(包括包和资产)。这解决了因客户端残留旧资产而导致的崩溃问题。

统一包缓存​

客户端的包缓存文件夹现在在所有服务器间实现了统一。这意味着如果你连接到使用相同包的其他服务器,它将复用现有的缓存。不再有无用的重复下载!

这也极大改善了 P2P 服务器的体验。此前,由于此类服务器每次启动都会生成随机的虚假 IP 进行连接,因此每次启动时都必须重新下载所有脚本文件。

文件传输重做​

利用内联网络套接字系统,文件传输系统已被彻底改版,变得更加稳健和稳定。

全新的公平调度算法会在队列中跟踪所有已连接的客户端,并在它们之间均匀地分发文件。这确保了每个人都能均衡地下载文件,修复了部分玩家卡在 0 B/s 的问题。

此外,我们现在可以传输任意大小的文件(移除了原有的 256 MB 限制)。

为了广泛测试这套全新系统,它现在已成为文件传输的默认系统。 HTTP 传输方式仍可使用,但必须在设置中手动启用。

全新状态页面​

显示所有运行中服务的状态页面

我们创建了一个全新的状态页面,用于监控我们所有服务和 API 的上线时间。如果出现任何宕机故障,我们都能在此第一时间知晓!

🕑 状态页面仪表板https://status.nanos-world.com

性能++​

我们始终致力于将 nanos world 的效率提升至极致。本月,我们重点对网络主控算法进行了重大改进。通过在每个刻中仅遍历分布式网络主控列表,使其效率有了大幅提升。

我们还对主菜单和 Esc 菜单中的许多 UI 进行了优化,大幅提升了渲染效率,并减少了在打开/加载它们时的卡顿。

个人资料徽章​

游戏内徽章列表

我们在游戏内的个人资料中新增了徽章区域!你现在可以直接在游戏中查看所有已获得的徽章(例如万圣节活动徽章)。

我们很快就会开始针对各种活动、贡献和趣事添加更多徽章!

提示

很快™,自早期就参与我们测试计划的每一个人都将获得 Alpha 测试者徽章!

你也可以在账户个人资料中查看所有已获得的徽章:

🙍 账户个人资料 - 徽章https://nanos-world.com/account/badges

游戏内通知!​

游戏内通知

我们把通知系统从主菜单也同步搬到了游戏内!

现在可以通过集成系统在玩家进行游戏时以编程方式向其显示通知:Client.ShowNotification()。

它还会显示游玩过程中可能发生的致命 (FATAL) 和错误 (ERROR) 日志。

调试改进​

性能分析堆栈​

我们的性能分析列表现在会显示所有调用的堆栈层级结构,从而能够更好地排查造成性能问题的根源。

性能分析列表

性能分析实体网络​

我们的实体网络统计信息性能分析现在可以显示每个类生成的实体数量,以及它们是在积极传输数据还是处于非活动状态。

实体网络统计信息性能分析区域

杂项​

VOIP/Fire 事件​

我们修改了 VOIP 和 Fire 事件的行为。它们现在会首先在客户端触发。这有助于更好地处理触发这些事件的客户端操作,从而允许在将这些调用发送到服务器前进行监听。

新增 max_send_rate 设置​

我们在 Config.toml 中添加了一个新设置:max_send_rate。这允许服务器拥有者控制每个已连接玩家的最大网络带宽,以便在必要时有效限制下载速度。

建议/报告按钮​

主菜单与 Esc 菜单上的报告按钮

我们新增了一个按钮,让你能够快速向我们的后端提交消息。我们在游戏测试期间加入了这个功能,以确保未加入我们 Discord 的玩家也能有一个快捷的方式来报告漏洞。

报告弹窗

枢纽服务器​

我们在主菜单中新增了一个 实验性 区域,用于展示一个可以快速连接的 “枢纽” 服务器。未来,该服务器将托管一个自定义的简易游戏模式,允许玩家在等待其他服务器开启时加入并进行社交。

更新路线图​

我们更新了公开的路线图,并添加了一系列新特性,例如:反作弊、变现工具、剔除系统,以及更多我们已经发布的内容!快来看看吧:

🛣️ 路线图https://docs.nanos-world.com/roadmap

Steam SDK 更新​

我们已将 Steam SDK 更新至最新的 1.62 版本。

结语​

由于我们跳过了 10 月的博客以专注于万圣节活动,因此本篇博客总结了过去两个月的内容!

我们非常高兴能正式确立 Go Horse Studios 的品牌身份,这是我们作为专业游戏工作室发展历程中的重要里程碑!

万圣节游戏测试对于发现关键瓶颈至关重要,促成了我们对文件校验器与文件传输系统的重大修复和改进!

最后,我们正在迈向最新的虚幻引擎 5.7 版本,它带来了许多我们可以使用和集成的全新特性与改进!

由衷感谢所有参与游戏测试、上报问题和创作内容的各位,正是你们塑造了这款游戏!我们对接下来的活动充满期待!

感谢一路相伴。游戏中见! 💙

9 月:万圣节、游戏测试与加密!

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

万圣节准备、游戏测试、客户端文件加密、大量性能改进及更多内容!

欢迎阅读我们上个月最新更新的汇总!

万圣节活动​

万圣节活动预告横幅

我们已正式进入创作万圣节游戏模式的季节!

如果你是测试者且尚未开始,还有大约 2 周的时间来进行创作!本次活动是展现创造力并协助我们在真实负载下对系统进行压力测试绝佳机会。

万圣节游戏测试将在 10 月 27 日至 11 月 3 日的 Steam 尖叫游戏节期间向所有人公开开放!在 Discord 帖子中查看完整详情。

除了社区创作的游戏模式外,我们还将游玩传统且 增强 的万圣节特别游戏模式,其中包含大量新机制、增益、无马无头骑士职业以及全新玩法。以下是几张预览图片:

万圣节特别游戏模式截图
提示

你可以在 Discord 子区中找到有关此游戏模式的更多详细信息。此外,欢迎在 🚀|project-showcase 频道中分享你的进度!

加入游戏测试​

如果你还不是测试者且希望作为玩家加入,请前往 nanos world™ Steam 页面并点击 请求访问权限 来参与游戏测试。在万圣节周期间,所有人都可以下载并游玩本游戏。

脚本文件加密​

客户端 Lua 文件已加密

我们一直收到社区关于对发送给客户端的文件进行混淆的请求,现在我们迈出了第一步,对所有客户端 Lua 文件进行了加密处理!

所有客户端 Lua 文件在发给玩家时现已全部加密。在下载并存储至客户端磁盘时,我们使用运行时生成的密码来对每个 Lua 文件进行加密和解密。

当包引用 Lua 文件时,所有文件都会在运行时进行解密,这为不希望 Lua 文件被玩家轻易读取的创作者增加了一层安全保障。

触发器改进​

我们对触发器的实现进行了重大改进,大幅提升了其效率!

  • 针对球体和盒体检查的数学相交算法进行了深度优化。
  • 触发器现在仅遍历白名单类中的 Actor,从而大幅降低循环开销。
  • 仅对附近的 Actor 进行评估,较远的 Actor 将在触发器检查中被完全忽略!

这些改进在密集地图中节省了大量 CPU 资源。

核心改进​

我们进行的一些内部框架改进如下:

服务器线程竞争​

我们解决了导致服务器端频繁卡顿的若干线程竞争瓶颈问题(这些问题曾导致帧 tick 时间过高或性能分析警告),特别是在主线程上的内部互斥锁等待异步线程完成时。

这通常发生在玩家正在下载文件,或者生成了过多具有网络主控及触发器的 Actor 时。我们重构了所有异步线程及互斥锁的使用,极大地减少了对异步线程的依赖和相关锁竞争。

并行 Lua 文件加载​

我们实现了一个多线程解决方案,用于在加载包时对其中的所有客户端文件进行加载、缓存和加密。现在它的运行方式类似于加载资产包,从而提升了多核处理器上的服务器性能。

网络主控改进​

改进了网络主控和分发逻辑。我们重做了用于决定哪些实体可以分发网络主控的内部系统,修复了一些不应更改网络主控实体引发的罕见漏洞,并提升了性能。

我们还改变了 Translate/RotateTo 的工作方式。此前,这些调用仅由实体的网络主控方进行处理,从而导致同步问题和流畅度欠佳。现在,它们会在所有客户端上分别单独处理,从而消除了某些实体(如 StaticMesh)需要进行网络主控分发的限制,极大地降低了网络占用。

网络占用​

我们通过减少附加实体(例如角色驾驶、拾取武器或附加 Actor)的同步频率,优化了网络占用。

我们还优化了内部网络获取机制,以批量处理网络数据,减少了所需的内部网络 API 调用。

新增默认资产​

冒险角色​

我们原生打包了新的免费 Fab 资产包 Adventure Characters。

冒险包角色

官方沙盒游戏模式现已包含这些网格体及其已妥善配置的衣物。

Bossy Enemy Anims​

我们还打包了 Fab 资产包 Bossy Animation Pack。

Bossy 动画包
提示

所有这些资产都经过妥善配置并针对运行时使用进行了优化,均可原生使用。你可以在 默认资产列表 页面中找到所有原生资产。

全新脚本 API 方法​

本月我们实现了一系列新方法,例如:

控件插槽​

控件新增了控制其在插槽中布局的新方法:

我们还重命名了旧的 Widget:SetSlotCanvasLayout() 以保持命名的一致性。

PostProcess​

我们暴露了全新的方法,允许自定义全局后处理色彩:

其他新增方法​

VOIP 改进​

我们改进了内部 VOIP 捕获的处理方式。 VOIP 脚本事件现在仅在语音捕获真正开始或结束时触发,使其更加精准并防止意外的突发截断。

测试地图天气​

Testing Map 现已改进了材质,以便更好地对动态天气做出响应。树木与草地现在受来自 Ultra Dynamic Sky 的潮湿 Wet 和积雪 Snow 效果影响。

使用 UDS 天气材质的测试地图

外部依赖项​

  • 我们添加了 Kawaii Physics 插件。
  • Ultra Dynamic Sky 已更新至 v9.1 版本。

重要漏洞修复​

我们本月修复的一些重要漏洞包括:

  • 修复了 CharacterSimple 加速度、同步、后加入玩家的胶囊体大小以及 MoveComplete 事件的问题。
  • 修复了性能分析 UI 每次刷新时引发卡顿的问题。
  • 修复了 JSON 循环引用引发堆栈溢出的问题(现已安全置空)。
  • 修复并改进了运行时 .ogg 音频的加载。
  • 修复了后处理 PostProcess 在被附身前未能应用效果的问题。
  • 修复了旁观时相机无法正确附着到其他玩家身上的问题。
  • 修复了触发器多次重复调用 Begin/EndOverlap 事件的问题。
  • 修复了客户端执行 package reload all 时多次重复加载同一包的问题。
提示

如需完整详尽的更新日志,请前往我们的 Discord 查阅。

商店开发​

商店包网格可视化(制作中)

我们仍在努力开发商店的初始版本。我们已经完成了包部分的可运行原型,目前正在开发资产部分。

希望在月底之前能够准备妥当,供大家在测试期间进行测试和使用。

结语​

除了所有这些改进和新功能之外,本月的工作重点主要集中在开发全新的万圣节特别游戏模式上。这个新的万圣节版本变得非常有趣,我非常期待大家能亲自体验它! 🎃

在宣告完成前,仍有一些漏洞需要修复以及小幅调整。但自己亲自开发游戏模式/包总是很棒的,因为我可以发现所有需要的功能或漏洞并立即予以修复。

此外,从零开始重制 City Park 地图真的非常痛苦。这张地图的优化极其糟糕,为了让它具备可玩性耗费了大量的工作。

这真的是非常赶进度的一个月,万圣节活动还有很多工作要做,我几乎每天工作近 10 个小时以确保一切按计划进行。对我来说,这确实是一场时间管理方面的挑战。 😅

一如既往,感谢大家对我的所有支持!这对我大有裨益!如果你有任何建议或漏洞反馈,请随时提出!

游戏测试中见! 👋

Ko-fiKo-fi

8 月:语音通话、拖放与万圣节!

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

VOIP 系统重制、WebUI 拖放、CharacterSimple 改进、全新网站、万圣节活动及更多内容!

欢迎阅读我们上个月最新更新的汇总!

万圣节即将到来!​

万圣节活动预告横幅 (背景绝对不是 AI 生成)

我们非常激动地宣布,我们经典的万圣节活动即将回归!

所有测试者都可以创建阴森恐怖的玩法模式供大家游玩。如果你编写脚本、搭建场景或设计内容,现在就可以开始规划和组建团队了。

本次测试将面向所有 Steam 用户开放。这将是展示新内容、与社区同乐以及帮助我们压力测试游戏和服务器稳定性的绝佳机会。

我们将在未来几天内提供更多信息。敬请关注!

网站重做​

在上一篇新闻博客中,我们提到我们正在开发更新的账户系统和商店。上周,我们推出了主网站页面的更新,将其整合到我们新的账户系统中。

现在我们的落地页和账户系统都整合在同一个网站中了!此外,我们还重制了落地页,使其在移动端正常工作,并支持浅色/深色模式。

新版网站账户页面

我们仍在构建新功能,并将在未来几周内逐步推出。

VOIP 系统重制​

VOIP 系统进行了全面重制,支持多频道,并将本地和全局设置分离。玩家现在可以以发言者、收听者或两者兼有的身份加入多个全局频道(最多 31 个频道),同时还可以在本地(空间化)频道中同时发言/收听!

我们还公开了一系列新的 Player 方法,用于控制全局和每个频道的滤波器和音量:

(以及相应的获取方法)。

我们还添加了控制高通或低通滤波器(用于全局频道)的功能,可以通过新方法进行设置,非常适合创建类似无线电的效果:

我们创建了一个新的文档页面,提供了更详细的 VOIP 指南:

VOIP 指南core-concepts/scripting/voip

自动检测最佳设置​

我们实现了虚幻基准测试系统,可自动检测适合你 PC 的最佳画质设置。这将在你首次启动游戏时自动运行。

此外,我们还在视频设置中公开了一个新按钮,可手动强制检测:

视频设置中的新自动检测按钮

服务器收藏系统​

我们终于解决了服务器收藏系统的一个长期存在的问题。

之前的实现依赖于 Steam 的原生功能,但事实证明它相当不可靠。我们现在从零开发了一个自定义的内部收藏系统,更适合我们的需求。

服务器收藏列表

预编译着色器​

我们在游戏中整合了 PSO 着色器编译进度,因此当你首次启动 nanos world 时,需要为你的机器编译 DX12 全局着色器,它已经在后台自动运行。

但为了防止游戏内卡顿,加入服务器时会有最后一个加载步骤,显示着色器编译进度:

加载界面中新增的编译着色器步骤

离线模式​

现在当登录失败或你遇到连接问题时,主菜单中会显示“离线”标签:

主菜单中新增的离线标签

CharacterSimple++​

我们为 CharacterSimple 添加了新的客户端事件,用于常见的移动事件:

此外,你现在可以直接从中绑定动画蓝图事件分发器:

控制台与性能分析​

新的控制台日志类型

我们添加了一个新的脚本方法用于以调试模式记录日志:Console.Debug(),这意味着只有当服务器或客户端配置的日志级别为 Debug 或 Verbose 时才会显示。它将在控制台中显示为 S_DEBUG 类别。

还有一个新的 PROFIL 日志类别,用于性能分析或性能条目。

为了帮助调试,脚本日志现在会显示是由哪个包输出的。

WebUI:完善的拖放功能​

我们终于为 WebUI/CEF 实现了拖放事件。这是一个存在了很多年的问题,社区长期以来一直在请求这个功能。但现在它终于实现了!你现在可以挂钩所有 drag JS 事件了!

可附加对象改进​

我们为 AddStaticMeshAttached 和 AddSkeletalMeshAttached 都添加了新参数!

AddStaticMeshAttached:我们新增了一个最新的 attachable_id,让你可以将此网格体附加到另一个已附加的静态网格体组件上,而不是根组件。

AddSkeletalMeshAttached:我们也添加了 attachable_id 功能,同时还添加了 use_base_leader_pose_component,用于配置此骨骼网格体是否继承基础动画姿势。

UI 与 UX 改进​

按键绑定清除按键​

按键绑定设置菜单中新增的清除绑定按钮

我们在按键绑定设置中添加了一个新的清除按钮,所以你现在可以清除绑定了!

总体质量​

同样在设置中,我们添加了一个新的全局选项,可以一次性定义总体质量设置!这将把所有其他质量设置设置为相同的所选设置:

新的总体视频设置选择器

整体性能​

我们进行了多项 UI 改进和优化以提升其整体性能,现在卡顿会更少。我们还改进了 Esc 菜单的响应速度,修复了在游戏中按 Esc 时的卡顿问题。

全屏设置​

我们改进了全屏/窗口化设置的行为,现在选择全屏或窗口化时,只会显示与你的显示器兼容的合适分辨率。当选择窗口化全屏时,分辨率选择将被隐藏。

视频设置中新的全屏选项

此外,我们还修复了一个问题:在使用缩放桌面分辨率时,全屏设置未能正确设置,游戏会卡在窗口模式且只有屏幕大小的一半。

新光标​

我们为游戏准备了一套新的光标包,旧的缺少一些图像,而新的非常合适!

Ultra Dynamic Sky v9.0B​

Ultra Dynamic Sky 已更新至 v9.0B。如果你在项目中直接使用 UDS,请确保更新 ADK 中的插件以保持同步。

关于虚幻引擎 5.6​

虚幻引擎 5.6 已于过去几个月发布,像往常一样,我们等待第一个热修复(5.6.1)后才进行升级。

但当我们尝试迁移到 5.6.1 时,开始遇到与烘焙相关的问题。我们还发现网上有很多其他用户报告了类似的问题。

由于这些问题,我们将再等一段时间再升级游戏。我们将继续等待下一个版本或足够稳定的热修复后再升级!

结语​

8 月又是对我们现有系统持续改进的一个月。

改进后的 VOIP 系统是一个非常酷的新增功能,提供多频道支持和高/低通滤波,将带来令人惊叹的新玩法机制,例如逼真的无线电通话效果。

另一个长期存在的问题——原生 CEF 拖放——终于得到了正确实现!这是一个备受期待的功能,自 Ultralight 时代起就困扰着我们,现在它终于永久正常工作了。

我们还通过推出新的主网站版本并将其与我们的账户系统整合,在新的后端基础设施方面迈出了重要一步。我们正在努力为即将到来的万圣节活动准备好稳定版本的资源库/商店。

我非常激动今年能重新举办万圣节活动!这对我们才华横溢的社区来说是一个展示创造力的绝佳机会,也让我们能够一起度过美好时光。在接下来的几天里,我将发布另一个专门针对该活动的公告!

你们的反馈和支持是让这个项目保持活力并不断前进的动力。非常感谢大家的所有支持!游戏中见!

Ko-fiKo-fi

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