网络性能系统

创作者: MidnightMods
已更新:2026-09-10 03:32:40
137KB

前置 MOD

使用 网络性能系统 时将自动安装

关于此 MOD

让分布在各大洲的团队也能畅玩《英灵神殿》。根据实测延迟调整每个对等端的发送窗口并分配模拟权威。

网络性能系统

网络性能系统是一次全面的网络优化,旨在解决高延迟带来的问题。

在《英灵神殿》中,大多数物体都是由用户端模拟的。因此,一个区域里只要有一个高延迟玩家,就会让所有东西或各种事物变得极其糟糕。这个模组旨在通过多种方式解决这个问题。

为什么这个模组与其他联机模组不同

其他所有英灵神殿联机模组都将多人游戏性能视为一种 带宽 问题在于压缩、更大的缓冲区、更高的发送速率、过滤广播。对于十个人在一个基地里占满共享上限的情况,这个诊断是对的。但它应付不了更大的分布式服务器,也应付不了来自天差地别地理位置的多个玩家。

NPS 通过多种方式解决这些问题

  • 每个节点都有各自的往返时延(RTT)、健康检查和带宽估算。
    • 这允许动态调整路线以绕开较差的连接
    • 高延迟但带宽充足的玩家,允许服务器向这些玩家更积极地发送数据作为补偿。
    • 可以围绕网络连接较差的玩家动态调整物体归属权,以为该区域内的所有玩家提供最佳体验
  • 需要网络调用才能交互的对象会提前转移所有权,发生延迟的情况会少得多
  • 在活动请求期间变更所有权的对象,其请求会正确重新指向新所有者,而仍然无法送达的物品会被丢在站点,而不是丢失。
  • 局部重要的对象(例如脚步声)仅在本地进行网络广播,而不是在服务器全局广播。
  • 服务器垃圾回收频率相比原版显著降低

安装中

仅服务器端有效。 原版客户端无需安装任何东西就能获得发送窗口、归属权、调度器、站点请求和生物命中修复,服务器会跟随玩家实际所在位置,而不是两秒前的位置。服务器向每个玩家发送已安顿或远处生物的频率也更低了。

也在客户端安装 为这些客户端加入了延迟补偿、实时位置上报以及死亡会话的干净退出机制,并允许他们拥有的船只移交给任何接手驾驶的人。他们模拟的生物在静止时不再重复发送自身数据,这在驯养动物围栏旁边尤为重要。混合组队没有问题——增益按玩家单独计算,未安装该模组的客户端行为与原版完全一致。还有 无版本锁定:没人会因为没这东西而被踢。

适用于专用服务器和玩家主持的游戏。

诊断并报告问题

一个简单的开始方式是启用nps_stats显示运行 NPC统计收集 (需要 开发命令,因为采样每个对等端每刻都会产生一次 Steam 调用开销),播放,然后 玩家统计.

被链接压力表标记为的玩家 有损 已经在处理了:服务器会逐步降低某个玩家的发送速率,直到其连接不再丢包,一旦连接恢复正常便逐步恢复速率,且不会改变其他任何人的速率(Steam 传输 / 启用丢包退避)。若玩家的丢包率在降低后仍无改善——即当其速率已低于其连接原本所能承载的水平,或已降至最低速率——则说明其连接问题无法通过调整速率解决:他们会恢复到全速状态,并一直保持该状态,直到服务器重启。在服务器端发生中断期间测得的丢包会被忽略。“丢包退避”区块会显示哪些玩家被退避以及退避幅度。

延迟、回弹、攻击不判定?发送报告。

服务器所有者: 在 BepInEx/配置/MidnightsFX.网络性能系统.cfg,设置 启用网络监控 = true 下面 [监控]你不需要重启,管理员也可以在游戏内更改。先玩着解决这个问题,然后将其设回 假,并压缩其中最新的文件夹 BepInEx/NpsMonitoring/.

