C’est dans la confusion liée à la fin prématurée du projet Bukkit qu’un nouveau venu – à peine le développement entamé – tente de se frayer un chemin dans la communauté très fermée des logiciels de serveur Minecraft. Comme quoi, quand la communauté contre-attaque, un nouvel espoir surgit du chaos…
Mais quel chaos ?
Pour ceux qui vivaient dans un abri antiatomique ces dernières semaines, je vais résumer la situation. CraftBukkit, le logiciel de serveur Minecraft le plus utilisé actuellement, a été victime d’une plainte de wolverness (l’un de ses contributeurs) en vertu du DMCA (le Digital Millenium Copyright Act Américain) accusant le projet de violer ses droits d’auteurs.
Comment cela est-il possible alors que le projet Bukkit est libre ? Eh bien, il faut comprendre que le projet Bukkit est divisé en deux parties distinctes : Bukkit et CraftBukkit. Bukkit est l’API des plugins, c’est-à-dire un ensemble de fonctionnalités permettant d’ajouter au serveur Minecraft la possibilité d’utiliser des plugins Bukkit. Bukkit n’est pas un serveur Minecraft, Bukkit est libre et d’ailleurs Bukkit n’est absolument pas concerné par la plainte DMCA puisqu’il est toujours disponible au téléchargement.
La seconde partie du projet se nomme CraftBukkit. CraftBukkit reprend le code du serveur Minecraft qui permet de générer un monde, d’accueillir un joueur, etc. et y mêle l’API Bukkit permettant d’utiliser les plugins. CraftBukkit est donc un projet dérivé de Bukkit puisqu’il utilise le code de Bukkit. Or, Bukkit est sous licence GPL (une licence est un texte qui dit ce qu’on peut et ce qu’on doit faire avec un logiciel) qui stipule que tous les projets dérivés d’un projet sous GPL doivent aussi être sous GPL. Or, CraftBukkit contient du code du serveur Minecraft qui est propriétaire et ne peut être placé sous licence GPL. En conséquence, CraftBukkit ne respecte pas les exigences de la licence de Bukkit et ne peut donc pas être distribué.
Ainsi, les téléchargements de CraftBukkit sont suspendus et avec lui ceux de Spigot et de Cauldron. Spigot est un serveur CraftBukkit avec quelques modifications ayant pour but d’améliorer ses performances. Cauldron (anciennement MCPC+) est une migration de l’API Bukkit sous un serveur Forge afin de pouvoir faire fonctionner les plugins Bukkit et les mods Forge simultanément.
Pour plus de précisions, je vous renvoie à ce message de sk89q (en anglais)
La genèse
blood, le lead developer (chefs des développeurs) de Cauldron a lancé un grandbrainstorming afin d’aboutir à un nouveau projet. C’est ainsi qu’est née l’idée de Sponge. Il s’est associé à sk89q (contributeur du projet Bukkit et développeur des plugins WorldEdit et WorldGuard) et tous deux sont devenus lead developers aidés par de nombreuses autres personnes parmi lesquelles, les développeurs de Forge, de Spout, de Spigot, de ForgeEssentials, de Floaw, de Canary, de Glowstone ainsi que des développeurs de Bukkit et de plugins Bukkit. Les deux lead developers prennent les décisions en consultant la communauté lorsqu’ils le jugent nécessaire (notamment sur leur chan IRC).
Vous avez certainement entendu parler du projet Minecraft API lancé par Mojang lorsqu’ils ont embauché le noyau dur des développeurs de Bukkit. Ce projet a pour but de doter le serveur Minecraft Vanilla d’une API semblable à celle de Bukkit. Mais les développeurs de Sponge ont choisi de développer leur propre solution pour des raisons de temps (ça mettra bien longtemps à sortir si jamais ça sort et beaucoup de gens n’ont pas envie d’attendre) et parce que Sponge est un projet communautaire donc plus réactif que Mojang au niveau de la correction des bugs.
Les capacités
Sponge est basé sur Forge. Ce qu’il faut bien comprendre avec Forge c’est qu’il est possible de tout faire avec : rajouter de nouvelles fonctionnalités au jeu, rajouter de nouvelles interfaces graphiques, rajouter de nouveaux blocs… Mais il est également possible de rajouter des commandes et de gérer les événements (joueur qui se connecte ou bloc qui se casse par exemple), c’est-à-dire des choses que l’on confiait le plus souvent à des plugins Bukkit. Sous Forge, c’est bien plus complexe à coder, ce qui explique le succès de Bukkit et de Cauldron.
Sponge propose une API qui vient par-dessus Forge pour simplifier la création de mods de tous types et également la création de mods qui ont les mêmes fonctionnalités que des plugins Bukkit. En réalité, l’API sera assez proche de celle de Bukkit et les développeurs donneront une marche à suivre pour adapter un plugin Bukkit pour Sponge.
Contrairement à Cauldron qui permettait de faire fonctionner ensemble mods et plugins mais qui faisait une distinction nette entre les deux, Sponge tend à rapprocher les deux et à les fusionner sous le nom de plugins. Il existera trois types de plugins :
- server-side (côté serveur) comme WorldEdit et WorldGuard version Sponge qui, à l’instar de leurs versions Bukkit n’ont besoin que d’être connus du serveur pour fonctionner ;
- client-side (côté client) comme Optifine ou le ShadersMod qui ne font que modifier l’affichage du joueur (donc le serveur n’en a pas besoin) ;
- both-side (côté client et serveur) comme CustomNPCs (un mod Forge très connu) qui rajoute du contenu et doit donc être connu à la fois du joueur et du serveur.
À noter que Sponge étant basé sur Forge, les mods Forge classiques continueront à fonctionner. Mais l’avantage de Sponge, c’est que l’API fournie sera le plus possible indépendante de la version de Minecraft utilisée. Autrement dit, votre plugin Sponge fonctionnera sous plusieurs versions de Sponge sans nécessiter de modifications.
Avancement
Les développeurs de Sponge ne souhaitent pas s’engager sur une durée, mais indiquent qu’ils travaillent sur le projet activement (« day and night » si l’on cite les documents officiels). Ils travaillent sous licence MIT, un texte bien moins restrictif que la GPL qui évitera de rencontrer le même type de soucis que pour Bukkit. Ils tablent sur des performances au moins égales à celles de Bukkit et Spigot si ce n’est supérieures.
À l’heure actuelle, le projet possède déjà un répertoire Github. Pour ceux qui ne connaissent pas bien, Github est un site qui permet de partager le code de projets libres mais également d’organiser le travail entre les développeurs puisque chacun peut proposer son travail et les chefs de projet valident ou non les différents changements apportés. Dans le répertoire de Sponge, outre Meta qui est temporaire, nous avons la SpongeAPI et Sponge, le serveur en lui-même. La distinction est la même qu’entre Bukkit et CraftBukkit. SpongeAPI est l’API qui permet de simplifier l’utilisation de Forge et Sponge est un serveur Minecraft basé sur Forge Serveur qui implémente cette API.
Vous pouvez avoir un aperçu de la SpongeAPI et de son avancement en allant voir ce document (attention c’est un peu technique).
Pour voir l’avancement global du projet, je vous invite à consulter ce document mis-à-jour régulièrement (en anglais). Un forum est également disponible pour discuter du projet.
Vous voulez participer au projet Sponge ? Vous le pouvez !
Si vous n’êtes pas développeurs, il faut attendre ! Surveillez simplement les actualités, les développeurs sont assez transparents à ce niveau et dès que le projet sortira il va y avoir besoin de monde pour tester, traduire le wiki, remplir le forum, etc.
Si vous êtes développeurs web vous pouvez remplir le formulaire suivant (en anglais) mais les développeurs indiquent de ne pas forcément attendre une réponse.
Si vous développez en Java, vous pouvez remplir ce formulaire (en anglais également) mais vous vous n’aurez pas forcément de réponse non plus. Vous pouvez également commencer à vous familiariser avec l’API Sponge et préparer vos plugins. Les développeur conseillent de bien nettoyer son code et de minimiser les appels à l’API. Surveillez également l’avancement sur le répertoire Sponge git.
Sources et sites à propos de Sponge
Le chan IRC : #sponge sur le serveur irc.esper.net
Article proposé par Guiyaume, lecteur de Minecraft.fr
je pense que sponge voira pas le jour car cree un logic programme soit simple…
C’est très bien mais il faut qu’il soit simple d’utilisation.
Bref, la communauté ayant assez vite réalisé qu’attendre Bukkit pendant des mois, ce sera assez long, ils ont décidé de faire leur propre API plugin, en faisant par la même occasion une API mod (comme Forge, ModLoader, etc). Voici donc le Sponge Project (ils ont voulu mettre Sporge, pour Spout et Forge, mais quelqu’un a suggéré sponge), développé par des membres importants de la communauté :
sk89q, développeur de WorldEdit, WorldGuard, et ancien contributeur à Bukkit, administrateur de Sponge
blood, développeur de MCPC+ et Cauldron, administrateur de Sponge
LexManos et cpw, développeurs de Forge, Forge Mod Loader (FML) et Minecraft Coder Pack (MCP)
Zidane, Raphfrk, DDoS, Sleaker, Owexz et Wulfspider, membres de l’équipe Spout
kitskub, membre de l’équipe Flow
Abrarsyed, membre de l’équipe de ForgeEssentials
KHobbits, Elgarl et zml, développeurs de plugins Bukkit
Certains membres de l’équipe FTB
L’équipe Canary
SpaceManiac, de Glowstone
L’équipe Spigot
Certains anciens contributeurs à Bukkit
D’autres qu’ils n’ont pas pu citer
Pour une fois que des développeur mettent en place des serveurs avec du forge , craftbukkit , spigot .
Pour ceux qui nous pas les moyen de s’acheter un serveur pour jouer entre amis et bugger a cause de la connexion des mods etc…
GG mais y’a un problème , c’est microsoft car si il ban ce type de “serveur , mods…” bah voila cela ne sert a rien :/
Il y a un erreur de lien sur la page technique du projet, l’adresse est “https://docs.google.com/spreadsheets/d/1ZnUzTnpvGxlIWt2tABnG6DbJX4qsfccRZ7NdTTJ6FIU/edit#gid=0” et non “http://minecraft.fr/les-promesses-de-sponge/:https://docs.google.com/spreadsheets/d/1ZnUzTnpvGxlIWt2tABnG6DbJX4qsfccRZ7NdTTJ6FIU/“.
Sinon ça a l’air plutôt prometteur d’autant que ça simplifierait pas mal de choses étant donné que c’est basé sur Forge et ça augmenterait la compatibilité entre les différents plugins et mods de ne pas avoir 50 APIs différentes.
ca a l air intéressant de plus que si le serveur est mode il y aura plus de problèmes de compatibilité entre plugin et mods,
mai ça métra beaucoup de temps de recoder les plugin sur ce nouveau System de serveur.
il manquerai plus que le client télécharge les mods qu il a besouin pour se connecter , comme ça on pourra aller sur tous le serveur sans luncher ou autre :)
en tout cas j’esper que le projet aboutira par ce que la minecraft est un peut dans la mouise sans bukkit sinon. : /
Salut, ça à l’air d’être sympa, reste à savoir si microsoft laissera le jeu sous java, et acceptera la sortie de sponge :)
Moi je pense que c’est une excellente idée de relancer Bukkit et Forge comme ça, car, vu que les deux sont déjà réunis, ben on sera libre de mettre tout et n’importe quoi sur le serveur!! Et là, ce sera la cerise sur le gâteau! De plus que si Microsoft ne se foire pas dans Minecraft, Sponge fera relever le niveau de Minecraft et des serveurs ce qui sera plus que géant!
J’encourage énormément l’équipe de Sponge et j’espère que ça ira loin comme CraftBukkit ou même plus!
Tant qu’on peut encore coder avec Eclipse en Java, ça me va :D
L’espoir fait vivre…
J’espère que ce sera comme Craftbukkit, car moi avec minecraft_server ça lag et c’est impossible à jouer avec des potes alors que craftbukkit, le serveur est fluide et c’est super. Mais sur sponge les clients doivent avoir les mods du serve comme chez cauldron?
C’est expliqué dans le passage sur les plugins et ça fonctionnera un peu comme Cauldron.
Le client n’aura pas besoin des plugins qui ajoutent des commandes par exemple, car c’est entièrement géré par le serveur. En revanche, si tu veux rajouter un bloc, ton client devra connaître le bloc et donc avoir le plugin associé.
J’ajoute qu’avec les possibilités de Forge 1.8 (sur lequel sera basé Sponge), si un serveur Sponge ne possède pas de plugin qui nécessite d’être téléchargé côté client, alors les clients non Forge pourront se connecter au serveur.
Très bon article, sa fait plaisir de voir un nouveau projet, ils ont l’air de s’être bien organisé, en espérant que ce projet aboutisse.
Timiti29
Whooo le finistère :D
Espérons que Microsoft ne bride pas cette magnifique et grande initiative de la communauté!
Ayant appelé Microsoft pour savoir ce qu’arrivera des créations futures de Minecarft, ils ont dit que le jeu est passé sous MSDN! Donc cela signifiera peut être la fin du développement en JAVA non? Ca ne va pas poser problème au programmeur de Sponge et bien d’autres? Je m’y connais pas très bien mais je commence à me poser des questions.
En effet, si Microsoft changeait le technologie sous laquelle est développée Minecraft, cela poserait problème à Sponge qui serait obligé de recoder tout le projet avec cette nouvelle technologie pour pouvoir suivre les évolutions du jeu.
Mais MSDN n’utilise pas que .NET (la plateforme de développement de Microsoft) et il est tout à fait possible que Minecraft reste en Java. D’ailleurs, Microsoft a tout intérêt à laisser Minecraft en Java, car changer de technologie ce serait tuer trois ans de travail des développeurs de Minecraft et des développeurs de la communauté. D’autant que, il ne faut pas se mentir, choisir .NET pour un jeu comme Minecraft serait juste le pire choix possible.
J’ai envie de dire, le java n’est pas le meilleur langage pour un jeu…
On est d’accord, mais un langage .NET comme C# serait un choix bien pire encore…
Ok merci tu me rassure c’est ce que je me disais aussi! Ils tueraient le jeu s’ils changent la structure interne du jeu!
Pas vraiment en fait, le C#(.NET) ressemble beaucoup au java (il en ai même inspiré) il y a juste a convertir le code car la différence n’est pas vraiment la syntaxe. Après pour le moteur graphique ce sera plus compliqué, mais on verra plus tard…
Microsoft n’a aucun intérêt à changer le code du jeu pour du C#. Même si le Java et le C# sont très proche (le C# a été crée par Microsoft car ils voulaient leur propre Java en gros :D ).
Et le désavantage de C#, c’est que .Net n’est techniquement disponible que sur support Microsoft (Xbox, Windows et Windows Phone). Il existe une solution sur Linux mais pas 100% fiable.
Et le MSDN, c’est juste le réseau de développeurs de Microsoft. Même si c’est axé technologie Microsoft, d’autres langages sont parfaitement admis. Enfaite, ça veut surtout dire je pense que Mojang peut accéder à la plateforme et discuter avec d’autres développeurs. Je pense que ça ne peut être que bénéfique pour le développement l’entraide est toujours bénéfique dans un projet :) .
rien ne remplacera bukkit.
Mais il a l’air sympa quand même
On ne peut pas remplacer Bukkit? Pourquoi? Éponge pourrait même être MIEUX que Bukkit.
Ça promet ^^
C´est en meme temps bien mais l’ancien était comme lié au jeu si l’on veut il faudra du temps pour l’oublier surtout avec toutes les incertitudes que traversent le jeu en ce moment [rachat (on ne sait pas vraiment vers quoi on va].
Si Microsoft fixe leur jeu et en font pas de connerie avec, que Sponge vient à se démocratiser, je pense que Minecraft pourrait se relever !
D’autant plus que l’idée d’utiliser Forge comme base est une bonne idée !
Wai ta raison ! You’r f***ing damn right ! Forge + plugings dans un seul et même seveur sans avoir à installer des tonnes de trucs c une trop bonne idée ^^
Et bien…