Compatibilité

Les logiciels serveur, versions de Minecraft et versions de Java sur lesquels tourne VoxelBench, ce que l'intégration continue vérifie pour chacun, les plugins optionnels avec lesquels il s'intègre, et les limites connues.

Logiciels serveur

ServeurSupportIntégration continue
SpigotSupportéCompilé contre chaque version de l'API Spigot listée plus bas
PaperSupportéDémarrage du serveur avec VoxelBench en 1.17.1, 1.21, 26.1.2 et 26.2
Purpur, PufferfishSupportés en tant que dérivés de PaperNon testés
FoliaSupporté, avec un ordonnancement par régionDémarrage en 26.1.2 et 26.2, puis exécution de chunkLoading, mobSpawn, redstone et blockPhysics ; toute violation de thread de région fait échouer le build
Canvas et autres dérivés de FoliaPassent par le code FoliaNon testés (VoxelBench 1.8.0 a été validé manuellement sur Canvas 26.1.2)
Serveurs hybridesDétectés, avec des limitesTest de démarrage uniquement, non bloquant (voir plus bas)

VoxelBench est compilé contre l'API Spigot : toutes les fonctionnalités marchent donc sous Spigot. Certaines utilisent les API de Paper lorsqu'elles sont disponibles :

  • Dialogues natifs (Paper 1.21.6+) pour la saisie de texte et de paramètres dans l'interface. Les autres serveurs se replient sur un écran d'enclume ou une saisie dans le chat.
  • Spark intégré (Paper 1.21+), détecté pour l'intégration Spark.

Le type de serveur est détecté au démarrage à partir des classes fournies par le serveur ; la chaîne de version n'est qu'un dernier recours. Il est écrit dans les logs au démarrage (Runtime: ...) et inclus dans les rapports de benchmark.

Support Folia

VoxelBench déclare folia-supported: true et fait passer tout son ordonnancement par une abstraction qui utilise les schedulers de région de Folia lorsque Folia est détecté. Les tests qui travaillent sur plusieurs zones exécutent chaque zone sur sa propre région. Aucune configuration supplémentaire n'est nécessaire.

Sous Folia, le TPS et le MSPT principaux d'un test sont lus sur les régions où il travaille. lightingUpdate, tickingTileEntity et playerWorldLoad construisent à l'écart des zones partagées du run ; jusqu'à VoxelBench 2.0.2, leur TPS et leur MSPT principaux et leurs mesures de région étaient lus ailleurs : sur les zones partagées pour les deux premiers, autour du centre du monde pour playerWorldLoad. Paper et Spigot ne sont pas concernés.

Serveurs hybrides

Les serveurs hybrides exécutent des plugins Bukkit par-dessus un mod loader. VoxelBench reconnaît Mohist, Arclight, Banner, NeoTenet, Magma, CatServer et Cardboard avant de chercher Paper ou Spigot, pour ne pas les faire passer pour Paper ou Spigot. Les rapports incluent alors le mod loader, le nombre de mods et, sauf avec l'anonymisation FULL, la liste des mods.

Sur un serveur hybride, la plupart des tests fonctionnent. VoxelBench ne suppose jamais que le serveur est un Paper : chaque fonction de Paper n'est utilisée que si le serveur la fournit, sinon VoxelBench fait comme sous Spigot. Les blocs moddés peuvent réagir de façon imprévisible aux tests qui posent des blocs, et chaque monde que VoxelBench y crée est généré par VoxelBench lui-même, pour rester plat. Un avertissement est écrit dans les logs au démarrage.

L'intégration continue démarre Mohist 1.20.1 (téléchargé depuis un miroir communautaire, les téléchargements de MohistMC étant cassés) ainsi qu'Arclight 1.20.1 et 1.20.4 avec VoxelBench installé. Elle échoue sur une erreur d'édition de liens dans VoxelBench ou une erreur à son activation ; que le log de démarrage nomme bien l'hybride attendu n'est signalé que par un avertissement, et aucun test n'est lancé. Ces jobs ne bloquent pas une release : les builds hybrides en amont sont fréquemment cassés ou indisponibles. Voir Runtimes hybrides pour ce qui change sur un hybride et comment le préparer.

