Bonjour ! Déjà désolé si ce n'est pas la bonne section, j'ai longuement hésité avant de choisir dans laquelle poster ! Voilà ma question/problème : J'ai réalisé la partie "technique" en command block pour un événement "Achievement Get". Hier soir, nous étions 20, et on lance le bouzin ... Et là le serveur n'a clairement pas tenu du tout ! Grosso modo pendant le jeu j'ai plus de 400 clock ( CB 1.9) allumées en même temps pour checker les 10 équipes X les 34 achievements, les affichages de score et le compte des points. Le serveur est un mutualisé chez verygames avec 6Go de ram et slot infini. C'était sur un Minecraft vanilla 1.10.2. Le CPU noté 34% d'utilisation, les ram n'avait pas atteint leur limite non plus, mais c'est comme si il n'arrivait pas à gérer toutes les requêtes envoyés par les CB en même temps. Du coup, alors qu'il était 21h50, la console serveur indiquait toujours 20h40 et essayait, tant bien que mal, de réaliser toutes les requêtes pour rattraper son retard temporel, jusqu'à crash. Bref, grosse loose, gros fail, on a été obligé d'annoncer à tout le monde que l'évent n'aurait pas lieu :/ Du coup, je me pose la question : - Y'a-t-il une limite théorique ou bien avec un serv dédié ça aurait pu marcher ? et par extension, y'a-t-il une limite au command-block, genre, des choses qu'on pourrait théoriquement faire mais qui dans la pratique sont impossibles ?! PS : Nous avions testé plusieurs fois l'évent en amont à 6, sans aucun soucis niveau serv,lag, ou quoique ce soit ... Merci d'avance pour vos suggestions/réponses
Je dis peut-être une bêtise, mais il me semble en effet qu'il y a une limite de commandes par tick, par contre je suis incapable de te donner le chiffre qui doit être assez gros de toute façon, en tout cas il n'a pas de raison d'être inconstant. Exécuter 400 clocks en permanence (avec probablement plusieurs commandes pour chaque), c'est déjà énorme, encore plus s'il s'agit d'execute où en effet tu vas multiplier la charge. Tu peux toujours diviser réduire le nombre d'activation de 20 par seconde à 5, pas besoin de plus pour des achievement (la précision sera alors du quart de seconde au lieu d'être exact, mais est-ce vraiment génant ?) et cela fera une différence énorme pour la charge du serveur. De plus, il faut bien penser à désactiver le sendCommandFeedback et le logAdminCommands, cela augmente la charge.
J'aurais du mal a retrouver 20 joueurs juste pour test, mais en effet, je vais modifs cette partie là, en activant les commandes toutes les secondes ( largement suffisant aussi). Concernant la limite ( et si elle vient des CB / tick ou de la puissance serv) je suis toujours bredouille... assez curieux de savoir. La seule info trouvée concerne la modification de block et le wiki dit : la limite maximale est de 65 536 mises à jour de blocs en un tick de jeu.
Malheureusement tu te confrontes à un problème que beaucoup de personne ont lorsqu'ils font des commandblocks, lorsque tu fais un give avec comme argument une sélection de zone et qu'il y a plus de 20 joueurs, ça ne suivra pas et la commande ne s’exécutera pas complètement. Théoriquement ça devrait fonctionner mais dans la pratique les commandblocks sont malheureusement limités