玩家: 你的游戏只有在服务器请求时才会发送数据,且绝不会发送姓名、平台ID、地址或聊天内容。若要选择退出,请设置 允许监控上传 = false 下方 [客户端配置] 在你自己那份该文件的副本中。服务器无法覆盖它。它只是阻止你的游戏上传:服务器仍会以匿名会话编号记录其连接端的信息,例如你的延迟。

然后 以以下形式发布压缩包: GitHub 问题 或在 Discord,并描述你所看到的情况:发生了什么、发生频率、大致时间以及当时有多少名玩家在线。参见 举报网络问题 为了记录之事。

如果生物出现橡皮筋回弹、攻击无效,或者玩家进出时画面卡死,服务器可以记录网络当时的状态,以便进行诊断,而不是靠猜测。

  1. 在服务器上,设置 启用网络监控 至 真 在 监测 部分。无需重启,管理员可在游戏内更改。
  2. 把问题玩通。和常一起玩的人共度一晚最理想。
  3. 把它放回 假.
  4. 压缩以下位置的最新文件夹 BepInEx/NpsMonitoring/ 在服务器上并发送,附上一句话说明玩家看到了什么以及大致时间,作为一个 GitHub 问题 或于 Discord.

记录内容: 每次生物易主以及该变更是否维持、发送给已不再拥有该目标的玩家的消息、每个玩家的生物汇报频率、每个玩家的延迟、连接质量、服务器每秒向其发送和接收的数据量,以及这些流量的构成:哪些是游戏自身的消息、哪些是模组的消息(按模组赋予它们的名称)、以及哪些类型的对象。安装了该模组的客户端会补充只有它们才能看到的内容:生物在易主时正在做什么、它当时在与谁战斗、它在屏幕上跳了多远、是什么杀死了它们所模拟的每只生物、它们所模拟的生物变化频率、帧率,以及它们游戏所发送消息的名称。这会为每个客户端带来最高每秒 2 KB 的上传开销,以小编批形式发送,并在连接正忙于游戏自身流量时暂缓发送,因此记录绝不会延误游戏。

不是什么: 玩家名称、Steam或平台ID、IP地址、聊天内容。玩家仅以游戏为该连接随机分配的会话编号形式出现,位置信息四舍五入到米。任何玩家都可以通过设置以下选项来拒绝发送任何信息 允许监控上传 到 假 在他们自己的配置中。

在关闭状态下不产生任何费用:它使用的钩子仅在开启时安装。该文件夹的上限由 最大磁盘空间(MB) 默认4096(跨所有会话)。达到上限时录制停止并在日志中注明;已录制的内容不会被删除,请自行清理旧的会话。 玩家统计 显示它是否正在运行以及是否有任何内容被丢弃。

与以下内容不兼容

其他重写相同代码的网络模组:FiresGhettoNetworking、VBNetTweaks、SkadiNet、BetterNetworking、Smoothbrain's Network、NetworkTweaks、WarheimNetwork、TimeoutLimit。BepInEx会拒绝将此模组与它们一同加载,而不是让你处于半修补状态。尤其是TimeoutLimit,它不再是你需要放弃的东西: 连接超时 这些设置覆盖了相同的范围,而且不同于只在某一层提高超时时间,它们同时改动了原版中两个会触发超时的地方。

已验证兼容 (不同层级,无重叠):LeanNet、Compress、Scenic。ReturnToSender 也没问题——它已经修复了调度器,所以那个机制会退让,其余部分继续正常工作。EnRoute 和 BetterZeeRouter 同理也没问题:两者都重做了路由 RPC 中继,因此当其中任一存在时,中继过滤和中继发送复用都会退让,其他一切继续正常工作。Valheim Plus 也没问题:它有自己的玩家上限,所以本模组的 玩家上限 安装后设置将被忽略,而 V+ 的 最大玩家数 当前生效的是这一个。ClientGhostWatchdog 也可以:它自行处理客户端侧的幽灵逻辑,并依据自己的超时机制运作,因此本模组的客户端看门狗会让位,由该模组的行为接管。主机侧的部分——将幽灵从所有权中驱逐,这是该模组不做的——无论如何都会继续运行。

制作人员

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!