Versions Minecraft

VoxelBench nécessite Minecraft 1.17 ou plus récent, versions 26.x comprises. Le plugin gère automatiquement les différences d'API entre versions (noms de matériaux, types d'entités, enchantements, effets de potions). Minecraft 1.16 et les versions antérieures ne sont pas supportées.

Ce que vérifie l'intégration continue à chaque exécution :

VersionCompile contre l'API SpigotDémarrage d'un serveur PaperDémarrage Folia et tests
1.17.1OuiOui-
1.18.2Oui--
1.19.4Oui--
1.20.4Oui--
1.21OuiOui-
26.1.2OuiOuiOui
26.2OuiOuiOui

Les versions intermédiaires ne sont pas testées individuellement.

Prérequis Java

Le JAR VoxelBench est compilé pour Java 16 : il tourne donc sur toute version de Java acceptée par votre serveur. La version de Java nécessaire est fixée par Minecraft et votre logiciel serveur :

Version MinecraftJava
1.17.x16 ou 17 (Paper 1.17 ne démarre pas sur un Java plus récent ; la CI utilise 17)
1.18 - 1.20.417 ou plus récent
1.20.5 - 1.21.x21 ou plus récent
26.x25 ou plus récent

Les versions récentes de Java apportent des améliorations du garbage collector et du JIT qui peuvent influencer directement les résultats : comparez des serveurs qui tournent sur la même version de Java.

Dépendances optionnelles

Ces plugins sont optionnels (softdepend). VoxelBench les détecte au démarrage et s'intègre avec eux lorsqu'ils sont présents. Voir Intégrations.

PluginUtilité
PlaceholderAPIPlaceholders pour scoreboards, tab lists, hologrammes
DynmapCouches cartographiques : heatmap de densité d'entités et marqueurs d'alerte de performance
SparkMétriques TPS, MSPT, CPU et GC de Spark exposées en placeholders
DiscordSRVRéglages de l'intégration Discord (voir la remarque dans Intégrations)
LiteBansActions de modération transmises comme événements au monitoring distant VoxelBench
Multiverse-CoreLes mondes créés par VoxelBench sont importés dans Multiverse

Les intégrations Dynmap, Spark et DiscordSRV peuvent être désactivées dans config.yml :

integrations:
  dynmap:
    enabled: false
  spark:
    enabled: false
  discordsrv:
    enabled: false

Limitations connues

Proxys (BungeeCord / Velocity)

VoxelBench s'exécute sur les serveurs backend, pas sur le proxy lui-même. Installez-le sur chaque serveur backend que vous souhaitez benchmarker.

La vérification du serveur (/bench verify) nécessite que le port de jeu du serveur soit directement joignable depuis Internet, car voxelbench.com contrôle la réponse au ping de la liste des serveurs.

Hébergement mutualisé et gratuit

Certains hébergeurs restreignent :

  • Les connexions HTTPS sortantes : nécessaires pour soumettre les résultats à voxelbench.com (/bench ping aide à diagnostiquer les problèmes de connexion)
  • L'ouverture de ports : nécessaire pour le tableau de bord web de monitoring
  • Les E/S disque et le CPU : les résultats peuvent ne pas être représentatifs

VoxelBench détecte au démarrage les hébergements gratuits courants, le signale dans les vérifications préalables d'un benchmark et l'indique dans les rapports. Les profils personnalisés free-host fournis sont des alternatives plus légères. Voir Configuration.

Serveurs virtuels (VPS/Cloud)

Les environnements virtualisés peuvent donner des résultats de benchmark irréguliers en raison de :

  • Ressources CPU partagées avec d'autres clients
  • E/S disque virtualisées
  • Performances réseau variables

Pour les résultats les plus précis, utilisez du matériel dédié. Les résultats sur VPS restent utiles pour comparer des configurations chez un même hébergeur.