McPack

创作者: McLovin
已更新:2026-09-16 08:58:57
14KB

关于此 MOD

为每位玩家提供均匀节奏的世界更新,并设定有限的工作预算,同时采用不受限的 Steam 发送速率。

McPack

每位玩家都会以均匀的节奏轮流接收世界更新,Steam 也可以再次自行选择发送频率。

安装它,保持默认设置,然后放到托管它的机器上。

问题

《英灵神殿》会分轮次推送世界更新。它先等待0.05秒,然后每帧只处理一个连接,并且总是从对等端列表的同一端开始遍历,之后再次等待。

由此形状可得出两点:

  • 每回合每个连接消耗一帧。 玩家回合之间的间隔会随着玩家数量增加而变长,服务器循环越慢,间隔也会进一步拉大。在这段间隔期间,服务器并不繁忙;这种空闲是设计使然。
  • 每轮行走都从同一个索引重新开始,所以恰好排在第一的连接在结构上受到优待,而最后一个则被冷落。

这是满员服务器上出现陈旧的门、延迟到达的掉落物品、飞船橡皮筋回弹和地图标记卡顿的常见原因。

麦克包的功能

连接按固定速率累积信用点,光标可跨帧保持。回合均匀轮转,每位玩家的节奏不再因服务器人数增加而崩溃。

以默认设置,在30 Hz服务器循环下,与标准配置相比:

玩家 每名玩家的库存 每名玩家一份麦乐包 库存,总计 McPack,总计
5 4.95/秒 19.95/秒 24.9/秒 每秒 100
15 1.85/秒 每秒10.00 28.1/秒 150/秒
30 0.95/秒 5.00/秒 28.9/秒 150/秒
50 0.55/秒 3.00/秒 29.4/秒 150/秒

注意最后一列。 总数已封顶这样额外的工作量就不会随玩家数量增长。小型对局以全速运行;大型对局则拉长每名玩家的间隔,以保持在预算之内,而不会让主机过载。如果主机吃力,就该调低这个上限;如果主机仍有余力,就该调高它。

McPack还解除了Steam发送速率的限制。Valheim将最小值和最大值设为同一个数值,即153600字节/秒,这不仅限制了吞吐量,还完全剥夺了Steam估算带宽的能力,因为上下限相等的范围没有任何可选项。McPack恢复了真正的范围,让Steam能在连接良好时提速,在连接不佳时降速。

代价

大约是库存每秒总发送次数的五倍,有限且可预测。

每一轮都会在游戏自身的代码中重建并排序一个玩家的附近对象列表,因此这消耗真实的 CPU 和真实的上传量。这就是代价:更新越频繁,开销越大。 每秒通行次数 随你决定多少。

McPack无法修复丢包、路由不佳、硬件缓慢或已饱和的上行链路。

安装位置

调度器在哪台机器上运行很重要,无论是 托管 ——专用服务器,或托管世界的玩家。对等端列表就在那里,轮询也在那里进行。

客户端也可以安装;Steam发送速率调整适用于任何运行它的机器。未安装模组的客户端仍然可以加入运行McPack的服务器。不会强制执行,也不会因为没有安装而被踢出。

配置

BepInEx/config/joaorodrigues.valheim.mcpack.cfg,首次启动时写入。

1 - 通用

设置 默认 它的作用
已启用 真 主开关。关闭后恢复默认行为,无需卸载。

2 - 发送调度器

设置 默认 它的作用
公平调度器 真实 上述节奏均匀稳定。关闭后则不干预游戏自身的调度安排。
发送间隔 0.05 玩家回合之间的最佳秒数。不会比这更快。
每秒传球总数 150 预算。 每秒所有玩家发送传球的次数上限。在30赫兹循环下,存量接近每秒30次。
每帧最大连接数 8 单局内发球得分最多,一人终结比赛。 0 移除上限,不建议在繁忙的服务器上使用。

如果宿主挣扎,则降低 每秒通行次数 首先——它是控制总成本的那一个。更低 每帧最大连接数 如果症状是帧率 spikes 而不是持续负载。

3 - Steam

在跨平台联机连接中忽略,因为跨平台联机使用的是PlayFab而非Steam套接字。

设置 默认 功能说明
调校Steam 真 恢复真实的最小/最大值范围,而非游戏锁定的固定值对。
发送速率上限 1048576 Steam 可选择的最⾼速率,单位字节/秒。这是上限,不是恒定速率。游戏会设置 153600.
最小发送速率 153600 Steam 可能选择的最低速率。保持低值有益——这是 Steam 回退的底线。提高它并不会让糟糕的连接变快。
发送缓冲区大小 1048576 每个连接可排队等待的字节数(Steam)。太小会拒绝突发数据;太大则会让过时更新堆积。

兼容性

McPack在其调度器开启时会独占游戏的发送调度方法。另一个替换相同方法的模组会与之冲突;请只运行其中一个。该前缀以低优先级注册,因此另一个模组的补丁会优先决定。

每个功能都是独立打补丁的。如果游戏更新移动了两个目标之一,该功能会自行关闭并在日志中说明,而不会连带关闭另一个。对单个对等端抛出异常的发送过程会被记录并跳过,而不会禁用调度器,反复失败则会在本次世界会话剩余时间内回退到原版调度。

关于此事的任何信息 什么 只涉及发送方式、选择方式或序列化方式——只关注每个玩家获得回合的频率。

安装

使用模组管理器安装,或将 McPack.dll 进入 BepInEx/plugins专用服务器需要它在服务器自己的 BepInEx/plugins 文件夹;仅将其安装到你的个人配置中不会在服务器上安装它。

需要BepInEx for Valheim。

来源

https://github.com/jcastro09/McPack

MIT 许可。基于游戏自身反编译的网络代码构建;未使用任何其他模组的源代码。

Valheim: 英灵神殿 的热门 MOD

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

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