Prégénérer les chunks pour un serveur Minecraft plus fluide
Vous connaissez la scène : quelqu'un attache des fusées à ses élytres, file vers l'horizon et tout le serveur se met à saccader. Ce n'est pas un hasard. Générer de nouvelles portions du monde est l'une des tâches les plus lourdes que votre serveur Minecraft effectue, et par défaut cela se produit exactement au pire moment : quand des joueurs sont en ligne.
La prégénération inverse la logique. Vous laissez le serveur construire le monde à l'avance, au moment que vous choisissez, si bien qu'explorer revient ensuite à charger des chunks tout prêts au lieu de les inventer à la volée. Cela vous coûte un peu de stockage et une nuit de calcul, mais cela vous épargne des pics de lag à chaque moment d'affluence par la suite.
Pourquoi les nouveaux chunks sont si lourds
Un chunk est une colonne de 16 blocs sur 16 que le serveur génère unité par unité. Le travail est considérable : calculer le relief, creuser les grottes, placer les structures, semer arbres et minerais, puis calculer la lumière. Un seul chunk reste gérable, mais un joueur en exploration en demande des dizaines à la fois — et avec des fusées sous des élytres, on atteint vite plusieurs centaines par minute.
Les logiciels serveur modernes comme Paper déplacent une partie de ce travail vers des threads séparés, mais du calcul reste du calcul : aux heures de pointe, la génération de chunks se traduit par des saccades, du rubberbanding ou un TPS en baisse. Et sans mesure de votre part, cela ne s'arrête jamais, car chaque nouveau joueur qui part dans une autre direction ouvre encore du terrain vierge.
Vous doutez que la génération de chunks soit vraiment votre coupable ? Mesurez d'abord avec le profileur spark ; la base de connaissances sur spark explique comment lire une telle mesure. Le lag a plus souvent plusieurs causes qu'une seule.
D'abord une world border, ensuite la génération
Prégénérer sans limite, c'est vider l'océan à la petite cuillère : un monde Minecraft est en pratique quasi infini, il faut donc d'abord décider jusqu'où il peut s'étendre. Cela se fait avec la world border intégrée :
/worldborder center 0 0place le centre de la frontière à l'origine du monde (utilisez les coordonnées de votre spawn s'il se trouve ailleurs)./worldborder set 10000donne au monde une largeur de 10 000 blocs.
Attention au piège classique : la valeur de set est le diamètre, pas le rayon. Une border de 10 000 signifie donc 5 000 blocs du centre jusqu'au bord. Indépendamment de la prégénération, une telle frontière est de toute façon une bonne idée : elle garde votre monde et vos sauvegardes à une taille raisonnable, et vos joueurs relativement proches les uns des autres.
Faites-le toutefois avant que votre communauté ne construise dans tous les sens, et annoncez-le. Une border que vous réduisez après coup laisse des bases de joueurs hors limites — et ce genre de surprise vous coûte de la bonne volonté. L'agrandir, en revanche, reste toujours possible sans souci.
Prégénérer avec Chunky
Chunky est le choix standard pour ce travail : gratuit, activement maintenu et disponible en plugin comme en mod. La base tient en quelques commandes :
- Faites d'abord une sauvegarde complète de votre monde.
chunky worldborder— Chunky prend automatiquement comme sélection la zone délimitée par votre world border.chunky start— la génération démarre et la progression s'affiche périodiquement dans la console.chunky pauseetchunky continue— vous pouvez mettre en pause et reprendre à tout moment, même après un redémarrage ; Chunky retient où il en était.
Le serveur reste en ligne pendant la génération, mais attendez-vous à des performances nettement réduites tant qu'elle tourne. Planifiez-la donc aux heures creuses, et n'hésitez pas à la mettre en pause quand il y a du monde le soir. La durée dépend de votre rayon et du CPU de votre serveur : d'une petite heure pour un monde modeste à une bonne nuit, voire plus, pour un grand.
Bon à savoir : rien ne vous oblige à tout finir d'un coup. Laissez Chunky tourner quelques heures chaque nuit et mettez-le en pause la journée ; au bout de quelques jours, votre monde sera tout aussi prêt. Et si vous relancez une génération plus tard, Chunky saute simplement tout ce qui existe déjà — il ne fait jamais le travail en double.
Quelle surface prégénérer ?
Plus n'est pas automatiquement mieux. Regardez d'abord comment vos joueurs utilisent réellement le monde : sur la plupart des serveurs, presque tout le monde joue à quelques milliers de blocs du spawn, avec un rare explorateur en exception. Quelques repères :
- Petit serveur survie entre amis : une border de 5 000 à 10 000 blocs suffit largement pour des mois de jeu.
- Serveur public : voyez plus large, par exemple une border de 10 000 à 20 000, selon le nombre d'explorateurs attendus.
- Le Nether : ne l'oubliez pas, surtout si les joueurs y construisent de longs tunnels de voyage. Grâce à l'échelle 1 pour 8, la border du Nether n'a besoin que d'un huitième de celle de l'overworld.
- L'End : généralement le moins urgent ; beaucoup de serveurs sautent la prégénération ici ou la gardent minimale.
Générez plutôt une zone modeste que vous agrandirez plus tard qu'un monde gigantesque « au cas où ». Étendre est simple : agrandissez la border et relancez Chunky — les chunks existants sont automatiquement ignorés. Si vous voulez en parallèle alléger la charge des chunks chargés, penchez-vous sur votre view-distance ; l'explication de server.properties détaille les réglages déterminants.
Le prix à payer : stockage et autres inconvénients
Soyons honnêtes, la prégénération a un coût. Les points essentiels :
- Stockage : chaque chunk généré occupe de l'espace disque, même si personne n'y met jamais les pieds. Pour un overworld de 10 000 sur 10 000 blocs, comptez vite plusieurs gigaoctets selon le terrain. Et cela grimpe vite : un rayon deux fois plus grand signifie quatre fois plus de chunks.
- Sauvegardes : elles deviennent proportionnellement plus volumineuses et plus lentes. Vérifiez donc l'espace de stockage de votre offre avant de choisir un rayon énorme.
- Chunks obsolètes : les chunks générés conservent le terrain de la version de Minecraft qui les a créés. Si une mise à jour apporte de nouveaux biomes ou structures, vous ne les verrez qu'en terrain vierge. Beaucoup de serveurs agrandissent volontairement la border après une telle mise à jour, pour que le nouveau terrain apparaisse au-delà.
- Pas de remède miracle : la prégénération n'évite que le coût de la génération. Le lag causé par des fermes, des entités ou des plugins lourds en zone existante ne disparaît pas.
Un serveur à la hauteur
La prégénération sollicite surtout le CPU et le stockage, puis chaque joueur profite du résultat. Chez MC-Node, votre serveur tourne sur du matériel en propre avec stockage NVMe dans le datacenter Previder à Hengelo, protection anti-DDoS incluse — et c'est justement ce stockage rapide qui aide à charger promptement tous ces chunks prêts à l'emploi. Un aperçu des offres :
| Offre | Prix par mois |
|---|---|
| Cobblestone | 0,50 € |
| Coal | 2,20 € |
| Iron | 3,30 € |
| Redstone | 5,50 € |
| Diamond | 7,70 € |
| Diamond - Premium | 17,50 € |
Toutes les offres sont résiliables mensuellement : commencez petit et montez en gamme dès que votre monde et votre nombre de joueurs grandissent. L'offre complète se trouve dans la boutique Minecraft de MC-Node. Posez la border, laissez Chunky mouliner une nuit, et à la prochaine sortie en élytres, plus personne ne remarquera quoi que ce soit sur le TPS.