Blog › Minecraft

Démystifier les Ticks, le TPS et le Main Thread sur Minecraft

Couverture - Démystifier les Ticks, le TPS et le Main Thread sur Minecraft

Minecraft : Démystifier les Ticks, le TPS et le Main Thread


Comprendre le fonctionnement interne de votre serveur Minecraft est crucial pour garantir une expérience de jeu fluide et agréable pour tous les joueurs. Les termes "ticks", "TPS" (Ticks Per Second) et "main thread" reviennent souvent, mais leur signification exacte peut être floue. Cet article a pour but de démystifier ces concepts et de vous donner les clés pour diagnostiquer et résoudre les problèmes de performance de votre serveur. L'objectif est aussi de tordre le cou à certaines idées reçues, notamment celle qui consiste à croire qu'un serveur qui "lag" nécessite forcément plus de cœurs de processeur.


Comprendre le Système d'Exécution de Minecraft


Qu'est-ce qu'un Tick dans Minecraft ?


Imaginez un film : il est composé d'une succession rapide d'images. Dans Minecraft, le principe est similaire. Un "tick" est une itération de la boucle principale du serveur, une unité de temps fondamentale durant laquelle le serveur effectue une série de calculs et d'actions. Pensez au tick comme au battement de cœur de votre serveur Minecraft.


Lors de chaque tick, le serveur gère une multitude de tâches :


  • Traitement des données des joueurs : Réception et interprétation des actions des joueurs (déplacements, constructions, interactions).
  • Mise à jour du monde : Calcul des positions des entités (joueurs, monstres, animaux), gestion des blocs, simulation de la physique.
  • Intelligence artificielle (IA) : Gestion du comportement des créatures (monstres, animaux).
  • Redstone : Calcul et mise à jour des circuits de redstone.
  • Communication : Envoi des mises à jour aux joueurs pour synchroniser leur expérience.
  • Tout ce qui touche aussi évidemment à vos plugins et mods... Il suffit d'un plugin mal codé pour tuer la rapidité d'un tick.


Pour plus d'informations, consultez la page Tick de jeu (Minecraft Wiki).


Idéalement, un serveur Minecraft fonctionne à 20 ticks par seconde (TPS). Cela signifie que chaque tick devrait prendre 50 millisecondes (ms).


Le Main Thread : Le Chef d'Orchestre (et le Goulot d'Étranglement comme on aime le dire)


