Vingt TPS, c'est l'objectif. En dessous, vous le ressentez : les blocs se cassent avec du retard, les mobs saccadent, la redstone ne fonctionne plus de manière fiable. Voici les étapes qui ont le plus d'impact, par ordre de priorité. Mesurez avant et après chaque modification avec /spark tps.
Étape 1 : mesurez d'abord, ne devinez pas
Ouvrez la console et tapez /spark profiler start. Jouez cinq minutes normalement. Tapez /spark profiler stop. Spark génère un lien vers un aperçu qui montre exactement où va le temps par tick. Sans cette mesure, vous modifiez des paramètres à l'aveugle.
Les trois causes les plus fréquentes : la génération de chunks (joueurs qui explorent un nouveau terrain), les entités (mobs, objets, armor stands) et les plugins mal codés.
Étape 2 : pré-générer les chunks
La génération de chunks est l'opération la plus lourde pour un serveur Minecraft. Chaque fois qu'un joueur entre dans un nouveau territoire, le serveur doit le calculer. Avec le plugin Chunky, vous générez la carte à l'avance :
/chunky radius 5000/chunky start
Cela génère un cercle de 5000 blocs autour du spawn. Faites-le à un moment calme ; cela prend du temps mais évite le lag pendant le jeu. Définissez ensuite une bordure de monde pour que les joueurs ne dépassent pas la zone générée.
Étape 3 : réduire la view distance et la simulation distance
Ouvrez server.properties :
view-distance=7(par défaut 10 ; pour le survival, 6 à 8 convient parfaitement)simulation-distance=4(par défaut 10 ; cela détermine jusqu'à quelle distance les mobs et la redstone sont actifs)
La différence est considérable : une view-distance de 10 charge quatre fois plus de chunks qu'une view-distance de 5. Une simulation distance de 4 au lieu de 10 signifie que les entités au-delà de quatre chunks ne consomment plus de temps par tick.
Étape 4 : définir les limites d'entités
Dans bukkit.yml sous spawn-limits :
monsters: 50(par défaut 70)animals: 10(par défaut 10)water-animals: 3(par défaut 5)ambient: 1(par défaut 15 ; les chauves-souris coûtent des TPS et ne servent à rien)
Dans paper-world-defaults.yml vous trouverez despawn-ranges et entity-per-chunk-save-limit. Réduisez la limite de sauvegarde pour les item frames et les armor stands si votre serveur en contient beaucoup.
Étape 5 : les flags JVM d'Aikar
Les paramètres JVM par défaut ne sont pas optimaux pour Minecraft. Les flags d'Aikar ajustent le ramasse-miettes pour que le serveur fasse moins de pauses pour le nettoyage mémoire. Dans le panel de jeu, définissez-les dans les paramètres de démarrage. Pour les serveurs jusqu'à 12 Go :
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
Étape 6 : vérifier les plugins
Spark montre par plugin combien de temps par tick il utilise. Un plugin au-dessus de 5 ms par tick est suspect. Supprimez ou remplacez les plugins qui consomment un temps disproportionné. Coupables fréquents : clearlag (ironiquement), les anciens plugins d'hologrammes et les plugins de mini-jeux mal codés.
Plus de RAM aide-t-il contre les TPS bas ?
Uniquement si le serveur manque activement de mémoire (OutOfMemory dans les logs). La plupart du temps, les TPS sont un problème de CPU, pas de mémoire. 4 Go de RAM avec de bons paramètres performent mieux que 8 Go avec les paramètres par défaut.
Quelle est la différence entre TPS et MSPT ?
Les TPS représentent le nombre de ticks par seconde (objectif : 20). Le MSPT est le temps en millisecondes par tick (objectif : en dessous de 50). Quand le MSPT dépasse 50, le serveur ne peut plus maintenir 20 ticks par seconde et les TPS chutent. Spark affiche les deux.
Faut-il utiliser Paper pour de bons TPS ?
Ce n'est pas obligatoire, mais fortement recommandé. Paper dispose de dizaines d'optimisations intégrées que Vanilla et Spigot n'ont pas. La différence est mesurable sur le même matériel : 5 à 30 pour cent de MSPT en moins, selon le serveur.
Vous voulez mesurer tout de suite ? /spark tps fonctionne sur chaque serveur Paper chez HostValues. Consultez les offres Minecraft.