Avec le lancement tant attendu de Hytale, de nombreux joueurs et administrateurs souhaitent créer leur propre serveur dédié pour accueillir leur communauté. Contrairement à d’autres jeux sandbox, Hytale propose une architecture serveur moderne et performante basée sur Java 25 et le protocole QUIC, offrant des possibilités infinies en termes de personnalisation et d’optimisation.
Ce guide complet vous accompagne pas à pas dans la création et l’optimisation de votre serveur Hytale, depuis l’installation des prérequis jusqu’aux configurations avancées pour garantir des performances optimales.
Configuration requise et prérequis techniques
Avant de vous lancer dans la création de votre serveur, il est essentiel de comprendre les exigences matérielles minimales. Un serveur Hytale nécessite au minimum 4 Go de RAM et Java 25 installé sur votre système. Les architectures x64 et arm64 sont toutes deux supportées, ce qui offre une grande flexibilité en termes de matériel.
La consommation de ressources dépend fortement du comportement des joueurs et de la configuration de votre monde. Les deux principaux facteurs de performance sont :
- CPU : sollicité par le nombre de joueurs connectés et le nombre d’entités actives (PNJ, monstres)
- RAM : consommée par la surface de monde chargée, déterminée par la distance d’affichage et l’exploration des joueurs
Il est recommandé de surveiller l’utilisation de la RAM et du CPU pendant les premières sessions pour ajuster la configuration. Un symptôme typique de pression mémoire est une augmentation de l’utilisation du CPU due au ramasse-miettes Java (garbage collector).
Installation de Java 25
La première étape consiste à installer Java 25, version requise pour exécuter un serveur Hytale. Nous recommandons d’utiliser la distribution Adoptium (anciennement AdoptOpenJDK) pour sa stabilité et son support à long terme.
Sur Linux (Ubuntu/Debian) :
# Télécharger et installer Java 25 depuis Adoptium
wget https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.1%2B8/OpenJDK25U-jdk_x64_linux_hotspot_25.0.1_8.tar.gz
sudo tar -xzf OpenJDK25U-jdk_x64_linux_hotspot_25.0.1_8.tar.gz -C /opt/
sudo update-alternatives --install /usr/bin/java java /opt/jdk-25.0.1+8/bin/java 1
Sur Windows :
Téléchargez l’installateur depuis le site officiel d’Adoptium et suivez l’assistant d’installation.
Vérification de l’installation :
java --version
Le résultat attendu doit afficher :
openjdk 25.0.2 2026-01-20 LTS
OpenJDK Runtime Environment Temurin-25.0.2+10 (build 25.0.2+10-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.2+10 (build 25.0.2+10-LTS, mixed mode, sharing)
Obtention des fichiers serveur
Deux méthodes permettent d’obtenir les fichiers nécessaires au fonctionnement du serveur Hytale : la copie manuelle depuis le launcher ou l’utilisation du Hytale Downloader CLI.
Méthode 1 : Copie manuelle depuis le Launcher
Cette méthode est idéale pour des tests rapides, mais peut s’avérer fastidieuse pour maintenir le serveur à jour. Les fichiers se trouvent dans le répertoire d’installation du launcher :
Windows :
%appdata%\Hytale\install\release\package\game\latest
Linux :
$XDG_DATA_HOME/Hytale/install/release/package/game/latest
MacOS :
~/Application Support/Hytale/install/release/package/game/latest
Copiez le dossier Server ainsi que le fichier Assets.zip vers votre répertoire serveur.
Méthode 2 : Hytale Downloader CLI (recommandée)
Pour les serveurs de production, le Hytale Downloader CLI est fortement recommandé car il facilite grandement les mises à jour. Cet outil en ligne de commande gère automatiquement le téléchargement des fichiers serveur avec authentification OAuth2.
# Télécharger la dernière version du serveur
./hytale-downloader
# Afficher la version du jeu sans télécharger
./hytale-downloader -print-version
# Télécharger depuis la branche pre-release
./hytale-downloader -patchline pre-release
# Spécifier un chemin de destination personnalisé
./hytale-downloader -download-path /home/hytale/game.zip
Si vous hébergez plusieurs serveurs ou souhaitez comprendre les coulisses d’un serveur dédié pour jeux en ligne, cette méthode automatisée vous fera gagner un temps précieux lors des mises à jour.
Lancement et configuration initiale du serveur
Une fois les fichiers en place, le lancement du serveur s’effectue via une commande Java optimisée qui exploite le cache AOT (Ahead-Of-Time) pour améliorer les temps de démarrage.
Commande de lancement optimisée
java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip
Le paramètre -XX:AOTCache charge le cache de compilation pré-entraîné fourni par Hypixel Studios, permettant de réduire significativement le temps de démarrage en évitant la phase de « warmup » du compilateur JIT (Just-In-Time).
Authentification du serveur
Lors du premier lancement, le serveur nécessite une authentification OAuth2. Cette étape est cruciale pour activer les communications avec les API de service Hytale et prévenir les abus.
/auth login device
Le système affichera :
===================================================================
DEVICE AUTHORIZATION
===================================================================
Visit: https://accounts.hytale.com/device
Enter code: ABCD-1234
Or visit: https://accounts.hytale.com/device?user_code=ABCD-1234
===================================================================
Waiting for authorization (expires in 900 seconds)...
Ouvrez l’URL dans votre navigateur, connectez-vous avec votre compte Hytale et autorisez l’appareil. Une fois validé :
Authentication successful! Mode: OAUTH_DEVICE
Note importante : Il existe une limite de 100 serveurs par licence Hytale pour prévenir les abus pendant l’Early Access. Si vous avez besoin de plus de capacité, vous devrez acquérir des licences supplémentaires ou demander un compte Server Provider.
Arguments Java optimisés pour performances maximales
L’optimisation des arguments JVM (Java Virtual Machine) est cruciale pour garantir des performances optimales, particulièrement sur un serveur accueillant de nombreux joueurs simultanément.
Configuration mémoire
Les paramètres -Xms et -Xmx contrôlent respectivement la mémoire initiale et maximale allouée au processus Java :
java -Xms4G -Xmx8G -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip
Recommandations par nombre de joueurs :
- 1-10 joueurs : -Xms2G -Xmx4G
- 10-30 joueurs : -Xms4G -Xmx8G
- 30-50 joueurs : -Xms8G -Xmx12G
- 50+ joueurs : -Xms12G -Xmx16G ou plus
Optimisation du garbage collector
Pour réduire les pauses liées au ramasse-miettes, utilisez le garbage collector G1GC avec des paramètres optimisés :
java -Xms8G -Xmx8G \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=50 \
-XX:G1HeapRegionSize=32M \
-XX:+ParallelRefProcEnabled \
-XX:+PerfDisableSharedMem \
-XX:AOTCache=HytaleServer.aot \
-jar HytaleServer.jar --assets Assets.zip
Explication des paramètres :
- -XX:+UseG1GC : Active le garbage collector G1, optimal pour les applications serveur
- -XX:MaxGCPauseMillis=50 : Cible des pauses de 50ms maximum pour le GC
- -XX:G1HeapRegionSize=32M : Définit la taille des régions heap à 32Mo
- -XX:+ParallelRefProcEnabled : Active le traitement parallèle des références
- -XX:+PerfDisableSharedMem : Désactive les fichiers de performances partagés (améliore légèrement les performances)
Configuration réseau et pare-feu
Une particularité importante de Hytale : le serveur utilise le protocole QUIC sur UDP et non TCP comme la plupart des jeux. Cette architecture moderne offre de meilleures performances réseau mais nécessite une configuration spécifique.
Port par défaut et personnalisation
Le port par défaut est 5520/UDP. Pour modifier ce port :
java -jar HytaleServer.jar --assets Assets.zip --bind 0.0.0.0:3500
Configuration du pare-feu
Windows Defender Firewall :
New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow
Linux avec iptables :
sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
Linux avec ufw :
sudo ufw allow 5520/udp
sudo ufw reload
Redirection de port (NAT)
Si votre serveur est derrière un routeur, vous devez configurer une redirection de port pour le port UDP 5520 vers l’adresse IP locale de votre machine serveur. La configuration exacte dépend de votre modèle de routeur, mais le principe reste identique.
Si vous souhaitez approfondir la configuration réseau avancée, notamment pour sécuriser l’accès à votre serveur, consultez notre guide sur comment créer un serveur VPN WireGuard qui aborde des concepts similaires de routage et de sécurité.
Structure des fichiers et configuration du serveur
Une fois le serveur lancé, plusieurs fichiers et répertoires sont automatiquement créés :
| Chemin | Description |
|---|---|
.cache/ | Cache pour les fichiers optimisés |
logs/ | Journaux du serveur |
mods/ | Mods installés |
universe/ | Données de monde et joueurs |
bans.json | Liste des joueurs bannis |
config.json | Configuration principale du serveur |
permissions.json | Configuration des permissions |
whitelist.json | Liste blanche des joueurs autorisés |
Configuration d’un monde
Chaque monde possède son propre fichier config.json dans universe/worlds/[nom-du-monde]/. Voici un exemple de configuration :
{
"Version": 4,
"Seed": 1767292261384,
"WorldGen": {
"Type": "Hytale",
"Name": "Default"
},
"IsPvpEnabled": false,
"IsFallDamageEnabled": true,
"IsGameTimePaused": false,
"IsSpawningNPC": true,
"IsSavingPlayers": true,
"IsSavingChunks": true
}
Les paramètres les plus fréquemment modifiés sont :
- IsPvpEnabled : Active/désactive le PvP
- IsFallDamageEnabled : Active/désactive les dégâts de chute
- IsSpawningNPC : Active/désactive l’apparition des PNJ
Optimisation de la distance d’affichage
La distance d’affichage (view distance) est le principal facteur de consommation de RAM. Hytale utilise par défaut une distance de 12 chunks (384 blocs), soit l’équivalent de 24 chunks Minecraft.
Pour limiter l’utilisation mémoire, vous pouvez ajuster cette valeur dans les arguments de lancement :
java -jar HytaleServer.jar --assets Assets.zip --max-view-distance 8
Recommandations :
- Serveur 4-8 Go RAM : max-view-distance 8 (256 blocs)
- Serveur 8-12 Go RAM : max-view-distance 10 (320 blocs)
- Serveur 12+ Go RAM : max-view-distance 12 (384 blocs, valeur par défaut)
Plugin PerformanceSaver
Pour une gestion dynamique optimale, installez le plugin Nitrado:PerformanceSaver qui ajuste automatiquement la distance d’affichage en fonction de la charge serveur :
# Télécharger et placer dans le répertoire mods/
wget https://plugins.hytale.com/nitrado/PerformanceSaver.jar -O mods/PerformanceSaver.jar
Ce plugin surveille l’utilisation CPU et RAM et réduit temporairement la view distance lors des pics de charge, garantissant une expérience fluide même dans des situations extrêmes.
Installation de mods et plugins
L’écosystème Hytale supporte les mods au format .jar ou .zip. L’installation est simple : déposez les fichiers dans le répertoire mods/.
# Télécharger un mod depuis CurseForge ou autre source
wget https://example.com/mon-mod.jar -O mods/mon-mod.jar
# Redémarrer le serveur pour charger le mod
Important : Lors du développement de plugins, désactivez Sentry (système de rapport de crash) pour éviter de soumettre vos erreurs de développement :
java -jar HytaleServer.jar --assets Assets.zip --disable-sentry
Plugins recommandés
Plusieurs plugins professionnels développés par les partenaires Nitrado et Apex Hosting sont disponibles :
- Nitrado:WebServer : Serveur web intégré pour applications et API
- Nitrado:Query : Expose le statut du serveur (nombre de joueurs, etc.) via HTTP
- ApexHosting:PrometheusExporter : Métriques détaillées du serveur et JVM pour monitoring
Architecture multiserveur avancée
Hytale propose nativement des mécanismes de routage entre serveurs, éliminant le besoin d’un proxy inverse comme BungeeCord utilisé sur Minecraft.
Transfert de joueurs (Player Referral)
Le système de referral permet de transférer un joueur connecté vers un autre serveur en transmettant optionnellement un payload de 4 Ko :
PlayerRef.referToServer("play.monreseau.com", 5520, payloadData);
Attention sécurité : Le payload transite par le client et peut être altéré. Utilisez une signature cryptographique (HMAC avec secret partagé) pour vérifier l’authenticité côté serveur de destination.
Redirection lors de la connexion
Pendant la phase de connexion, un serveur peut rediriger le joueur vers une autre adresse :
PlayerSetupConnectEvent.referToServer("lobby.monreseau.com", 5520, null);
Cas d’usage :
- Équilibrage de charge entre serveurs de jeu
- Routage régional automatique
- Obligation de passer par un lobby avant d’accéder aux serveurs de jeu
Fallback de déconnexion
Lors d’une déconnexion inattendue (crash serveur, coupure réseau), le client se reconnecte automatiquement à un serveur de fallback préconfiguré plutôt que de retourner au menu principal.
Cette fonctionnalité sera déployée dans les semaines suivant le lancement de l’Early Access et permettra de maintenir l’engagement des joueurs même lors de problèmes techniques.
Pour les administrateurs gérant une infrastructure complexe avec plusieurs serveurs, ces concepts d’architecture distribuée sont similaires à ceux utilisés dans l’installation et la configuration d’outils d’automatisation en production.
Script de démarrage automatique
Pour faciliter la gestion quotidienne de votre serveur, créez un script de démarrage qui inclut tous les paramètres optimisés :
start-server.sh (Linux) :
#!/bin/bash
# Configuration
JAVA_HOME=/opt/jdk-25.0.1+8
RAM_MIN=8G
RAM_MAX=8G
PORT=5520
# Paramètres JVM optimisés
JAVA_OPTS="-Xms${RAM_MIN} -Xmx${RAM_MAX}"
JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC"
JAVA_OPTS="${JAVA_OPTS} -XX:MaxGCPauseMillis=50"
JAVA_OPTS="${JAVA_OPTS} -XX:G1HeapRegionSize=32M"
JAVA_OPTS="${JAVA_OPTS} -XX:+ParallelRefProcEnabled"
JAVA_OPTS="${JAVA_OPTS} -XX:+PerfDisableSharedMem"
JAVA_OPTS="${JAVA_OPTS} -XX:AOTCache=HytaleServer.aot"
# Paramètres serveur
SERVER_OPTS="--assets Assets.zip"
SERVER_OPTS="${SERVER_OPTS} --bind 0.0.0.0:${PORT}"
SERVER_OPTS="${SERVER_OPTS} --max-view-distance 10"
# Démarrage
${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar HytaleServer.jar ${SERVER_OPTS}
Rendez le script exécutable :
chmod +x start-server.sh
./start-server.sh
start-server.bat (Windows) :
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk-25.0.1+8
set RAM=8G
set PORT=5520
"%JAVA_HOME%\bin\java.exe" -Xms%RAM% -Xmx%RAM% ^
-XX:+UseG1GC ^
-XX:MaxGCPauseMillis=50 ^
-XX:G1HeapRegionSize=32M ^
-XX:+ParallelRefProcEnabled ^
-XX:AOTCache=HytaleServer.aot ^
-jar HytaleServer.jar ^
--assets Assets.zip ^
--bind 0.0.0.0:%PORT% ^
--max-view-distance 10
pause
Monitoring et maintenance
Un serveur de production nécessite un monitoring actif pour anticiper les problèmes. Installez le plugin ApexHosting:PrometheusExporter pour exposer des métriques détaillées :
# Installation du plugin
wget https://plugins.hytale.com/apex/PrometheusExporter.jar -O mods/PrometheusExporter.jar
Les métriques sont exposées sur http://localhost:9090/metrics et peuvent être ingérées par Prometheus et visualisées avec Grafana.
Métriques surveillées :
- Nombre de joueurs connectés par monde
- Utilisation CPU et RAM
- Taux de tick du serveur (TPS)
- Latence réseau moyenne
- Taille des chunks chargés
Sauvegardes automatiques
Activez les sauvegardes automatiques pour protéger vos données :
java -jar HytaleServer.jar --assets Assets.zip \
--backup \
--backup-dir /backups/hytale \
--backup-frequency 30
Ce système crée une sauvegarde complète toutes les 30 minutes dans le répertoire spécifié.
Dépendance Maven pour développeurs
Les développeurs de mods peuvent utiliser HytaleServer.jar comme dépendance Maven pour accéder aux API internes :
pom.xml :
<repositories>
<repository>
<id>hytale-release</id>
<url>https://maven.hytale.com/release</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.hypixel.hytale</groupId>
<artifactId>Server</artifactId>
<version>2026.01.22-6f8bdbdc4</version>
</dependency>
</dependencies>
La version la plus récente est disponible sur maven.hytale.com.
Fonctionnalités à venir
Hypixel Studios prévoit plusieurs améliorations majeures dans les mois suivant l’Early Access :
- Catalogue de découverte de serveurs : un annuaire accessible depuis le menu principal permettant aux joueurs de découvrir et rejoindre facilement des serveurs Hytale publics
- Système de parties : groupes de joueurs pouvant naviguer ensemble entre serveurs et files de jeu
- Passerelle de paiement intégrée : système de transaction sécurisé directement dans le client
- Support des enregistrements SRV : connexion simplifiée via nom de domaine sans spécifier de port
- API officielles : endpoints pour résolution UUID/nom, profils joueurs, télémétrie serveur
Conclusion
Créer et optimiser un serveur Hytale nécessite une compréhension approfondie de l’architecture Java et des spécificités du protocole QUIC. En suivant ce guide, vous disposez désormais de toutes les connaissances nécessaires pour déployer un serveur performant, sécurisé et évolutif.
Les arguments JVM optimisés, la configuration réseau adaptée et l’utilisation de plugins de monitoring vous permettront d’offrir une expérience de jeu fluide à vos joueurs, même sous forte charge.
N’oubliez pas que la clé d’un serveur réussi réside dans l’équilibre entre performances techniques et expérience utilisateur. Testez différentes configurations, surveillez vos métriques et ajustez en conséquence pour trouver le setup optimal adapté à votre communauté.