Todos los artículos
5 min de lectura

Montando un Servidor de Hytale Cuando la Documentacion No Existe

Hytale se lanzo casi sin documentacion para servidores. Monte uno, escribi seis scripts para automatizarlo y prepare un tutorial cubriendo Linux y Windows.

Linux Side Projects DevOps

Hytale se lanzo en acceso anticipado y quise montar un servidor dedicado. La documentacion oficial cubria lo basico — descargar, ejecutar, conectar — pero se saltaba la mayoria de detalles practicos. Tampoco habia guias de la comunidad todavia. Asi que monte uno, apunte cada paso y automatice lo que pude.

Esto es como fue el proceso.

La Sorpresa del Protocolo

Lo primero que me pillo fue el protocolo de red. La mayoria de servidores de juegos usan TCP, o TCP mas UDP para voz. Hytale usa QUIC sobre el puerto UDP 5520. Si tus reglas de firewall solo permiten TCP, el servidor arranca sin problemas pero nadie puede conectarse. Sin error, sin timeout, solo silencio. Eso me costo mas tiempo del que me gustaria admitir.

La autenticacion fue el siguiente obstaculo. Los servidores de Hytale requieren credenciales OAuth2 vinculadas a tu cuenta de Hypixel Studios. El proceso tiene dos fases en el navegador — registrar el servidor y autorizarlo — que no se pueden automatizar. Las completas manualmente y luego pegas las credenciales en la configuracion del servidor. Es mas seguro que el modelo antiguo de Minecraft, pero significa que la automatizacion completa no es posible.

En la parte de Java: JDK 25 Temurin, que aun no esta en los repositorios de la mayoria de distros. Ajuste de G1GC, porque los flags por defecto de la JVM no van bien para servidores de juegos. Y una descarga de 3,2 GB de assets en el primer arranque que la documentacion no menciona.

Diez Fases de Configuracion

El script de configuracion para Linux (linux/hytale-setup.sh) pasa por diez fases:

  1. Preparacion del sistema — actualizaciones, fail2ban, configuracion de zona horaria
  2. Instalacion de Java — Temurin JDK 25 a traves del repositorio de Adoptium
  3. Usuario y directorios — un usuario dedicado hytale-server, archivos en /opt/hytale
  4. Descarga del servidor — interactiva, por el requisito de OAuth2
  5. Ajuste de JVM — detecta la RAM disponible y configura los tamanos del heap
  6. Configuracion del servidor — genera config.json, whitelist.json
  7. Firewall — reglas UFW para SSH en el puerto 22 y trafico del juego en 5520/UDP
  8. Servicio systemd — arranque automatico, reinicio ante fallos, hardening de seguridad
  9. Autenticacion inicial — el paso /auth login que vincula el servidor a tu cuenta
  10. Resumen — muestra los datos de conexion y los siguientes pasos

El equivalente en Windows cubre lo mismo en siete fases, usando PowerShell, Windows Firewall y tareas programadas en lugar de sus contrapartes de Linux. Mismas ideas, herramientas diferentes.

Backup y Actualizacion

El script de configuracion pone en marcha el servidor. Los otros cuatro scripts lo mantienen funcionando.

Los scripts de backup (Linux y Windows) crean archivos comprimidos con marca de tiempo del directorio del servidor. Rotan las copias antiguas automaticamente — siete por defecto — y soportan backups en caliente, sin necesidad de parar el servidor. Los scripts de actualizacion gestionan el ciclo de parar-backup-descargar-reiniciar: apagan el servidor, hacen una copia de seguridad, descargan los archivos mas recientes y lo vuelven a arrancar.

Seis scripts en total entre las dos plataformas. Cada uno tiene modo dry-run.

Escribir el Tutorial

El archivo del tutorial (HYTALE_SERVER_TUTORIAL.md) acabo en 44 KB repartidos en mas de 18 secciones. Escribirlo llevo mas tiempo que la configuracion en si.

Empieza con una recomendacion de hosting gestionado — 5-20€ al mes, sin necesidad de saber Linux. No todo el mundo deberia hacer self-hosting, y el tutorial necesitaba ser claro con eso desde el principio. Para quienes si quieran hacerlo, hay una tabla de escalado de memoria (2-3 GB para 5-10 jugadores, hasta 22-26 GB para 50-100), un checklist de seguridad y tablas de solucion de problemas comunes.

Convertir el historial del terminal en un tutorial significa hacer explicito cada paso implicito. Tienes que recordar que asumiste, que te saltaste, que solo sabias por experiencia. El flujo de OAuth2 fue un buen ejemplo — lo habia hecho una vez y habia interiorizado los pasos, pero escribirlos revelo cuantos clics y redirecciones habia de por medio.

Decisiones de Diseno

Algunas cosas que tuve en cuenta al escribir los scripts:

  • Modos dry-run en los seis scripts — ver que cambiaria antes de que nada cambie
  • Ejecucion idempotente — seguro de re-ejecutar, se salta pasos ya completados
  • Memoria JVM automatica — calcula el tamano del heap a partir de la RAM disponible, de 2 GB a 26 GB
  • Multiplataforma — Bash para Linux, PowerShell para Windows, con funcionalidades equivalentes
  • Hardening de seguridad — sandboxing de systemd, usuario de servicio dedicado, reglas de firewall minimas

El quick-start en Linux es un solo comando:

curl -sL https://raw.githubusercontent.com/blugart-dev/hytale-server-toolkit/main/linux/hytale-setup.sh | bash -s -- --dry-run

Quita --dry-run cuando estes listo.

Lo Que Aprendi

Los juegos nuevos necesitan documentacion pronto. Siempre hay una brecha entre que un juego se lanza y que la comunidad tenga guias decentes. Alguien tiene que escribir la primera, y no requiere un conocimiento profundo — solo paciencia y ganas de escribir las cosas.

Una guia y un script se complementan. La guia explica lo que esta pasando. El script lo hace repetible. Sirven a audiencias distintas y ninguno reemplaza al otro.

Escribir las cosas te obliga a entenderlas. Sabia lo suficiente para que el servidor funcionara. Escribir el tutorial me hizo darme cuenta de cuantos pasos habia hecho en piloto automatico sin entender del todo por que. El flujo de OAuth2 en particular — hay cosas que no se pueden automatizar, y el script tiene que gestionar eso con elegancia, pausandose y diciendo al usuario que hacer manualmente.

El toolkit esta en GitHub. Lo use alguien o no, entiendo mejor la infraestructura de servidores de Hytale por haberlo escrito.

Ignacio María Muñoz Márquez

Ignacio María Muñoz Márquez

Senior Game Programmer

Articulos relacionados