跳至正文

5 月:修复了 666 个漏洞与 P2P!

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

漏洞清除、P2P 服务器、更好的同步及更多!

漏洞不得通过!​

本月,我们自豪地在问题跟踪器中达到了关闭 666 个问题(修复和/或解决)的令人难以置信的标记!

你可能会说这不重要,因为其中一些只是重复的、无效的,甚至是为了移到反馈中心而关闭的,没关系。但我们甚至没有提到我们的内部问题跟踪器,我们已经又关闭了 500 多个问题:😁

仅在 5 月我们就修复了 60 个报告的漏洞:

这是一个特殊的指标,表明你的所有建议和想法都被阅读并给予了应有的关注,并且所有漏洞都被修复了!感谢大家为此做出的贡献,特别是 @Voltaism 和 @Ayanokoji,他们真正做了敲猴子工作并找到了最不易察觉的漏洞! 😂

提示

你可以在我们的 Discord 更新日志频道中找到所有漏洞修复的无尽列表:

新反馈页面​

最近,我们推出了一个新的反馈页面来收集想法和建议。之前我们在 GitHub 的问题跟踪器上做这件事,但现在我们有一个专门用于想法的平台,现在 GitHub 不再仅用于漏洞。

这个新平台由 Canny 提供支持,你可以在其中添加新建议并为其他建议投票。欢迎登录并为最好的想法投票!了解某个功能是否真的需要对我们来说非常有用,这样我们就可以给予正确的优先级!

它还提供了一个路线图标签页,将所有已接受/计划和进行中的想法分组!旧的 Trello 板将不再使用。

来看看吧! 👉 https://nanos-world.com/feedback/ideas

P2P 服务器​

一件根本上重要的事情是能够从菜单启动游戏与朋友一起玩,而无需担心专用服务器或路由器端口转发之类的事情。

现在,得益于新的 P2P 服务器选项,这成为可能!这允许你以 P2P 模式打开服务器,通过 Steam 中继服务器中继所有流量,并在服务器和客户端之间建立连接,安全地确保双方都不知道彼此的 IP 等! 🤯

为了实现这一点,我们必须重新实现我们的文件传输系统(在连接到服务器时),该系统为此目的使用了 HTTP 连接,现在它可以使用内置连接系统来传输它们! (HTTP 传输仍然比使用内部套接字快,尽管在 P2P 连接上这是唯一可能的方法)。

备注

通过 HTTP 传输文件仍然比 P2P 快。我们也正在努力改善这一性能!

当服务器以 P2P 模式打开时,所有传输都重定向为使用内置传输系统。另一方面,以专用服务器方式打开服务器将像今天一样使用:小文件通过内置传输系统,大文件通过 HTTP。

最后,我们正在引入两种新的服务器“类型”:专用服务器 和 P2P,这只是你可以在 Config.toml 中设置的配置,或作为参数 --dedicated_server 0/1 来启用或禁用它。通过菜单启动服务器将默认以 P2P 方式启动,除非在高级标签页中明确设置。

启动 P2P 服务器时,Steam 中继服务器将生成一个新的临时随机“虚拟”IP 地址,供其他人用来连接到你的服务器。无需转发路由器端口!

由于连接是通过 Steam 中继服务器建立的,即使连接到本地主机,所有流量也将通过你计算机最近的 Steam 服务器,这意味着即使在本地主机上,你的 ping 也不会为零。如果你想测试或独自游玩,我们建议将其作为专用服务器启动。

新的同步插值​

自 UE 5.0 以来,在与客户端同步位置/旋转时,一些插值开始变得奇怪/闪烁。为了修复和改进这一点,我们成功地将我们所有的网络集成到了虚幻引擎内置的物理复制系统中!

该系统通过由网络快照数据包供给并自动处理所有插值、外推、不同步和高 ping 来工作! 😎 它大大提高了物理同步的质量!

目前,所有物理实体(道具、武器、近战、手榴弹和载具)都使用这个新系统进行模拟。其他实体(或非模拟物理)仍在使用标准的插值方法,这完全没问题并且适合。

我们仍在考虑将角色纳入新系统。由于它们使用单独的移动系统,因此需要不同的方法和特别关注。 😉

新的游戏内控制台​

我们扩展了游戏内控制台以提供新的原始可视化。由于虚幻引擎控件不能提供更好的方法来同时拥有彩色文本和选择它们的能力,我们决定添加一个新标签页将控制台转换为原始文本,你可以自由地将它们复制到剪贴板:

我们还添加了一个直接打开日志文件的按钮! 😉

值得注意的变化​

网络调试统计信息​

除了世界中的网络调试绘制之外,我们还包含了一个新的屏幕调试工具,在屏幕上显示网络统计信息,如果你在设置 -> 调试中启用绘制网络调试,它将显示。

轮廓​

现在你也可以通过在其上使用 :SetOutlineEnabled() 在 Actor 中启用轮廓效果!它的工作方式类似于 :SetHighlightEnabled,你也可以自定义其颜色和厚度!

我们也将沙盒物理枪效果替换为此了!

动画设置​

我们开始为设置实体上的动画参数实现新接口,它现在支持一个新参数 play_rate,你可以直接在实体的 :SetAnimation...() 中定义。

备注

目前这个新接口仅适用于武器。很快它将来到所有实体!

声音设置​

与动画设置相同,但也适用于声音!现在你可以为其定义每个实体每个资产的通用声音设置,它支持 volume 和 pitch 参数:

备注

目前这个新接口仅适用于武器。很快它将来到所有实体!

内部控制绑定​

通过我们模块化和移除一些内部依赖(主要与动画和动画蓝图相关)的努力,我们开始创建一些控制绑定来取代我们旧的过程动画方法(之前它们被硬编码在动画蓝图中,现在它们被分成几个控制绑定),这也提供了更好的性能和模块化!

我们已经创建并正在使用用于驾驶和瞄准的控制绑定,为武器瞄准和驾驶车轮提供过程动画。

沙盒改进​

沙盒游戏模式也获得了一些改进,例如工具的新图标:

还改进了物理枪和缩放器的线性缩放以获得更好的操控性,重做了使用工具附着实体的系统(之前由于 ping 导致附着位置漏洞,现在考虑了客户端相对位置),当然我们还进行了几个漏洞修复!

我们还收到了来自 Voltaism 的 PR,它添加了通过上下文菜单重生和冻结时间的选项。

新文档教程​

自定义武器换弹动画​

我们创建了一个新的教程页面,用于添加自定义武器换弹动画。这得益于我们不断使游戏模块化的努力。换弹动画很特殊,因为它们在执行期间触发游戏操作,需要在动画蒙太奇内部进行配置!

结语​

通过实现 P2P 服务器,我们成功地使与朋友一起游玩和测试变得极其容易!现在每个人都可以立即启动服务器并与朋友一起玩,无需端口转发等! 🥳

此外,随着新的路线图与建议的引入,我们更加朝着反馈驱动的方向前进,所以请把你所有的想法放在那里,并为你喜欢的投票!我们真的认为这是采取下一步的关键!

啊,值得一提的是我们有一条热门推文 😁!如果你还没有关注我们,请现在关注!

Foo

感谢又一个月的支持,爱你们! 💝