Optimiser les performances d'un serveur Minecraft : Mondes séparés et plugins
Qu'y a-t-il de plus frustrant pour les joueurs de Minecraft que de subir des micro-saccades, des blocs qui réapparaissent ou de voir le Tick-Rate (TPS) s'effondrer en dessous de 15 ? Pour un administrateur système, l'optimisation des performances est une quête permanente. Ce guide technique complet aborde les meilleures stratégies avancées pour transformer un serveur Minecraft surchargé en un havre de fluidité à 20 TPS constant.
1. Le Secret n°1 d'AnkooiWorld : La Séparation Logique des Mondes
Dans la plupart des serveurs Minecraft survie classiques, les joueurs minent, explorent et construisent leurs bases gigantesques et leurs fermes automatiques au sein d’une seule et même carte du monde. C’est une erreur monumentale pour la mémoire et le processeur (CPU) du serveur.
Pourquoi ? Parce que l'exploration de nouveaux territoires (génération de chunks à la volée par les joueurs qui parcourent des milliers de blocs en élytres) consomme une quantité phénoménale de calculs CPU monocœur. Parallèlement, les fermes de redstone et les milliers d'entités de bétail stockés dans les bases des joueurs chargent la RAM en continu.
La solution ultime consiste à diviser le serveur en plusieurs mondes logiques à l’aide de plugins modernes et spécialisés comme MineWorlds :
- Le Monde Build / Spawn (Monde Principal) : Une carte à la taille strictement délimitée (WorldBorder) où les joueurs construisent leurs bases. Aucune génération de nouveaux chunks n'est tolérée ici, les calculs sont donc stables et prévisibles.
-
Les Mondes de Minage éphémères (MineWorlds) : Une carte solo temporaire entièrement dédiée à l'extraction de minerais et à la collecte de ressources. Grâce à MineWorlds, les joueurs accèdent instantanément à ces zones d'extraction dédiées via les commandes de tchat
/mine overworldou/mine nether, et reviennent en toute sécurité au monde principal en tapant/leavemineou après le temps imparti. Ces mondes de minage sont supprimés de manière asynchrone pour éliminer les fichiers de chunks temporaires lourds et maintenir des performances de disque optimales.
2. Remplacer Bukkit/Spigot par PaperMC et Purpur
Le moteur de jeu par défaut distribué par Mojang (Vanilla) est extrêmement mal codé pour le multijoueur. Spigot a apporté d'excellentes corrections, mais aujourd'hui, la référence absolue pour l'optimisation est PaperMC, ou son dérivé encore plus poussé, Purpur.
Paper réécrit le système de chargement des chunks (le rendant asynchrone), optimise les collisions d'entités et offre des options de configuration extrêmement précises.
Voici les modifications indispensables à appliquer dans votre fichier config/paper-world-defaults.yml pour un gain massif de performances :
# paper-world-defaults.yml - Paramètres d'optimisation critiques
chunks:
auto-save-interval: 6000 # Sauvegarde toutes les 5 minutes au lieu de 45 secondes
max-auto-save-chunks-per-tick: 6
entities:
behavior:
zombies-target-turtle-eggs: false # Évite des calculs de cheminement inutiles
baby-zombie-movement-modifier: 0.5
spawning:
despawn-ranges:
monster:
soft: 32
hard: 96 # Despawn immédiat des monstres situés loin des joueurs
monster-spawn-max-light-level: 0
non-player-arrow-despawn-rate: 20
creative-arrow-despawn-rate: 20
3. Configurer Spigot.yml : Équilibrer l'affichage et l'IA
Le fichier spigot.yml gère des variables clés de l'environnement de jeu. Deux sections méritent toute votre attention pour diviser par deux la charge CPU :
- Entity-Activation-Range (Portée d'activation) : Ce paramètre détermine à quelle distance d'un joueur un mob commence à calculer son intelligence artificielle (marcher, regarder autour, chercher une cible). En abaissant ces valeurs, un mob situé à 20 blocs d'un joueur restera inerte (sans IA), économisant de précieux cycles d'horloge du CPU sans impacter visuellement l'expérience de jeu.
- Entity-Tracking-Range (Portée de suivi visuel) : Détermine à quelle distance le serveur envoie les paquets de mouvements des entités aux clients.
# spigot.yml - Optimisations recommandées
world-settings:
default:
entity-activation-range:
animals: 16 # Au lieu de 32
monsters: 24 # Au lieu de 32
raiders: 32
misc: 8 # Flèches, items au sol
entity-tracking-range:
animals: 48
monsters: 48
misc: 32
ticks-per:
hopper-transfer: 8 # cela ralentit légèrement les hoppers pour économiser le processeur
hopper-check: 8
4. Les Plugins indispensables de régulation
Même avec les meilleures configurations de fichiers de base, les actions des joueurs peuvent mettre le serveur à genoux. Vous devez installer des "garde-fous" logiciels intelligents :
- Chunky : Le plugin d'optimisation le plus indispensable. Il vous permet de générer à l'avance (pre-render) les chunks de votre carte du monde pendant que le serveur est vide. Ainsi, lorsque les joueurs explorent le monde, le serveur se contente de lire les fichiers de chunks sur le disque SSD au lieu de devoir les générer par calculs de bruit mathématiques en temps réel.
- LaggRemover / ClearLagg : Permet d'automatiser le nettoyage des entités obsolètes (items abandonnés au sol par milliers, projectiles) et de décharger les chunks vides de la mémoire RAM de manière périodique.
- Aikar's Flags (Arguments de démarrage Java) : L'optimisation ne s'arrête pas aux fichiers YAML. La manière dont la machine virtuelle Java (JVM) gère le ramasse-miettes (Garbage Collector - G1GC) est vitale. L'application des drapeaux de démarrage d'Aikar élimine la quasi-totalité des micro-freezes cycliques du serveur.
5. Synthèse des gains de performance
L'application combinée de ces optimisations produit des résultats immédiats que vous pouvez monitorer en temps réel à l'aide de la commande /timings on ou /spark :
| Indicateur | Avant Optimisation | Après Optimisation | Impact Utilisateur |
|---|---|---|---|
| TPS (Ticks Per Second) | 12 - 15 TPS (Lag visible) | 19.9 - 20.0 TPS | Jeu d'une fluidité parfaite, réactivité totale. |
| Consommation RAM | 92 % (Saturation, crashs) | 55 % - 65 % | Grande marge de sécurité, aucun crash mémoire. |
| Génération de Chunk | Calcul en direct (Saccades) | Lecture asynchrone pré-générée | Exploration rapide sans ralentissement du serveur. |
6. Conclusion : Une rigueur technique payante
La quête du "zéro lag" n'est pas magique : elle demande de la méthode et une solide compréhension de la façon dont Minecraft utilise les ressources matérielles de la machine hôte. En mettant en place une architecture avec monde de minage dédié et en peaufinant vos configurations PaperMC, vous offrez à vos joueurs le confort de jeu professionnel qu'ils méritent sur AnkooiWorld.
AnkooiWorld
Un serveur fluide à 20 TPS, pensé par des passionnés de technique !