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 – Location Serveur Minecraft
Sommaire
Bukkit : le précurseur
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 … 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 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.
Paper : vers le perfectionnement ?
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 !
L’article a été actualisé ! Merci à Discow pour son aide !
Étant donné que c’est littéralement le premier article sur le quel on tombe quand on cherche “Spigot vs Sponge”, je me permet de préciser que Sponge possède maintenant une API LARGEMENT plus puissante que Spigot. Parmis les avantages que Spigot n’a pas nous pouvons citer:
– L’utilisation de pattern vraiment utiles comme le Pattern Builder
– L’utilisation des nouveautés de Java 8 comme les lambdas
– Le développement plus actif bien que la communauté soit moins importante que celle de Spigot
– Les TONNES de classes utilitaires
– L’utilisation de constantes et de classes de constantes au lieu d’enum ce qui rend les choses plus flexibles (notamment pour les mods)
– Un plugin Gradle officiel
– Et j’en passe….
Voilà c’est tout. J’espère que l’auteur verra cela et actualisera son article. En tous cas si je devais refaire un serveur ce serait avec Sponge ;)
Autre chose (je sais pas edit sur ce site), Sponge est maintenant extrêmement stable et est largement utilisable en production ;).
Encore un autre truc (sorry =p), vu que tu parles vite fait de bungee et waterfall, tu peux ajouter Travertine et Velocity.
Salut Il_totore !
Tes remarques sont très justes, Sponge est une API puissante et semble se stabiliser (j’ai eu une expérience perso avec un serveur moddé sous Sponge, il tourne extrêmement bien et aucun bug dû à Sponge n’a été constaté). Néanmoins, ce que je vois aussi c’est que Sponge est toujours en 1.12.2, alors que Minecraft arrive en 1.16 et c’est un lourd handicap pour ce projet… Hormis pour créer un serveur moddé, quelqu’un souhaitant monter un serveur uniquement avec des plugins n’a pas d’intérêts à utiliser Sponge réellement puisqu’il ne peut pas proposer les trois et bientôt 4 dernières versions du jeu Minecraft !
Deuxième commentaire concernant Travertine et Velocity :
Je parle ici des APIs serveurs, mais un article sur les proxys est tout à fait envisageable.
BungeeCord, Waterfall, Velocity… je suis d’accord qu’on a du choix. En revanche pour Travertine, qui, si je comprends bien, est aussi développé par l’équipe de Paper, il s’agit simplement de Waterfall compatible aux versions 1.7.10 en plus des versions 1.8 et + ?
Désolé d’avoir été absent pendant longtemps j’était à l’hôpital. Donc pour la 1.12.2 en vanilla je recommande SpongeVanilla. Et pour Travertine tu as vu juste c’est bien Waterfall pour les versions antérieures à la 1.8.
Très bon article mais ça aurait été bien de parler de Glowstone.
C’est une API perfectionnée et complète comme SpongeVanilla et construite de zéro, sauf qu’en plus les plugins Bukkit/Spigot sont compatibles dessus.
Le mode survie est assez instable, mais sinon c’est que des avantages pour les serveurs de mini-jeux :)
Bonjour et merci !
Tu as raison de m’en parler, je ne connaissais pas du tout. Peut-être que j’en parlerai dans un autre article si le sujet s’y prête. Mais je vais découvrir cette API ! :)
Très bonne article… Cependant tu parles de Bukkit ou de Craftbukkit… (Bukkit est une API de dèvloppement et CraftBukkit une API serveur [bien que similaires])
Hé bien “Craftbukkit” c’est le fichier .jar qu’on utilise pour lancer un serveur, et “Bukkit” c’est l’API de “Craftbukkit” donc en soit c’est la même chose, à part que “Bukkit” est utilisé pour développer et pas pour lancer un serveur ^^.
Fin’ bon, là en l’occurence c’est plutôt “Craftbukkit” !
Merci beaucoup !
Je n’arrivais jamais à différenciez la plupart d’entre-eux !
Et tu m’a fait découvrir Sponge qui me hype beaucoup pour des futurs serveur survie avec des potes :DD
Avec plaisir !
Très bon article, je ne connaissais pas Paper mais je sens que je vais très vite l’adopter.
Pour SpongeForge après quelques tests sur les versions 1.8x (conseillée ou dernière) j’ai abandonné, trop instable pour faire un serveur même privé avec peu de joueurs, à voir avec des versions plus récente de MC peut-être…
Les versions plus récentes devraient être plus stables car sous les versions 1.8, il me semble que Sponge était encore en Beta ! A voir ;) !
Merci pour ton retour en tout cas :)
Merci pour l’article!
Mais le lien pour Sponge c’est pas “spongepowered.com” mais “spongepowered.org” et le lien pour Paper ne fonctionne pas non plus
Merci pour le retour, c’est corrigé pour les liens !
Paper peut il aussi lancer des plugin de l’API spigot (et bukkit par le même coup ?)
Oui ! Paper est basé sur l’API de Spigot ^^
Très intéressant, je ne connaissais pas paper et très mal sponge, merci pour cet article ! Maintenant, pourrais tu faire un article similaire mais sur les plugins (pourquoi pas même des plugins Sponge) ?
Merci pour ton retour ! J’ai en effet quelques idées d’articles dans cet esprit plus axés sur les plugins, qui verront le jour prochainement. Je pense que cela sera axé dans un premier temps sur les API’s Spigot/Paper/Bukkit car je ne maîtrise pas assez Sponge et ses plugins pour prétendre pouvoir en faire une illustration et conseiller là-dessus. Toutefois, je me penche sur Sponge de temps en temps pour en savoir davantage, donc pourquoi pas à l’avenir oui :) !
Si tu as des suggestions n’hésite pas à m’en faire part en MP sur le forum ou sur Discord !
Article super intéressant et vraiment utile! C’est vrai qu’il n’y a pas beaucoup d’articles sur MC.fr à ce sujet
Ton retour me fait très plaisir, merci !