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
| Serveur | Support | Intégration continue |
|---|---|---|
| Spigot | Supporté | Compilé contre chaque version de l'API Spigot listée plus bas |
| Paper | Supporté | Démarrage du serveur avec VoxelBench en 1.17.1, 1.21, 26.1.2 et 26.2 |
| Purpur, Pufferfish | Supportés en tant que dérivés de Paper | Non testés |
| Folia | Supporté, avec un ordonnancement par région | Dé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 Folia | Passent par le code Folia | Non testés (VoxelBench 1.8.0 a été validé manuellement sur Canvas 26.1.2) |
| Serveurs hybrides | Détectés, avec des limites | Test 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 :
| Version | Compile contre l'API Spigot | Démarrage d'un serveur Paper | Démarrage Folia et tests |
|---|---|---|---|
| 1.17.1 | Oui | Oui | - |
| 1.18.2 | Oui | - | - |
| 1.19.4 | Oui | - | - |
| 1.20.4 | Oui | - | - |
| 1.21 | Oui | Oui | - |
| 26.1.2 | Oui | Oui | Oui |
| 26.2 | Oui | Oui | Oui |
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 Minecraft | Java |
|---|---|
| 1.17.x | 16 ou 17 (Paper 1.17 ne démarre pas sur un Java plus récent ; la CI utilise 17) |
| 1.18 - 1.20.4 | 17 ou plus récent |
| 1.20.5 - 1.21.x | 21 ou plus récent |
| 26.x | 25 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.
| Plugin | Utilité |
|---|---|
| PlaceholderAPI | Placeholders pour scoreboards, tab lists, hologrammes |
| Dynmap | Couches cartographiques : heatmap de densité d'entités et marqueurs d'alerte de performance |
| Spark | Métriques TPS, MSPT, CPU et GC de Spark exposées en placeholders |
| DiscordSRV | Réglages de l'intégration Discord (voir la remarque dans Intégrations) |
| LiteBans | Actions de modération transmises comme événements au monitoring distant VoxelBench |
| Multiverse-Core | Les 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 pingaide à 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.