[đź”´ TUTO OFFICIEL] Optimiser son serveur Minecraft


#1

Bonjour,

Ce tutoriel va avoir pour but de vous apprendre à optimiser au maximum son serveur Minecraft Vanilla (les serveurs moddés ne sont pas concernés, ils auront également le droit à un tutoriel dédié plus tard) et tout ça sans impacter le gameplay du serveur

Tout le contenu de ce tutoriel sera tiré des principaux forums officiels comme Spigot/Bukkit etc… et de mon experience personnelle acquise au cours des 5 (voire 6) dernières années passées dans l’administration de serveur Minecraft.

1) Classic ? Spigot ? CraftBukkit ? Paper ? Sponge ?

Classic est la version que l’on pourrait qualifier de plus “pure”, ne possède aucune modification par rapport au jeu Minecraft (mise à part le fait que ce soit en multijoueur).

CraftBukkit est une version modifiée du serveur Classic capable de faire tourner des plugins Bukkit* et dispose de plusieurs customisations que Classic ne possède pas. Malgré ça, CraftBukkit reste assez instable (surtout avec la gestion des chunks) et le développement officiel n’est plus assuré depuis 2014 (il est seulement mis à jour pour la compatibilité avec les récentes version du jeu) ce qui le rend vulnérable aux failles de sécurité (bugs & exploits).

Spigot est actuellement le logiciel le plus utilisé par les serveurs Minecraft dans le monde. Spigot est une version modifiée de CraftBukkit avec des centaines d’améliorations et d’optimisations et est compatible avec les plugins Bukkit ! Cette version est fortement conseillée si vous souhaitez vous lancer dans la création d’une serveur Minecraft, c’est principalement sur cette version que nous nous pencherons pour optimiser votre serveur ! :wink:

Paper (également connu sous le nom de PaperSpigot) est la même chose que Spigot mais avec des centaines de customisations supplémentaires (liste dispo ici)

Forge est connu par la quasi-totalité des joueurs qui ont déjà joué avec des mods, il est également possible de l’installer sur un serveur afin de pouvoir jouer en moddé entre amis ! :slight_smile: Il est basé sur la version Classic

Thermos, basé à la fois sur Forge et Bukkit* permet de faire tourner un serveur moddé avec des plugins Bukkit* (comme MCPC/Cauldron mais de manière plus stable…). Mais il est uniquement disponible pour la 1.7.10 puis possédant les nombreux bugs de CraftBukkit (et ceux qui peuvent être engendrer par les mods) ce peut vite provoquer des problèmes sur votre serveur. Il faut donc avoir une certaine connaissance dans le domaine pour pouvoir utiliser Thermos.

Sponge est assez spécial car vous pouvez l’utiliser de deux manières :

  • Vous pouvez l’utiliser sur un serveur entièrement Vanilla (sans mods, avec SpongeVanilla, la version qui est disponible sur notre panel en auto-install)

  • Ou sur un serveur Minecraft Forge (avec des mobs, avec SpongeForge)

De notre point de vue, SpongeVanilla n’a pas tellement d’avantage… Il fonctionne de la même manière que Spigot mais est incompatible avec les plugins Bukkit et possède ses propres plugins, ce qui réduit considérablement le catalogue…

Cependant SpongeForge est assez intéressant car c’est à l’heure actuelle la seule API encore maintenue à jour capable de supporter à la fois des mods Forge et des plugins pour les dernières versions de Minecraft.

L’API dispose également d’une documentation très complète (en Français :smiley: )

Bukkit* est une API utilisée par les developpeurs pour créer leurs plugins

2) Optimisation d’un serveur Spigot

Comme dit précédemment, nous allons opter pour Spigot pour optimiser notre serveur (car cette API est la plus utilisée/optimisée à l’heure actuelle)

Nous manipulerons dans cette partie deux fichier : bukkit.yml & spigot.yml (situés dans les fichiers de votre serveur accessible à l’aide du FTP)

  • Spigot.yml

mod-spawn-range : 4
Définit à quelle distance les mobs peuvent spawner autour du joueur, nous vous conseillons de réduire cette valeur à 3

entity-activation-range : animals:32, monsters:32, misc:16
Les entités hors de ce rayon seront considérées comme “inactives”. Ces entités sont 95% moins gourmandes que les entités classiques (actives). Nous vous conseillons de paramétrer ces valeurs 6 pour les animaux, 16 pour les monstres et 2 pour misc (misc représente les entités comme les items à terre par exemple…).

max-entity-collisions : 8
Cette option gère la collision des entités, par exemple si vous rentrez dans un mob telle qu’une vache, vous la pousserez… Libre à vous de changer cette valeur à 1 si vous ne souhaitez plus avoir ces collisions, cela peut aider pour le farming de mobs… (changez cette valeur n’affectera pas les performances du serveur, simple question de gameplay)

merge-radius : item:2.5, exp:3.0
Une option très utile pour contrer les lags lorsque de grandes quantités d’items tombent à terre (item drop). Nous vous conseillons de mettre 3.5 pour les items et 6.0 pour exp (orbes d’xp)

view-distance : 10
Gère la distance de vue sur le serveur, baissez cette valeur aura un impact significatif sur la fluidité et les performances du serveur, nous vous conseillons de mettre entre 3 et 5 (descendre en dessous pourrait créer des problèmes avec les lancers d’enderpearls…)

  • Bukkit.yml

spawn-limits : monsters:70, animals:15, water-animals:5, ambient:15
Influe sur la manière dont le serveur fait spawn les mobs autour du serveur sans pour autant être le nombre défini de mobs par joueur… :sweat_smile: Assez compliqué de vous expliquer comment cela fonctionne dans un tutoriel censé s’adresser à tout le monde. Bref, vous posez pas de question et mettez 50 pour les montres, 15 pour les animaux, 5 pour water-animals et 15 pour ambient

chunk-gc : period-in-ticks:600, load-threshold:0
Cette option décharge les chunks qui ne sont pas utilisés par les joueurs, cela libère de la mémoire et des ressources CPU. Mettez period-in-ticks:300 et load-threshold:300


  • server.properties (extra)

network-compression-threshold : 256
Gère la compression des packets sur le serveur. Si vous avez un serveur Standard sans passage par un proxy, vous pouvez mettre 512 (cela économisera les ressources CPU au détriment de la bande passante). Si vos joueurs subissent des “Timed Out/Délai de connexion a expiré”, restaurez la valeur à 256
Si vous utilisez un proxy comme BungeeCord/Waterfall, mettez -1


Si après toutes ces optimisations votre serveur rencontre toujours des problèmes de performance, n’hésitez à nous contactez via ticket sur notre support

(Un tutoriel d’optimisation concernant Paper et un autre concernant la sécurisation d’un serveur spigot sont actuellement en cours de préparation :slight_smile: )


#2

Bonjour

Sa optimisé de quel côté et verra t-on la différence et ce important de optimisé ? et le tutoriel pour “la sécurisation d’un serveur spigot” arrive quand ? :slight_smile: