🕒 Lecture 8 min.

Spigot, Bukkit, Paper, Sponge, en effet un dilemme existe pour les administrateurs de serveur : choisir un module, une API pour serveur, ou plutôt, pour parler plus technique, un fichier “jar” (“jar” étant l’extension d’un fichier java : blabla.jar comme il existe des fichiers texte, blabla.txt) sur lequel baser son serveur.

En effet, il en existe quelques-uns apportant chacun, à leur manière, des modifications au fonctionnement des serveurs, voire au fonctionnement du jeu en lui-même

Les 4 cités plus haut sont aujourd’hui les plus connus et les plus utilisés, ce sont ceux auxquels nous allons nous intéresser aujourd’hui. Quels sont leurs avantages, quels sont leurs inconvénients, qu’apportent-ils, que permettent-ils ? On vous dit tout sur Minecraft.fr ! C’est donc parti pour cet article un peu différent !

À lire aussi : Créer un serveur Minecraft Vanilla

Bukkit : le précurseur

Bukkit
Logo de Bukkit.

On ne vous a jamais dit que Bukkit a été le précurseur des plugins ? En effet, c’est à partir de ce module que la mise en place de serveurs personnalisés a commencé dans l’univers Minecraft. Bukkit est une API permettant de charger des plugins sur un serveur classique via son fichier java « Craftbukkit ».

En soit, à ce jour, je ne trouve pas utile de nous attarder sur cette API. Non pas que celleci est inutile ou bien inintéressante. Nous devons beaucoup à Bukkit mais celui-ci n’est plus l’API la plus performante qui existe. Depuis quelques années, Craftbukkit n’est plus fourni par Bukkit eux-mêmes à la suite d’un litige avec Mojang. Il n’est disponible que via l’outil de compilation BuildTools fourni par Spigot (nous reviendrons sur cet outil après).

À l’origine, il était la base d’un serveur Minecraft jusqu’à ce que Spigot prenne de l’ampleur entre 2012 et 2013. Le fonctionnement entre les deux reste toutefois très similaire, même si Spigot permet plus de choses et également améliore les performances… mais patience, nous y arrivons !

Non pas que je ne vous conseille pas d’utiliser Bukkit, vous vous y retrouverez sans problème. Toutefois il est clair que ce n’est plus l’API la plus utilisée car d’autres se sont ancrées, proposent plus de choses et d’autres encore émergent. De plus, Craftbukkit n’étant distribué qu’avec Spigot, il est bien plus pertinent de se tourner désormais vers ce module-ci.

⤴️ Bukkit.org

Spigot : l’incontournable

spigot
Logo de SpigotMC.

Spigot … Ah là là… Que ferait-on sans toi ?

Fondé en 2012, cette API a pour vocation d’être encore plus performante que Bukkit. Le pari est plutôt réussi. De nombreuses options disponibles en configuration permettent de personnaliser beaucoup d’aspects normalement non-modifiable sur un serveur Minecraft classique. Le succès est tel qu’un nouveau projet émerge de l’équipe de développeurs SpigotMC dirigée par md_5 : les développeurs mettent en place également une seconde API, non pas de serveur, mais plutôt qui a pour but de relier plusieurs serveurs entre eux et de pouvoir se déplacer entre les serveurs sans quitter une partie en cours. Je parle bien sûr de BungeeCord.

Cette API est aujourd’hui la clé de voûte de l’ensemble de la communauté de serveurs Minecraft. Elle permet bien évidemment l’installation de plugins, très souvent nécessaires au serveur. On pense bien sûr à Essentials, PermissionsEx, WorldEdit, WorldGuard, ou d’autres plus spécifiques comme Shopkeepers.

Mais Spigot, ce n’est pas que ça.

Spigot permet des choses plutôt intéressantes quand on se penche bien sur la configuration et que l’on peut comprendre tous les tenants et aboutissants de chacune des variables. Outre l’ajout de plugins, il permet par exemple de personnaliser certains messages du jeu. Par exemple, celui qui apparaît quand on se trompe de commande, ou celui qui vous kick car vous n’êtes pas à la bonne version du jeu. Ce sont des détails pour certains, mais moi j’y vois un moyen de rendre un serveur plus attractif, car plus « propre » grâce aux détails peaufinés.

Une des autres possibilités de Spigot est de, par exemple, désactiver l’auto-complétion de votre commande ou du pseudo d’un joueur. Quand vous tapez par exemple /ki dans le chat. Appuyez sur tab et cela vous proposera plusieurs commandes en complétion et par exemple la commande /kill. Cette option est disponible depuis. De la même manière, Spigot permet de gérer les paramètres plus spécifiques d’un monde, tels que la vitesse à laquelle les cultures poussent, ou encore le taux de spawn des monstres et bien d’autres choses à découvrir.

