QuantumHy

QuantumHy

QuantumHy是Hytale的一个服务端FPS模组。它能根据玩家周围区域的拥挤程度,削减服务器告知每个客户端渲染的内容量,从而在密集区域保持帧率稳定,并在开阔地带恢复正常帧率。

实用

QuantumHy:Hytale 服务端 FPS 辅助工具

QuantumHy 通过削减服务端要求客户端渲染的内容,让你的客户端在 Hytale 中运行更流畅,并且会根据你所在的位置为每位玩家动态调整。在开阔地带你保持完整的视野;而在拥挤、渲染开销大的区域,它会拉近视野,让你的 FPS 不会骤降。

Hytale 客户端是原生的,因此没有任何模组能直接触及渲染器。服务端模组能做的,是决定每个客户端需要渲染多少内容,而这就是全部诀窍:视野内的区块和实体越少,需要绘制的对象就越少,帧数也就越高。

两个诚实的限制。它只在安装了该模组的地方生效(你的单人世界、你自己的服务器,或者运行了该模组的服务器),在你只是加入的服务器上则无效。并且,它绝不会让你的视野超出你设定的范围:你自己的视野半径是上限,QuantumHy 只会将其拉低。

性能表现

Hytale 客户端 上进行的客户端帧时间捕获。以下每次运行均使用同一台测试电脑。

测试电脑

组件 规格
CPU AMD Ryzen 5 3600
GPU NVIDIA GeForce GTX 1650 4GB
内存 16 GB (2×8 GB)

压力测试路线

单人世界,相同的压力测试路线(屏幕上有鸟类和怪物)。模组关闭 vs QuantumHy 默认设置(关闭约 205 秒,开启约 233 秒)。

指标 模组关闭 模组开启 变化
平均 FPS 102 146 +43%
P5 (5% 低帧) 51.6 91.1 +76%
P1 (1% 低帧) 64.4 78% +78%
1% 低帧平均值 14.0 19.8 +41%
低于 60 FPS 的时间 25.3% 6.9% -73% (占比降低)

完整表格和图表图片

这并非实验室基准测试。严重的帧时间峰值(500ms–1s+)在两次运行中仍然会出现;QuantumHy 在持续的高负载场景下帮助更大,而非完全消除偶发的卡顿。

压力测试路线 - 模组关闭: 视频链接

压力测试路线 - 模组开启: 视频链接

正常游戏 (版本 0.2.1)

单人世界,正常游戏会话(每次约 5 分钟)。无刻意压力测试路线,仅为常规游戏。模组关闭 vs QuantumHy 0.2.1 默认配置。 性能对比图

指标 模组关闭 模组开启 变化
平均 FPS 159.6 226.9 +42%
P5 (5% 低帧) 111.1 178.1 +60%
P1 (1% 低帧) 77.2 139.1 +80%
1% 低帧平均值 43.7 111.7 +155%
低于 60 FPS 的时间 2.2% 0.1% -95% (占比降低)

完整表格和图表图片

工作原理

每隔几秒,QuantumHy 会统计每位玩家周围区块中的实体数量,以此作为渲染成本的替代指标,对该信号进行平滑处理,并将其转化为一个单一的缩减因子。这个因子同时驱动两个杠杆:

  • 区块视野半径:当场景繁忙时,停止加载远处的区块地形。
  • 实体流半径(以方块为单位):让服务器停止发送远处的怪物。这独立于区块,也是你在拥挤场景中获得大部分性能提升的来源。

除此之外,一个全局的实体 LOD 设置可以更早地剔除较小和较远的实体。一个可选的每玩家可见上限可以在实体极度拥挤时,只保留最近的实体在视野内。当服务器刻时间 (MSPT) 升高时,压力管理器可以进一步削减渲染杠杆,直到服务器恢复平静。

在开阔地带,所有设置都会恢复到你最初的状态。当你仍在加载区块时(例如刚加入游戏,或正在冲刺跑图),削减操作会被暂缓,环境生物生成也可以暂停,这样客户端就不会被迫丢弃它正在加载的区块。

功能特点

  • 自适应区块视野半径:由局部实体密度驱动,上限为你自己的视野半径。
  • 自适应实体流半径(以方块为单位):在处理怪物密集区域时的关键杠杆。
  • 全局实体 LOD 剔除:更早地剔除较小和较远的实体。
  • 实体剔除系统:包含垂直 (Y) 修剪和可选的每玩家可见上限。
  • 密度平滑:防止移动玩家的视野频繁切换。
  • 区块流平滑:防止进入新地形时出现卡顿。
  • 生成流暂停:当玩家区块仍在加载时暂停生成。
  • MSPT 压力管理器:当服务器承受刻压力时,削减渲染负载。
  • 自动与 LeanCore 共存:确保两个模组不会争夺同一杠杆的控制权。
  • /q 指令:包含 (statushelpperf) 子指令,用于实时查看其运行状态。
  • 详细服务端日志:记录每位玩家每次检查做出的每一项决策。

安装方式

  1. 文件 选项卡下载 QuantumHy-0.2.1.jar
  2. 将其放入你服务器的 mods 文件夹(或 Windows 上的 %AppData%\Hytale\UserData\Mods\)。
  3. 启动服务器。配置文件 QuantumHy.json 会在插件数据文件夹中自动创建。

配置文件

所有配置都位于 QuantumHy.json 中,它在首次运行时创建。默认设置开箱即用:无硬性视野上限,仅在拥挤时自适应调整。将 targetClientViewRadius 设置为大于 0 的值,可以在任何地方牺牲一些视野距离来换取 FPS。待你信任该模组后,可将 verboseLog 设为 false。如需实时查看其运行情况,请在游戏中或控制台使用 /q status 指令。

发现 Bug?请前往 问题反馈页面

与 LeanCore 共同运行

两个模组可以同时运行。每个拥有不同的控制杠杆,因此不会争夺同一字段的控制权。默认设置已经对齐:QuantumHy 控制客户端视野半径 (leanCoreTakeover=true);LeanCore 保持热度/模拟半径和内存。当 LeanCore 的吞吐量治理功能开启时,QuantumHy 会放弃对区块流的控制。请参阅自述文件 (README) 了解所有权表格和可选配置项(leanCoreTakeoveryieldToLeanCoreViewRadius)。

推荐设置

  • 单人游戏或你自己的服务器:保持默认设置。只有在真正拥挤时才会损失视野距离。
  • 希望在任何地方都获得高 FPS:将 targetClientViewRadius 设置为 12 到 16 之间的值,以限制即使在开阔地带的视野距离。
  • 观察一两次日志以了解密度和视野决策,然后将 verboseLog 设置为 false

开源许可: MIT