← Back to home

QuantumHy

In Development

Hytale • Version 0.2.1

server performance fps client view-distance entities optimization solo co-op

QuantumHy hace que tu cliente vaya más fluido en Hytale recortando cuánto le dice el servidor que dibuje, y lo ajusta por jugador según dónde estés. En campo abierto mantienes tu visión completa; en un sitio lleno y costoso recoge las cosas para que tus FPS no se caigan.

El cliente de Hytale es nativo, así que ningún mod toca el renderizador. Lo que un mod de servidor sí puede hacer es decidir cuánto tiene que renderizar cada cliente, y ese es todo el truco: menos chunks y entidades a la vista significan menos cosas que dibujar, lo que significa más frames.

Dos límites honestos. Solo ayuda donde está instalado (tu mundo en solitario, tu propio servidor, o un servidor que lo use), no en un servidor al que solo te conectas. Y nunca empuja tu visión más allá de lo que pediste: tu propio radio de visión es el tope, QuantumHy solo lo baja.

QuantumHy

Rendimiento

Captura de frametime en Hytale Client. Mismo PC de prueba en todas las runs.

PC de prueba

ComponenteSpec
CPUAMD Ryzen 5 3600
GPUNVIDIA GeForce GTX 1650 4GB
RAM16 GB (2×8 GB)

Ruta de estrés

Mundo en solitario, misma ruta de estrés (aves y mobs en pantalla). Mod off vs QuantumHy por defecto (~205s off, ~233s on).

MétricaOffOnCambio
FPS medio102146+43%
P551,691,1+76%
P136,264,4+78%
Media 1% low14,019,8+41%
Tiempo bajo 60 FPS25,3%6,9%−73% de ese tiempo

Ruta de estrés — mod off

Ruta de estrés — mod on

Juego normal (0.2.1)

Mundo en solitario, sesión normal (~5 min cada una). Sin ruta de estrés forzada, solo jugando. Mod off vs QuantumHy 0.2.1 por defecto.

MétricaOffOnCambio
FPS medio159,6226,9+42%
P5111,1178,1+60%
P177,2139,1+80%
Media 1% low43,7111,7+155%
Tiempo bajo 60 FPS2,2%0,1%−95% de ese tiempo

Tablas completas en GitHub.

Cómo funciona

Cada pocos segundos QuantumHy cuenta las entidades en los chunks alrededor de cada jugador como medida del coste de render, suaviza esa señal y la convierte en un único factor de reducción. Ese factor mueve dos palancas a la vez:

  • El radio de visión en chunks, para dejar de transmitir terreno lejano cuando hay movimiento.
  • El radio de stream de entidades en bloques, para que el servidor deje de enviar mobs lejanos. Esto es independiente de los chunks y es de donde viene la mayor parte de la ganancia cuando miras a una multitud.

En campo abierto ambos vuelven a subir al punto inicial. Mientras todavía estás cargando chunks (acabas de entrar, o vas corriendo), los recortes se retienen para que no se le diga al cliente que descarte chunks que está ocupado cargando.

Funciones

  • Radio de visión en chunks adaptativo guiado por la densidad local de entidades, limitado a tu propio radio
  • Radio de stream de entidades adaptativo en bloques, la gran palanca en zonas llenas de mobs
  • Culling global por LOD de entidades que descarta entidades pequeñas y lejanas antes
  • Suavizado de densidad para que la visión de quien se mueve no oscile
  • Toma de control automática de LeanCore para que los dos mods nunca peleen por el radio de visión
  • Registro detallado en el servidor que explica cada decisión por jugador en cada pasada

Instalación

  1. Descarga QuantumHy-0.2.1.jar desde la pestaña Files de CurseForge
  2. Coloca el JAR en la carpeta mods/ de tu servidor (o %AppData%\Hytale\UserData\Mods\ en Windows)
  3. Inicia el servidor. La config se crea como QuantumHy.json en la carpeta de datos del plugin

Config

No hay comandos. Todo vive en QuantumHy.json, creado en el primer arranque. Los valores por defecto funcionan de entrada: sin tope fijo de visión, adapta solo cuando hay aglomeración. Pon targetClientViewRadius por encima de 0 para cambiar distancia de visión por FPS en todas partes. Referencia completa de claves: documentación.

Usándolo con LeanCore

Si también ejecutas LeanCore, QuantumHy resuelve el solapamiento por ti. Ambos pueden ajustar el radio de visión del cliente y solo uno debe hacerlo, así que QuantumHy lo toma: al arrancar detecta LeanCore, apaga la gobernanza de radio de visión de LeanCore y pasa a controlar el radio él mismo. LeanCore sigue con todo lo demás (radio de simulación, throughput de chunks, memoria). No hace falta tocar la config de LeanCore. Pon leanCoreTakeover en false para dejar a LeanCore en paz, o yieldToLeanCoreViewRadius en true para que LeanCore conserve el radio de visión.

Recomendado

  • En solitario o tu propio servidor: deja los valores por defecto. Solo pierdes distancia de visión cuando hay aglomeración real.
  • Quieres FPS en todas partes: pon targetClientViewRadius entre 12 y 16 para limitar la distancia de visión incluso en campo abierto.
  • Observa el registro una pasada o dos para ver la densidad y las decisiones de visión, luego pon verboseLog en false.

Licencia

Licencia MIT

For server owners

Need permissions, commands & config?

The full administration guide covers every permission node, admin command, LuckPerms examples, and all config options.

Read server documentation