Very Many Players (Fabric) — 提升 Minecraft 大量玩家同时在线服务器性能的模组
Very Many Players (Fabric) 是一款优化 Minecraft 服务器性能的模组,适用于大量玩家同时在线的场景。通过加速实体查找、异步区块加载、按优先级发送区块等方式,在不改变游戏机制的前提下保持 TPS 稳定。
Very Many Players (Fabric) 是一款优化 Minecraft 服务器性能的模组,适用于大量玩家同时在线的场景。通过加速实体查找、异步区块加载、按优先级发送区块等方式,在不改变游戏机制的前提下保持 TPS 稳定。
Very Many Players (Fabric) — 提升 Minecraft 大量玩家同时在线服务器性能的模组
测试与撰写本文所使用的 Minecraft 版本:26.1.2
支持的版本范围:1.18.x – 26.1.2
Very Many Players 是一款 Fabric 模组,用于在大量玩家同时在线时提升 Minecraft 服务器的性能。作者将一系列针对原版代码的针对性优化整合到一个项目中:更快的范围实体查找、玩家登录时的异步区域加载,以及大型服务器管理员通常需要自行协调的其他事项。游戏的行为不会因此改变——该模组不会修改任何游戏机制,只是加速了内部处理流程。
该模组在服务器上做了什么
其核心在于重写了服务器代码中的"热点"部分。该模组不再遍历世界中的所有实体来查找最近的目标,而是维护空间索引,从而快速且可预测地完成筛选。基于同样的原理,还实现了用于发送数据包的范围内玩家查找、追踪器以及自然生成检查。在小型服务器上,这种差异几乎察觉不到。而当地图上分散着 100 名以上的玩家时,每个 tick 的这类检查都会带来高昂开销——正是在这种情况下,该模组的效果才会显现出来。
区块与网络处理
自研的区块发送系统是该模组的第二大组成部分。区块会按优先级排队(离玩家越近越先发送),并可以限速发送。这在新玩家加入时尤为明显:服务器不会一下子"发射"出成百上千个区块从而堵塞网络,而是以平稳的速度持续发送。
另一个独立功能是在网络数据包层面为每个玩家设置独立的视距。每个玩家都可以在不改变服务器整体设置的情况下,获得属于自己的周边区块数量。
反机器人保护
处理连接的网络循环被划分为多个组:握手(handshake)和登录阶段的处理与游戏状态的处理是分开的。如果有大量机器人试图批量涌入服务器,其负载只会作用于对应的循环,而已经在线的玩家不会感受到延迟。
配置
该文件为 config/vmp.properties,会在带有该模组的服务器首次启动后自动创建。格式为标准的 Java .properties,可用任意文本编辑器编辑。修改内容将在服务器重启后生效。
参数
参数 | 作用 |
| 优化实体追踪器的主开关。 |
| 上一项的辅助开关。 |
| 在玩家登录时,在单独的线程中加载初始区块。 |
| 对部分命令(例如传送)执行相同的处理。出于兼容性回归的风险,默认处于关闭状态。 |
| 将玩家的传送门穿越计算移到单独线程中执行。 |
| 为服务器日志启用 Log4j2 的 AsyncAppender。 |
| 为不同的连接状态(handshake/login/play)分离网络循环。 |
| 限制服务器每秒向单个玩家发送的区块数量。-1 — 不限制;任意正整数 — 每秒区块数量的上限 |
| 在控制台输出关于异步区块加载的消息。 |
| 在控制台输出区块追踪系统的(诊断)消息。 |
总结
Very Many Players 能在拥有数十到数百名同时在线玩家的服务器上保持 TPS 稳定,同时不改变游戏机制。其效果来自一系列小优化的累积——更快的实体查找、将繁重操作从主 tick 中剥离、以及流式发送区块。 VMP 在始终保持大量在线人数的项目中最为有用:拥有 50 个以上位置的 SMP 服务器、小游戏服务器、公共无政府服务器等。
安装
一次典型安装大约 5 分钟。流程相同,只是 Loader 和对应构建不同。
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











