
鲍比分享
一个高性能Fabric模组,协作将区块NBT数据从服务器直接流式传输到客户端,以动态填充Bobby渲染距离缓存。
Bobby Share 是一款高性能的 Fabric 模组,旨在协作式地将 Minecraft 服务器中的区块数据直接流式传输到客户端,以动态填充 Bobby 模组的渲染缓存。
🚀 工作原理
Bobby 是一款客户端模组,它通过在本地计算机上缓存区块,使你能拥有超过服务器限制的渲染距离。通常,你需要亲自访问区块才能将其缓存。
Bobby Share 弥补了这一差距:
- 当你加入服务器或移动到新区域时,你的客户端会检查其本地 Bobby 缓存中是否缺少区块数据。
- 如果区块缺失,客户端会向服务器发送一个轻量级的网络请求。
- 服务器会异步加载区块数据(或直接从服务器内存中序列化活跃的区块),进行优化,然后将其流式传回给你。
- 你的客户端将区块保存在本地,使你能够立即看到远超服务器渲染距离的远景。
🔄 实时区块缓存失效 (v1.3.0+ 新增)
再也不用担心过时的远方视野了!
- 即时同步: 当有玩家在服务器上破坏方块、放置方块或引发地形爆炸时,Bobby Share 会实时地使修改过的区块缓存失效。
- 零开销: 只需向已连接的客户端发送一个微小的 8 字节数据包通知即可。
- 无缝更新: 客户端会绕过修改区块的过时本地磁盘缓存,并自动流式传输更新后的结构,无需手动重置缓存或重新加入服务器!
⚡ 性能与安全优化
专为从 3 名玩家到 100+ 名并发玩家平滑扩展而设计,不会导致 TPS 下降或网络通道堵塞:
- 实时服务器内存流式传输: 玩家附近活跃加载的区块会直接从服务器内存序列化,确保你始终能看到最新的世界编辑内容。
- 服务端 LRU 缓存: 在内存(约 100MB RAM)中缓存多达 4096 个优化后的区块复合数据,以即时响应热门区域。
- 限速的客户端队列: 将客户端发送的请求限制为每 tick 3 个区块(每秒 60 个区块),彻底消除了在洞穴或茂密地形中的网络延迟峰值。
- 令牌桶速率限制: 限制每个玩家的请求数量(突发:200 个区块,补充:80 个区块/秒),以保护服务器免受请求轰炸。
- NBT 剥离(带宽优化): 在发送前剥离区块中沉重的、与渲染无关的数据(结构、实体 tick、雕刻掩码、方块实体),将数据包大小减少 50% 至 80%。
- 主线程安全: 在服务器端异步获取区块数据。在客户端,文件写入在后台线程上运行,确保游戏完全无卡顿。
⚙️ 配置与命令 (服务端)
你可以使用服务器上自动生成的配置文件 config/bobbyshare.json 来配置 Bobby Share 的性能设置:
rateLimitBurst- 玩家在快速突发中可请求的最大区块数(默认:200)。rateLimitRefill- 每秒为玩家恢复的区块请求数(默认:80)。cacheCapacity- 存储在服务器内存中的剥离后区块的最大数量(默认:4096)。maxRequestDistance- 玩家可请求区块的最大距离的安全限制(默认:34.0)。blacklistedDimensions- 禁用区块流式传输的维度标识符列表(默认:["minecraft:the_end"])。
管理员命令 (需要 OP 等级 2):
/bobbyshare reload- 从磁盘重新加载配置文件并立即应用更改。/bobbyshare clearcache- 清除服务端内存中的区块缓存。
📥 安装与设置
为了成功流式传输区块,Bobby Share 必须同时安装在服务器和客户端上:
- 客户端: 将
bobbyshare-.jar和原版bobby-.jar放入你的.minecraft/mods/目录。 - 服务端: 仅将
bobbyshare-*.jar放入你服务器的mods/目录。 (警告:切勿将原版 Bobby 模组放在服务器上,因为它仅限客户端使用,并会导致服务器在启动时崩溃)。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。