
DivineMC: Construyendo Servidores Minecraft Multi-Hilo que E
BX-Team/DivineMC
DivineMC es un fork multifuncional de Purpur que se enfoca en la flexibilidad de tu servidor y su optimización.
Ver en GitHub ↗Bueno, así que estás ejecutando un servidor de Minecraft y has llegado a ese punto crítico. El jar del servidor vanilla no puede usar tus núcleos de CPU adicionales, el ticking de chunks ocurre en un solo hilo, y los TPS bajan en cuanto la cantidad de jugadores aumenta. Ya probaste Paper. Ya ajustaste las configuraciones. ¿Y ahora qué?
DivineMC es un fork de Purpur que toma la legendaria flexibilidad de Purpur y añade ticking de chunks paralelo, operaciones asincrónicas, y un conjunto de optimizaciones bien pensadas. Tiene 240 estrellas en GitHub, desarrollo activo, y aborda la escalabilidad de manera diferente a los grandes nombres como Folia.
Qué Hace DivineMC
Esto no es una reescritura completa de threading. DivineMC mantiene la arquitectura de Purpur - tienes control granular sobre las tasas de generación de mobs, el seguimiento de entidades, y ajustes de comportamiento misceláneos. Pero añade ticking de chunks regionalizado, lo que significa que los chunks se procesan en paralelo usando tus núcleos de CPU disponibles en lugar de secuencialmente en un solo hilo.
El proyecto también incluye búsqueda de caminos asincrónica, seguimiento de entidades, generación de mobs, y envío de chunks. Todas las operaciones que normalmente bloquean el hilo principal de ticking ocurren fuera de hilo. Eso significa que cuando 50 zombis buscan caminos hacia un jugador a la vez, no causa una caída en tus TPS.
También obtienes seguridad mejorada (semillas de 1024 bits en lugar de 64 bits), compatibilidad con mods del cliente como Syncmatica y Xaero's Map sin infraestructura de mods del lado del servidor, y alrededor de 10 correcciones de errores que abordan varios comportamientos peculiares de Minecraft.
Por Qué Lo Querrías
Imagina esto: estás ejecutando un servidor survival con 20-30 jugadores. El crecimiento está sucediendo. Los TPS empiezan a caer durante las horas pico. Verificas el profiling y la mitad de tu tiempo de tick es carga de chunks y cálculos de búsqueda de caminos. Ya hiciste las optimizaciones estándar de configuración de Paper.
En ese punto, el ticking de chunks paralelo pasa de ser algo agradable a tener, a ser realmente útil. DivineMC permite que los chunks hagan ticking simultáneamente, algo así como lo que hace Folia, pero sin requerir una migración total o pruebas pesadas de compatibilidad de plugins.
También es sólido si tienes múltiples mundos, un ecosistema de plugins denso, o constructores de jugadores subiendo esquemas masivos. Las operaciones asincrónicas y los formatos mejorados de archivos de región significan mejor estabilidad cuando presionas el servidor fuerte.
Y esto importa: los plugins de DivineMC son 100% compatibles con Bukkit, Spigot y Paper. No estás atrapado. Si quieres cambiar mañana, todo tu ecosistema de plugins se mueve contigo.
Cómo Ponerlo en Funcionamiento
Primero, descarga una compilación desde la página de descargas de BX-Team o MCJars. Elige el jar que coincida con tu versión de Minecraft.
Inicio básico:
java -Xmx4G -Xms2G -jar DivineMC-[version].jar noguiAjusta los números `-Xmx` (RAM máxima) y `-Xms` (RAM inicial) según tu hardware. Cuatro gigas es razonable para servidores pequeños a medianos. El primer lanzamiento genera tu mundo y archivos de configuración.
El servidor te pedirá que aceptes el EULA. Edita `eula.txt` y cambia `false` a `true`, luego reinicia.
Aquí está la parte clave: DivineMC se trata de configuración. Los valores predeterminados son sólidos, pero querrás ajustar `paper.yml` y configuraciones específicas de DivineMC para tu configuración. Este sitio de documentación te guía a través de lo que realmente es configurable.
Si estás configurando para jugadores específicos, la herramienta creador de lista blanca de Minecraft ahorra tiempo. Pega los nombres de tus jugadores y genera el formato de lista blanca instantáneamente.
Características Que Importan
Ticking de Chunks Paralelo procesa chunks simultáneamente en lugar de uno después de otro. Más bloques actualizándose a la vez sin que el hilo principal de ticking se congele. No es magia, pero es notable cuando estás bajo carga.
Operaciones Asincrónicas mueven la búsqueda de caminos, seguimiento de entidades, generación de mobs, y envío de chunks fuera del hilo principal. Esto previene el lag clásico cuando una horda de mobs busca caminos hacia tu jugador.
Formato de Archivo de Región Lineal es para almacenamiento de mundo - formato V1/V2 antiguo o el nuevo enfoque Buffered. Optimización de nicho para migraciones de mundos masivas o construcciones con muchos esquemas. La mayoría de servidores no lo notarán, pero está ahí si lo necesitas.
Integración de Sentry envía reportes de errores a una instancia de Sentry si la configuras. Útil para servidores públicos donde el rastreo de errores estructurado es mejor que buscar en los logs.
Compatibilidad de Protocolo de Mods significa que clientes Syncmatica, Xaero's Map, Jade, y Apple Skin funcionan bien sin ser expulsados. Útil si tu comunidad usa mods del lado del cliente.
Qué Te Hará Tropezar
El ticking de chunks paralelo no es un botón mágico. Lo activas, pero sigues monitoreando el rendimiento y ajustándolo. No hay una configuración que simplemente haga todo más rápido.
Si quieres compilar desde la fuente (el README incluye comandos de gradle), necesitas un entorno de desarrollo configurado. Para simplemente ejecutar un servidor, usa los jars precompilados. Las compilaciones desde la fuente son para colaboradores que parchean el código base.
El ticking regional significa que los chunks en diferentes regiones se procesan en paralelo, pero los chunks dentro de una región aún hacen ticking secuencialmente. Los contraejemplos de redstone densos en un solo chunk seguirán limitando los TPS de ese chunk. La optimización ayuda cuando la actividad de construcción se distribuye en el mundo, no concentrada en un solo lugar.
Una cosa rápida: la compatibilidad de plugins es con plugins de Bukkit, Spigot, y Paper. No con mods de servidor Forge o Fabric. Puedes ejecutar mods del cliente todo el día, pero los servidores derivados de vanilla no soportan entornos de modding del lado del servidor. (Es simplemente cómo funciona el software del servidor derivado de vanilla.)
Cómo Se Compara
Folia (también basada en Paper) aplica multithreading completo al problema - cada región obtiene su propio hilo y bucle de juego. Paralelización más agresiva pero requiere pruebas más pesadas de plugins. DivineMC es menos radical y mantiene la flexibilidad de Purpur intacta.
Pufferfish fue pionero en algunas de las características asincrónicas que DivineMC incluyó, pero el mantenimiento se ha ralentizado. DivineMC se siente como la evolución natural de ese enfoque.
Paper Puro es más simple y mucho más ampliamente usado. ¿Un servidor pequeño con unos pocos plugins? Paper probablemente te da el 90% del beneficio sin sobrecarga de configuración.
Para administradores de servidores cómodos ajustando configuraciones y queriendo ganancias de rendimiento sin disrupción del ecosistema, DivineMC se encaja bien entre la simplicidad y la ambición pura.
Obtener Ayuda Cuando La Necesites
El proyecto vive en GitHub. Hay un servidor de Discord (discord.gg/qNyybSSPm5) donde la comunidad responde preguntas rápidamente. Los documentos están en bxteam.org/docs/divinemc.
Si quieres contribuir, hay una guía de contribución. Java, patrones estándar de software de servidor, sistema de compilación Gradle. Los mantenedores son receptivos y la comunidad es lo suficientemente pequeña como para que obtengas ayuda rápido.
Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.
Comentarios
Aún no hay comentarios. ¡Sé el primero en compartir tu opinión!


