
鲍比分享
一个高性能的Fabric模组,它协同地从服务器流式传输区块数据,以填充Bobby渲染距离缓存。
Bobby Share 是一个高性能的 Fabric 模组,旨在协作地将 Minecraft 服务器的区块数据直接流式传输到客户端,以动态填充 Bobby 模组的渲染缓存。
🚀 工作原理
Bobby 是一个客户端模组,它允许你通过将区块缓存在本地计算机上,从而获得比服务器限制更大的渲染距离。通常情况下,你必须亲自访问这些区块才能将它们缓存下来。
Bobby Share 弥合了这一差距:
- 当你加入服务器或移动到新区域时,你的客户端会检查其本地 Bobby 缓存中是否缺少区块数据。
- 如果区块缺失,客户端会向服务器发送一个轻量级的网络请求。
- 服务器会异步加载区块数据(或直接从服务器内存中序列化当前活跃的区块),对其进行优化,并将其流式传输回给你。
- 你的客户端会将区块保存在本地并显示出来,让你能够立即看到远超服务器渲染距离之外的景象。
🔄 实时区块缓存失效与无缝热交换(v1.3.0+ 与 v1.4.0)
再也不用担心过时的远景距离或视觉空洞了!
- 即时同步: 每当玩家在服务器上破坏方块、放置方块或引发地形爆炸时,Bobby Share 都会实时使被修改的区块失效。
- 零开销: 向已连接的客户端发送一个仅 8 字节的微小通知数据包。
- 无缝热交换更新(v1.4.0 新增): 被修改的区块会在客户端上直接更新并注入到 Bobby 的活跃视觉内存中,无需卸载,彻底消除渲染闪烁、卡顿和巨大的黑色空洞。
- 过期数据包丢弃: 如果区块在网络数据包传输过程中被修改,会自动丢弃乱序的进行中响应。
⚡ 性能、安全性与并发优化
专为从 3 名玩家平滑扩展到 100+ 名并发玩家而设计,不会导致 TPS 下降或堵塞网络通道:
- 线程安全的实时区块流式传输(v1.4.0 新增): 在数据包发送之前,玩家附近主动加载的区块会在服务器线程上安全地序列化,彻底消除
PalettedContainer多线程竞态条件以及大量探索时导致的服务器看门狗崩溃。 - 高流量压力测试: 在玩家大量移动的情况下,经过严格测试,能够处理数万个实时区块请求,且零崩溃或零泄漏。
- 服务端 LRU 缓存: 在内存中缓存最多 4096 个优化后的区块复合数据(约 100MB RAM),以便即时为热门区域提供服务,无需重复读取磁盘。
- 限流的客户端队列: 将客户端发出的请求限制为每 tick 3 个区块(每秒 60 个区块),彻底消除在洞穴或密集地形中的延迟峰值。
- 令牌桶速率限制: 限制每个玩家的请求量(突发:200 个区块,补充:每秒 80 个区块),以保护服务器免遭滥用。
- NBT 剥离(带宽优化): 在发送前从区块中剥离大量与渲染无关的数据(结构、实体 tick、雕刻遮罩、方块实体),将负载大小减少 50% 到 80%。
- 主线程安全: 使用 Minecraft 的线程安全加载 API 异步获取区块数据。在客户端,文件写入在后台线程运行,使游戏完全无卡顿。
- 安全解耦: 优雅地处理 Bobby 缺失或仅客户端环境的情况,不会导致 mixin 注入失败或服务器崩溃。
⚙️ 配置与命令(服务端)
你可以使用服务器上自动生成的配置文件 config/bobbyshare.json 来配置 Bobby Share 的性能设置:
rateLimitBurst- 玩家在快速突发中可以请求的最大区块数(默认值:200)。rateLimitRefill- 每秒为玩家恢复的区块请求数(默认值:80)。cacheCapacity- 存储在服务器 RAM 中的最大已剥离区块数(默认值:4096)。maxRequestDistance- 请求区块距离玩家的安全距离上限(默认值:34.0)。blacklistedDimensions- 禁用区块流式传输的维度标识符列表(默认值:["minecraft:the_end"])。
管理员命令(需要 OP 等级 2):
/bobbyshare stats- 显示实时服务器性能仪表板:RAM 缓存占用、命中率百分比、实时 RAM 捕获、磁盘读取、被限流的请求以及已发送的失效通知。/bobbyshare reload- 从磁盘重新加载配置文件并立即应用更改。/bobbyshare clearcache- 清除服务端 RAM 区块缓存。
📥 安装与设置
要成功流式传输区块,Bobby Share 必须同时安装在服务端和客户端:
- 客户端: 将
bobbyshare-1.4.0+mc<version>.jar以及 原始的bobby-*.jar放入你的.minecraft/mods/目录中。 - 服务端: 仅将
bobbyshare-1.4.0+mc<version>.jar放入服务器的mods/目录中。 (警告:请勿将原始的 Bobby 模组放在服务端,因为它仅适用于客户端,会导致服务器启动时崩溃)。
支持的 Minecraft 版本:1.20.1 至 26.2,涵盖 13 个专用版本构建,可在 GitHub Releases、Modrinth 和 CurseForge 中获取。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。