VBNetTweaks

VBNetTweaks

**VBNetTweaks** 是一个为《英灵神殿》多人游戏体验设计的全面优化模组。旨在提升服务器和客户端的性能,减少延迟和卡顿,优化网络流量,并增强玩家同步。

实用工具

VBNetTweaks 是一个《英灵神殿》模组,可显著改善网络性能、对象同步和多人游戏稳定性。该模组优化了数据传输、流量压缩、位置同步和视觉效果处理。


1. 网络同步优化

修补对象的位置和旋转同步:

参数 原版值 新值 描述
SmoothPos 0.2f 0.22f 位置平滑速度(追赶更快)
SmoothRot 0.5f 0.45f 旋转平滑速度
MicroThreshold 0.001f 0.004f 微抖动过滤器(减少噪声)

此外:

  • 将 ZDO 队列缓冲区从 10KB 增加到可配置值(默认为 ~20KB)
  • 传送后延长加载屏幕时间 5 秒(对于玩家数量较多的服务器,防止传送时玩家掉入建筑物纹理中是必要的)

2. 船舶同步

改进的非所有者船舶移动同步:

  • 基于速度的位置预测
  • 自适应平滑(玩家在船上时更柔和)
  • 当不同步 >2 米或旋转 >15 度时强制修正
  • 玩家在船上的位置同步

3. Steam 套接字优化

提高 Steam 网络的吞吐量:

参数 原版 VBNetTweaks(默认) 描述
SendRateMin 150 KB/s 256 KB/s 最小发送速率
SendRateMax 150 KB/s 4096 KB/s 最大发送速率
BufferSize 260 KB 100 MB 发送缓冲区大小

4. 玩家缓存

优化玩家信息访问:

  • 缓存所有玩家列表(每 0.5 秒更新一次)
  • 通过 ID 快速查找玩家
  • 追踪玩家附着状态(在船/车辆上)

5. 优化的 ZDO 传输

用更高效的方法替换原版 SendZDOToPeers2:

  • 每次更新向多个对等点发送数据(原版:1 个对等点)
  • 可配置的发送间隔(原版:0.05 秒)
  • 错误处理并回退到原版方法

6. 优化的对象移除

改进对象从场景中移除的方式:

  • 使用帧标记快速识别要移除的对象
  • 优化的字典和列表操作

主要配置 (ServerConfig.cfg)

[00 - Master]
ModEnabled = true                          # 启用/禁用模组

[01 - Debug]
DebugEnabled = false                      # 调试模式
VerboseLogging = false                    # 详细日志记录

[02 - Modules]
SteamOptimizations = true                  # Steam 套接字优化
ShipSync = true                            # 船舶同步

[04 - Steam Settings]
MinRateKB = 256                            # 最小 Steam 速率 (KB/s)
MaxRateKB = 4096                          # 最大 Steam 速率 (KB/s)
BufferSize = 100000000                    # 缓冲区大小 (字节)

[05 - Server Settings]
SendInterval = 0.03                        # 发送间隔 (秒)
PeersPerUpdate = 30                        # 每次更新处理的对等点数
ZDOQueueLimit = 20480                      # ZDO 缓冲区大小 (KB)

推荐设置

场景 SendInterval PeersPerUpdate
少人 (2-5) 0.05 20
中等 (6-15) 0.03 30
多人 (16+) 0.02 40-50

可用统计信息 (当 DebugEnabled = true 时)

  • ZDOs Sent/Recv — 发送/接收的 ZDO 数据包数量
  • Active Peers — 使用压缩的活动对等点数量
  • Average operation time — 操作的平均执行时间 (ZNet.Update, SendZDOs, RemoveObjects)

安装

  • 客户端和服务器都需要安装。

不兼容的模组:

  • CacoFFF.valheim.LeanNet
  • redseiko.valheim.scenic
  • Searica.Valheim.NetworkTweaks
  • Searica.Valheim.OpenSesame
  • org.bepinex.plugins.network
  • CW_Jesse.BetterNetworking

注意事项

  1. ShipSync:启用改进的船舶同步 —— 在高延迟下,船只效果尤为明显。
  2. Steam Buffer:增加缓冲区可能需要更多内存,但在对象数量多时能显著提高稳定性。

反馈