J’avais déjà écrit
un article sur Sponge, il y a quelques mois de cela afin de vous présenter cette nouvelle initiative prise par la communauté Minecraft. À l’époque, le projet était tout neuf et dans la confusion de la fin de Bukkit et du rachat de Minecraft par Microsoft, personne ne savait s’il tiendrait la longueur.
Eh bien je suis content de vous annoncer qu’il a tenu et que Sponge est enfin disponible en téléchargement !
Sponge, c’est quoi ?
Petit historique pour ceux qui n’auraient pas suivi.
Nous avons tout d’abord Bukkit qui est un add-on au serveur Minecraft vanilla permettant de lui ajouter des fonctionnalités sous forme de plugins, côté serveur uniquement (e.g. ajout de commandes, modification de l’existant mais pas de rajout de contenu type blocs ou mobs). Nous avons aussi Spigot, un fork de Bukkit intégrant des fonctionnalités supplémentaires appréciables.
D’un autre côté, nous avons Forge dont le but est d’ouvrir très largement l’API Minecraft aux modeurs afin que ceux-ci puissent rajouter du contenu. Il est possible avec un mod Forge d’ajouter tout ce que ferait un plugin Bukkit et bien plus. Cependant, Bukkit est plus simple d’accès et devient donc très populaire.
Bukkit et Forge sont incompatibles entre eux. Naît alors MCPC+ rebaptisé Cauldron dont le but est de faire fonctionner ensemble mods et plugins ce qui, à part pour quelques cas très particuliers, se révèle être un succès.
Fin de l’été 2014, Bukkit sombre sous les coups de la démotivation et du DMCA. Spigot et Cauldron le suivent. Spigot se relève et son développement continue en 1.8 et ultérieur mais Cauldron est définitivement arrêté. Il n’est désormais plus possible de faire fonctionner ensemble mods et plugins au-delà de la 1.7.10.C’est là que l’idée de Sponge naît, portée par deux développeurs de grand talent : sk89q (auteur de WorldEdit et WorldGuard notamment) et blood (ancien développeur de Cauldron).
L’idée de base de Sponge – même s’il est devenu bien plus que cela, nous allons le voir – c’est de proposer une API semblable à celle de Bukkit et qui soit 100% compatible avec Forge.
Les multiples visages de Sponge
Au final, le nom Sponge regroupe plusieurs projets. Le premier et le plus important est la SpongeAPI. Une API – Application Programming Interface que l’on peut traduire par interface de programmation – n’est ni plus ni moins qu’une norme qui définit la manière dont se fait l’accès aux fonctionnalités de l’application qu’elle couvre. Pour schématiser, imaginons que Sponge est un système physique extrêmement complexe composé de dizaines de moteurs et de milliers de rouages qui tournent dans tous les sens. La SpongeAPI serait alors le tableau de bord, chargé de piloter tout cela avec d’un côté les boutons qui permettent d’agir sur le système et d’un autre côté les voyants qui permettent de voir l’état du système. La SpongeAPI nous permet ainsi d’accéder aux fonctionnalités de Sponge à partir d’une interface simplifiée qui fait abstraction du fonctionnement complexe au cœur de l’outil. Concevoir une API logique et facile à utiliser est une tâche extrêmement ardue et ne doit pas être négligé.
Maintenant que nous avons notre interface, il faut développer les fonctionnalités auxquelles cette interface donne accès. Cette étape s’appelle l’implémentation de l’interface. Et c’est là que les choses se corsent quelque peu : la SpongeAPI dispose de plusieurs implémentations.
La première d’entre elles se nomme Sponge Coremod. C’est la version originelle de Sponge, celle qui était là depuis le départ. Il s’agit d’un mod Forge que l’on ajoute au serveur afin de pouvoir charger les plugins Sponge. Ainsi, Forge et mods fonctionnent en même temps que Sponge et ses plugins, ce qui était bien l’idée de base.
La deuxième s’appelle SpongeVanilla et c’est une implémentation de l’API Sponge sur un serveur vanilla. C’est un peu la même idée que pour Bukkit et Spigot : vous avez un serveur Vanilla capable de charger des plugins qui font sensiblement la même chose que les plugins Bukkit ou Spigot.
Enfin, la troisième n’est pas officielle mais elle est intéressante tout de même : il s’agit de SpongeGlowstone. Elle est construite au-dessus d’un projet nommé Glowstone. Glowstone est un serveur Minecraft entièrement développé depuis zéro ce qui lui permet d’être open-source car il n’utilise aucun code de Mojang.
Je télécharge où ?
Doucement chers amis ! Avant que vous ne vous ruiez sur tant de bonnes nouvelles pour remplacer vos anciens serveurs, faisons un petit point sur l’avancement.
Actuellement, il n’y a que Sponge Coremod qui soit disponible – à mes yeux c’est l’implémentation de Sponge la plus intéressante, donc tant mieux – et de surcroît, il s’agit d’une version de développement. Ça signifie que, d’une part, la totalité de l’API n’est pas implémentée et que d’autre part, il peut y avoir encore pas mal de bugs.
Il est donc extrêmement déconseillé de passer vos serveurs de production sous Sponge pour le moment et si vous le faites, faites un backup de vos données avant. En revanche, vous êtes vivement encouragés à le télécharger pour le tester afin de traquer les bugs ou de vous former au développement de plugins.
Téléchargez
la dernière version de Sponge. (Il faut cliquer sur le bouton main, source c’est le code source et javadoc c’est la documentation.) Si vous avez Forge, c’est très simple, il vous suffit de placer Sponge dans votre dossier mods et de démarrer votre serveur. Si vous n’avez pas Forge, vous n’avez même pas besoin de le télécharger, Sponge est capable de s’en occuper pour vous. Il vous suffit de créer un script contenant cette commande :
java -jar <votre jar Sponge> go
Exécutez le script et Sponge va gérer les dépendances pour vous.
Les plugins
C’est bien mignon tout ça, mais Sponge sans plugin ça n’a pas grand intérêt.
Attention, les plugins que je vais vous donner sont encore en développement et peuvent être instables voire bogués ! À ne surtout pas utiliser en production.
Et bien entendu, il est possible de créer vos propres plugins. Je vous invite à vous rendre sur
la documentation. (La documentation anglaise est la plus à jour, je ferai des tutoriels en français sous peu.)
Les fonctionnalités suivantes sont disponibles ou le seront sous peu :
– manipulation de données : blocks, itemStacks, entities, tileEntities ;
– système d’envoi de messages ;
– manipulation des données joueurs ;
– manipulation des inventaires ;
– système de ban ;
– ajout de commande ;
– système de multi-monde ;
– gestion des statistiques joueurs (ajout, modification, suppression…) ;
– scoreboards ;
– et bien d’autres…
Les concurrents
Parce que Sponge a des concurrents, il faut bien en toucher un mot.
Le premier d’entre eux, c’est bien entendu Spigot. L’avantage premier de Sponge par rapport à Spigot c’est qu’il est compatible avec Forge et donc avec les mods. L’API de Sponge est également mieux pensée et plus agréable à utiliser que celle de Spigot (quoiqu’un peu plus complexe). En revanche, Spigot a l’avantage de l’ancienneté, d’une base de plugins extrêmement importante et d’une grande communauté. Objectivement, je ne peux que vous conseiller Spigot pour le moment si vous n’avez pas besoin de mods. Mais dès que Sponge commencera à grandir quelque peu, il pourrait se révéler une alternative très intéressante.
On peut citer également le Rainbow Project, présenté sur Minecraft.fr il y a peu. L’API de Rainbow n’est pas au niveau de celle de Spigot, encore moins de celle de Sponge, la communauté est très petite et il n’est pas compatible avec Forge. Préférez Spigot si vous n’avez pas besoin de mods, Sponge sinon.
On a également des projets comme Project Arrow et HuskBukkit dont on a entendu parler en septembre à la fin de Bukkit et qui se présentaient comme ses successeurs, mais ça n’a rien donné et les deux projets ont été abandonnés.
FAQ
Quelques questions que vous vous posez peut-être…
- Quand la version stable sera-t-elle disponible ?
Il n’y a pas encore de date.
- Sponge est-il compatible avec BungeeCord ?
Forge 1.8 est compatible avec BungeeCord, par conséquent Sponge – qui ne modifie pas la manière dont Forge et Bungee communiquent – est compatible également. Sponge est également compatible avec Lilypad, une alternative à Bungee, moins connue.
- Les plugins Bukkit seront-ils fonctionnels sous Sponge ?
Nativement, non. Il existe cependant un plugin Sponge en développement qui s’appelle Pore et dont le but à terme est de faire fonctionner les plugins Bukkit sous Sponge.
Développer sur éponge est plus dur que sur bukkit, cependant, la stabilité et les possibilité offertes surpasse de très très loin ce que nous offre spigot.
Personellement, je suis entrain de réécrire le plugin de mon serveur sous éponge et espère pouvoir l’utiliser au plus vite
Je ne comprend pas… ça fait déjà plusieurs heures que je cherche comment utiliser sponge et impossible de trouver un vrai tutoriel
j’ai juste compris qu’il fallait mettre sponge dans le dossier mod
mais après a par ajouter les quelques commandes de sponge (leur utilité n’est expliquée nulle pars…) il ne se passe rien, il n’y a aucun répertoire pour placer les plugins et d’ailleurs les plugins sponge ne fonctionnent pas (il est écris de prendre le .jar dans le .zip, et a chaque fois soit le .zip ne contient aucun .jar, soit mettre le .jar dans le dossier mod fait crasher le serveur)
enfin bref je n’y comprend rien :/
ça m’énerve vraiment je ne trouve pas cette API logique et il n’y a absolument aucun tuto sur internet (pour présenter le projet ils sont forts mais pour montrer comment installer un plugin il n’y a rien :(( )
Enfin bref si tu pouvais me répondre ou me trouver un lien avec un vrai tuto pour installer un plugin sponge je t’en serais infiniment reconnaissant, merci d’avance
Sponge vient de sortir, il n’y a pas de tutos autres que la docs.
Sponge est en version de développement, ce qui signifie qu’il est potentiellement instable. Ce qui signifie également qu’il est à destination des développeurs et des admins serveurs avertis. Si tu galères tant que ça à l’installer, tu ne dois pas faire partie de la cible de la version de développement.
Je ferai des tutoriels très bientôt.
Je te dis GG . C’est très bien expliquer, tu es un très bon rédacteur !
Je viens de comprendre la logique des noms: Bukkit (Bucket) + Forge= Cauldron (sorte de grand bucket/seau solide)
J’admire l’intelligence des créateurs XD «I see what you did there…»
Sinon y’a aussi “KCauldron”, créé par Yive, qui est une mise à jour de Cauldron avec l’API de bukkit. C’est vachement bien, mais encore en développement.
Sera-t’il un jour possible d’aller sur des serveur moddé, en installant d’un simple fait de se connecter au serveur ?
Ça serait une bonne idée ça… Sûrement un jour! :)
Pour l’instant il y a les modpacks pour installer des mods facilement et ensuite jouer sur un serveur.
Je ne pense pas, ça pourrait causer de très gros problèmes de sécurité en permettant aux détenteurs de serveurs de faire télécharger n’importe quoi aux joueurs.
juste une petite faute ligne deux de “les multiplees visages de sponge” il manque un espace a “Application Programming INTERFACE/QUE” ;)
C’est corrigé, je te remercie.
C’est pas censé être compatible avec une grosse partie des plugins bukkit/spigot ?
Oui. En utilisant le plugin Pore (une fois qu’il sera sorti)
De base, il n’en a jamais été question. Le choix a été fait de reprendre totalement l’API, ce qui est bon choix car SpongeAPI est bien plus propre que Bukkit.
Mais effectivement, il y a Pore qui s’est rapproché du projet Lapis Blue. Pour plus d’informations, voir par ici : http://docs.lapis.blue/pore/
Merci beaucoup pour l’article :)
“Les plugins Bukkit seront-ils fonctionnels sous Sponge ?
Nativement, non. Il existe cependant un plugin Sponge en développement qui s’appelle Pore et dont le but à terme est de faire fonctionner les plugins Bukkit sous Sponge.”
Mouais donc faut encore attendre pour que tout le monde se mette à jour…
OMG c’est une SUPER nouvelle MERCI Guiyaume :)
OMG c une superbe GENIALISSIME nouvelle :D
Ah cool depuis le temps que je cherchais une MAJ de Cauldron o/
Article intéressant ! J’espère simplement que leur plugin Pore sera vite à son stade de développement final… :)