Le "main thread" (l'exécution principale) est le processus unique responsable de l'exécution de la majorité des tâches du serveur Minecraft. Contrairement à ce que l'on pourrait penser, Minecraft n'utilise pas tous les cœurs de votre processeur de manière optimale. La plupart des opérations critiques sont gérées par un seul cœur (oui oui).


Imaginez une file d'attente à un guichet unique. Toutes les demandes des joueurs et les calculs du jeu doivent passer par ce guichet. Si le guichet est lent, toute la file d'attente s'accumule et le serveur "lag".


Un processeur avec une bonne performance mono-cœur est donc essentiel pour un serveur Minecraft performant, surtout avec beaucoup d'entités ou des systèmes de redstone complexes. Quand on dit mono-cœur c'est une bonne fréquence CPU sur un même cœur, exactement comme nos offres Minecraft qui bénéficient de Ryzen 9 9900X overclockés en 5.8GHz.


Fonctionnement Optimal : Un Serveur en Bonne Santé


Quand le serveur fonctionne bien, chaque tick se termine en moins de 50 ms. Le temps restant est simplement "inactif" jusqu'au prochain tick. Par exemple, si un tick prend 15 ms, il reste 35 ms avant le prochain tick. Cela se traduit par une expérience de jeu fluide et réactive.


Les Symptômes du Lag : Quand ça Tourne Mal


Le Message "Can't keep up!" : Un Signal d'Alarme


Le message "Can't keep up!" dans la console du serveur est un signe clair que le serveur a du mal à maintenir 20 TPS. Cela signifie qu'un ou plusieurs ticks ont pris plus de 50 ms pour s'exécuter.


Comprendre la Dégradation des Performances


Quand un tick prend plus de 50 ms, le serveur commence à accumuler du retard. Les conséquences sont immédiatement perceptibles :


  • Décalage (Lag) : Les actions des joueurs sont retardées.
  • Téléportation : Les entités (joueurs, monstres) semblent se téléporter.
  • Disparition de Blocs : Les blocs disparaissent et réapparaissent avec un délai.
  • Redstone Lente : Les circuits de redstone fonctionnent plus lentement.


Le message "Can't keep up!" apparaît généralement lorsque le serveur accumule un retard de plus de 2000 ms (2 secondes). Un blocage prolongé (plus de 60 secondes) peut même entraîner l'arrêt du serveur par le système de surveillance. C'est même logique, plus rien ne se passe, donc le serveur coupe pour tenter de revenir à un point stable.


Un serveur peut sembler "actif" mais être injouable si le main thread est surchargé.


Identifier les Causes du Lag


La Surcharge du Main Thread : Le Coupable Principal


La cause la plus fréquente du lag est une surcharge du main thread. Cela se produit lorsque le serveur est submergé par trop de calculs à effectuer pendant chaque tick. Les facteurs suivants peuvent contribuer à cette surcharge :


  • Trop d'entités : Un grand nombre de joueurs, de monstres, d'animaux ou d'objets au sol sollicitent fortement le serveur.
  • IA complexe : Des créatures avec une IA sophistiquée (par exemple, des monstres avec une grande capacité à trouver leur chemin) peuvent consommer beaucoup de ressources.
  • Circuits de redstone complexes : Les circuits de redstone qui effectuent des calculs complexes ou qui sont activés en permanence peuvent ralentir le serveur.
  • Mécaniques de jeu gourmandes en ressources : Certaines mécaniques de jeu, comme les usines à monstres ou les systèmes de duplication d'objets, peuvent générer une quantité excessive de calculs.


Prenons l'exemple de 500 créatures hostiles. À chaque tick, le serveur doit recalculer leur position, leur trajectoire, leur IA et leurs interactions avec le monde. Si vous ajoutez à cela des usines à monstres actives en permanence, le serveur peut rapidement être dépassé.


Si le lag est plus important dans une zone spécifique, suspectez une usine à monstres, un circuit de redstone complexe ou une concentration anormale d'entités.


Un Exemple Concret : Le Piège à Poules


Un exemple classique est un petit enclos contenant un grand nombre de poules (par exemple, 50 poules dans un espace de 2x2 blocs). Chaque poule entre constamment en collision avec les autres, générant une cascade de calculs. Bien que cela puisse paraître insignifiant, cela peut avoir un impact important sur les performances du serveur.


Le TPS : Un Indicateur de Performance Crucial


Les TPS (Ticks Per Second) indiquent le nombre de ticks que le serveur parvient réellement à exécuter chaque seconde. Un serveur fonctionnant à 20 TPS offre une expérience de jeu fluide et réactive. Lorsque le serveur est surchargé et que les ticks prennent plus de 50 ms, les TPS diminuent, ce qui entraîne un lag perceptible.


La relation entre le délai des ticks et les TPS est la suivante :


(1000 - délai en ms) / 50 = TPS


Par exemple, si le serveur accumule un retard de 250 ms, les TPS seront de (1000 - 250) / 50 = 15 TPS. À 15 TPS, le jeu sera nettement ralenti.


Mythes Démystifiés : Plus de Cœurs Résolvent-ils Toujours le Problème ?


L'idée reçue la plus courante est qu'un serveur qui "lag" a besoin de plus de cœurs de processeur. Si augmenter le nombre de cœurs peut parfois aider, ce n'est pas toujours la solution, et c'est même souvent inefficace si le problème vient d'ailleurs.


Comme nous l'avons vu, la plupart des opérations critiques de Minecraft sont gérées par le main thread, qui ne peut utiliser qu'un seul cœur à la fois. Si ce cœur est surchargé, ajouter d'autres cœurs ne résoudra pas le problème.


Dans ce cas, les solutions les plus efficaces sont :


  • Optimiser les plugins : Désactiver ou remplacer les plugins gourmands en ressources.
  • Réduire le nombre d'entités : Limiter le nombre de monstres, d'animaux ou d'objets au sol.
  • Optimiser les circuits de redstone : Simplifier les circuits complexes et éviter les boucles infinies.
  • Limiter les usines à monstres : Empêcher les usines de produire trop de monstres.
  • Optimiser la configuration du serveur : Ajuster les paramètres de configuration pour réduire la charge sur le serveur.


Bien sûr, un processeur avec plus de cœurs et une fréquence d'horloge élevée peut aider, mais uniquement si le problème vient d'autres processus qui peuvent être parallélisés (par exemple, la génération de chunks).


Conclusion


Les ticks sont le rythme de votre serveur Minecraft, et le main thread est le chemin par lequel passent la plupart des calculs. Si un tick prend plus de 50 ms, les TPS chutent et le lag apparaît. Les causes les plus fréquentes sont une surcharge d'entités, une IA complexe et des circuits de redstone trop gourmands. Mais un plugin ou un mod mal codé peut empirer les choses.


En comprenant ces concepts vous serez en mesure de diagnostiquer et de résoudre les problèmes de performance de votre serveur Minecraft, et d'offrir une expérience de jeu optimale à vos joueurs. N'oubliez pas, la solution n'est pas toujours d'ajouter plus de cœurs, mais plutôt d'optimiser votre serveur et votre monde Minecraft.


Conseils & Astuces


  • Surveillez régulièrement les TPS de votre serveur. Utilisez une commande comme /tps (si un plugin comme EssentialsX est installé) pour vérifier les TPS en temps réel.
  • Optimisez votre monde Minecraft. Supprimez les usines à monstres inutiles, simplifiez les circuits de redstone complexes et limitez le nombre d'entités.
  • Choisissez un hébergeur de serveur Minecraft fiable. Nous, AzurHOSTS, offrons des solutions d'hébergement optimisées pour Minecraft, avec des processeurs performants et une infrastructure réseau de qualité.
  • Mettez à jour votre serveur et vos plugins. Les nouvelles versions incluent souvent des améliorations de performance.
  • Consultez les forums et les communautés Minecraft. Vous y trouverez des conseils et des astuces pour optimiser votre serveur.


A très vite en jeu ! Si vous nécessitez d'aide concernant votre serveur, notre support reste à votre disposition 24/7/365 🩵

AzurHOSTS Logo