En résumé, Spigot permet pas mal de choses très intéressantes pour pousser les performances et explorer de nouvelles fonctionnalités, de façonner votre univers à vous sans avoir à complexifier la démarche avec l’ajout de mods via Forge !

⤴️ SpigotMC.org

Sponge : le petit nouveau multi-tâches !

sponge
Logo de Sponge.

Sponge est une API plutôt récente et très particulière. Celle-ci prend de plus en plus de place dans la mise en place de serveurs notamment car elle permet des choses qui n’étaient plus possibles depuis la 1.7.10 et le module Cauldron (une version de Craftbukkit qui permettait de coupler mods et plugins sur un même serveur), c’est-à-dire conjuguer mods et plugins sur un même serveur sur des versions récentes, notamment la 1.12.2 (dernière version disponible de Sponge).

L’API Sponge a été entièrement pensée de A à Z et se découpe en deux versions, deux modules permettant deux types de serveur différents :

  • SpongeVanilla : installer un serveur Minecraft classique avec l’API Sponge, avec possibilité d’installer des plugins.
  • SpongeForge : installer un serveur Minecraft modable avec l’API Sponge, avec possibilité d’installer des mods Forge ainsi que des plugins.

Qu’on soit clair : Sponge est une idée brillante.

Et j’accentue ce terme avec le module SpongeForge. De plus, les deux APIs sont très intéressantes à utiliser, je ne peux que vous conseiller, pour ceux qui s’y intéressent un peu, de les essayer sur un serveur de développement. Toutefois, le problème que soulève Sponge est son incompatibilité avec tous les plugins Spigot/Bukkit, rendant obsolète une immense base de données de plugins lorsque l’on décide de baser un serveur sur Sponge. Bien qu’il existe des ponts pour rendre compatibles des plugins Bukkit sur Sponge, ceuxci restent peu stables, et la diversité des plugins Sponge n’est pas aussi importante que sur Bukkit et Spigot. On peut toutefois féliciter et encourager de nombreux développeurs qui enrichissent de plus en plus cette base de données encore naissante.

Il est vrai que je reste assez mitigé concernant Sponge, ou du moins le module SpongeVanilla. SpongeForge a toute mon approbation, car même s’il faut utiliser des plugins Sponge, le fait de pouvoir coupler mods et plugins sur des versions plus récentes, c’est quand même super ! Néanmoins, le fonctionnement, la stabilité et la diversité des outils pour l’unique utilisation de plugins sur Sponge reste trop peu importante en comparaison de ses concurrents.

⤴️ SpongePowered.org

Paper : vers le perfectionnement ?

paper mc
Logo de paper.

Bon, je vous l’accorde, Paper n’est pas l’API la plus répandue, quoiqu’elle commence à se faire une place majeure parmi les serveurs ! Il faut reconnaître que ce module est très pratique et encore plus poussé que Spigot. Il faut savoir que cette API se base en réalité sur Spigot, c’est un peu un remake mais qui permet de configurer plus de choses et de pousser encore plus les performances du serveur.

En effet, vous retrouvez sous Paper les mêmes fonctionnalités et notamment la possibilité de mettre en place un proxy BungeeCord (à noter que l’équipe Paper a aussi créé un « BungeeCord » version Paper, nommé « Waterfall », qui se base sur le BungeeCord de SpigotMC). Toutefois, un nouveau fichier de configuration (plutôt long et pénible je l’avoue !) met en place de nouvelles possibilités, plutôt utiles et sympathiques !

Paper vous permet de personnaliser la génération du monde par défaut (toujours dans la configuration) en autorisant par exemple que certains types de bâtiments. Admettons que je veuille des villages sur ma carte mais pas de donjons, c’est possible ! Encore un petit détail, juste pour le plaisir : sur ma carte, je ne veux pas que les explosions fassent reculer les joueurs ou entités (effet « knockback »), hé bien ce petit détail est également désactivable !

Je ne vais pas vous vendre Paper plus longtemps, vous aurez compris que, bien que très proche de Spigot, les fonctionnalités supplémentaires que Paper offre sont, selon moi, considérables s’ajoutant à celles déjà importantes de Spigot !

⤴️ Papermc.io


Voici donc dressé un léger panorama de ce qui est en partie disponible pour monter vos serveurs Minecraft. Faites votre choix et donnez votre avis en commentaires pour ceux qui s’y connaissent (les autres aussi, si vous voulez) ! Vous aurez sans doute compris au fur et à mesure que Paper est mon API favorite, je ne peux que vous encourager à l’utiliser et à explorer ses possibilités !

Merci d’avoir lu cet article jusqu’au bout ! En espérant qu’il aura pu vous expliquer certaines choses et vous aura plu !