Aidez nous a financer le site: Joignez l'utile à l'agréable et profitez d'FR-Minecraft sans publicités en
devenant VIP ! Ou ajoutez FR-Minecraft dans vos exceptions, nous n'abusons pas des pubs
3 serveurs Minecraft sont maintenant fermé: CraftBukkit, Spigot,
Cauldron/MCPC (et probablement d'autres), suite à la plainte DMCA de Wolvereness.
Le projet Bukkit semble définitivement mort: la liste des départs de l'équipe n'en fini plus: déjà
une trentaine d'adieu dans le staff Bukkit,
Spout écrit ainsi que "Mojang est propriétaire d'une coquille vide". Les différentes communautés réflechissent donc à leur avenir: quels sont les alternatives à Bukkit ?
Du coté de Mojang (propriétaire de la marque
Bukkit), on reste confiant et ils espèrent trouver une solution. Ils ont annoncé qu'ils mettraient Bukkit à jour en version 1.8, et semblent confirmer cette annonce aujourd'hui encore, malgré les plaintes en cours.
Chez
Spigot le projet est actuellement fermé, mais md_5 (le leader du projet) se veux rassurant et annonce que les développements continuent bien qu'ils ne puissent pas être partagé publiquement pour le moment. Ils espèrent une résolution rapide des problèmes actuels afin de reprendre la diffusion du projet. Spigot semble même se rapprocher de Mojang, peut-être pour une fusion entre Spigot et Bukkit ?
Chez
Cauldron en revanche
on est moins optimiste. Tout le projet n'est pas perdu rassure-t-il, seul les interaction entre Cauldron et Bukkit devront être supprimé, ils envisagent ainsi de se tourner vers d'autres serveurs, tel que Forge, Canary, Spout, etc. Le problème étant que cela risque de casser les plugins actuels.
Du coté des mods client/serveur la question se pose également, ainsi le plugin
SpoutCraft s'interoge sur leur avenir. "Bukkit est complétement mort"
annoncent-ils, le plugin SpoutCraft ne peut pas fonctionner sans Bukkit, et le client SpoutCraft ne sert quasiement a rien sans le plugin.
Ainsi Spout va laisser place à un nouveau projet: Sponge, un serveur qui sera basé sur Forge avec une nouvelle API basé sur SpoutAPI. Le plupart des communautés et de leur leader semble entousiasme pour cette solution. Le client SpoutCraft sera lui aussi adapté pour le serveur Forge, le nouveau devrait s'appeller Obsidian.
Mais il n'est pas obligatoire de créer un nouveau serveur, il existe déjà d'autre serveur alternatif, avec chacun leur avantage et inconveniant, la communauté en a donc dréssé une liste:
Liste des solutions possibles:
1/ Utiliser un concurrent à Bukkit
Ces outils fonctionnent sur le même principe que Bukkit, c'est a dire qu'ils sont basé sur le serveur de Mojang (inclu ou non dans la source), et ils étendent les fonctionnalités.
- Canary:
Avantage:
- Une licence très simple
- API bien documenté
- Canary peut être utilisé avec Forge, et CanaryLib permettrai de faire un futur Cauldron
- Couche d'abstract de l'API (ndt: ce qui évite de casser les plugins à chaque mise à jour de Minecraft)
- Certain plugin populaire de Bukkit fonctionne déjà sur Canary
Inconveniant:
-
/!\ Il inclu le serveur Minecraft de Mojang, ce qui enfrain la license de Mojang
- La communité est très réduite, bien que ancienne et stable
- Minecraft Forge:
Avantage:
- Une très large communauté
Inconveniant:
- Un phylosophie très différentes de Bukkit: Forge partage le plus de fonctionnalité possible, sans abstraction, alors que Bukkit cache beaucoups de code, mais ajoute une couche d'abstraction pour faciliter la maintenance des plugins
-
/!\ Requiere un client moddé ! Mais cela sera corrigé pour la 1.8 (et peut être également pour la 1.7)
-
/!\ Certains types de plugins vont toujours être cassé lors des mises à jour, car Forge n'offre pas (et n'offrera jamais) de couche d'abstraction.
- Les performances sont moins bonne que Bukkit et Spigot
- Le code est difficile à lire et à maintenir, ce qui risque d'être un frein pour les futurs developpeurs
- Il manque beaucoups de fonctionnalité déjà présente dans Bukkit (mais cela pourra être amélioré avec le temps)
2/ Utiliser un projet totalement indépandent
Ces projets n'utilisent pas du tout le serveur de Mojang pour fonctionner, ce qui signifie que tous le travalile de Mojang est reproduit dans ces projets à l'identique, ou presque, un travail colosale donc.
- Glowstone:
Avantage:
- Projet très ancien, et quasiement à jour
-
(+) Les plugins Bukkit existant sont compatible
Inconveniant:
- Le générateur de monde n'est pas inclu dans le projet
-
/!\ En général le projet est en retard sur les fonctionnalités de Minecraft, car c'est un boulot énorme de tout reprogrammer
-
/!\ Utilise la couche API de Bukkit, ce qui risque de poser des problèmes de droit
- Il n'est pas compatible avec les mods Forge
- MCServer:
Avantage:
- Projet écrit en C++
-
(+) Ainsi le projet pourrait être beaucoup plus performant que les serveurs actuels
-
(+) Il est multi-protocol, il fonctionne depuis Minecraft 1.2 jusqu'à la version 1.7.10
Inconveniant:
-
/!\ A moins que le projet n'inclue un binding Java, tout le code Java doit être réécrit en Lua.
- Il n'est pas compatible avec les mods Forge
- Craft.net:
Avantage:
- Projet écrit en C#
Inconveniant:
- Il n'est pas compatible avec les mods Forge
- Spout:
Avantage:
- Le plugin "BukkitBridge" permet une compatibilité avec Bukkit
Inconveniant:
- Projet peut actif
- Il n'est pas à jour sur Minecraft, il manque toutes les nouvelles fonctoinnalités qui doivent être entièrement recodé.
- Spout n'est qu'un outil, il faut le plugin "Vanilla" pour créer un serveur Minecraft
-
/!\ Le plugin "BukkitBridge" a de gros problèmes de performance, à cause de mauvais choix architecturaux
- Il faudra supprimer le code qui impose l'utilisation du client Spout, pour en faire un vrai serveur Minecraft
- Il n'est pas compatible avec les mods Forge
3/ Implementer l'API Bukkit sur un projet existant
Cela permettrai de rendre compatible les plugins Bukkit actuelle sur un autre serveur Minecraft, par exemple Forge ou Canary.
- BukkitForge:
Avantage:
- Construit par dessus le Forge
Inconveniant:
-
/!\ Le projet n'est plus à jour depuis longtemps
-
/!\ Il contient encore du code de Bukkit, ce qui risque de poser des problèmes de droit
4/ Créer une nouvelle API, ou une nouvelle implémentation
L'idée serait de refaire une API entièrement.
- TriddentSDK:
Avantage:
- Aucun
Inconveniant:
-
/!\ Projet beaucoup trop récent et incomplet
- Créer un nouveau projet:
Avantage:
- Pourrait être compatible avec l'API actuelle
- La possibilité de bien choisir une license: GNU ? GPL ? LPGL ? MIT ?
- Une liberté totale de ce qu'on souhaite en faire
- La possibilité de remappé les plugins Bukkit existant pour plus de 90% de compatibilité
- La possibilité d'intégrer l'API de Forge
- Doit être transparent et ouvert à la communauté
Inconveniant:
-
/!\ Beaucoup, beaucoup, beaucoup de travail
5/ Patch à l'éxécution de Bukkit
L'idée serait de supprimer le serveur de Mojang inclu dans Bukkit, il faudrait le télécharger séparement, il serait ensuité chargé par Bukkit lors de son éxécution.
Avantage:
-
(+) Utilisation de l'API Bukkit (les mods actuelle reste compatible)
Inconveniant:
- L'API de Bukkit appartient à Mojang
-
/!\ Cela reste très dangereux part rapport à la licence
6/ Patch à l'installation de Bukkit
L'idée serait de supprimer le serveur de Mojang inclu dans Bukkit, bukkit serait distribué seul, et un programme d'installation combinerait le serveur de Mojang avec Bukkit.
Avantage:
- Ne distribue pas le serveur de Mojang, respecte donc la licence de Mojang
-
(+) Utilisation de l'API Bukkit (les mods actuelle reste compatible)
- On peut étendre cette idée en supprimant tout le code de Bukkit et refaire l'API
Inconveniant:
- L'API de Bukkit appartient à Mojang
-
/!\ Moins dangeureux, mais cela reste très dangereux part rapport à la licence
7/ Attendre l'API de Mojang
L'idée est d'attendre tout simplement que Mojang sorte sa propre API officielle.
Avantage:
- Aucun
Inconveniant:
- Cela permettra de remplacer ce qu'on fait avec Bukkit, mais ne permettra pas de remplacer Forge qui permet aussi d'éxécuter du code coté client.
- Il s'agira probablement de l'API la moins fournit qui sera proposé
-
/!\ Cela risque d'être très long, probablement au moins un an (cela fait déjà 2ans qu'on attend)
8/ Créer une API sous forme de plugin qui se greffe sur le serveur de Mojang
L'idée est de créer un logiciel totalement independant qui viendrait se greffer à l'éxécution sur le serveur de Mojang pour modifier son fonctionnement.
Avantage:
- Fonctionnerai sur toutes les versions, y compris les snapshots
- Probablement très rapide à mettre à jour
Inconveniant:
- Probablement trop limiter sur le nombre de fonctionnalité. Certains estiment qu'on sera limité à modifier les paquets réseaux et aux fonctoinnalités des blocs d'éxécutions.
La solution la plus populaire:
La solution retenu devra répondre à certaines exigeances:
-
La plupart des contenus de la communauté étant écrit en Java, il est logique que le futur serveur soit lui même écrit en Java
-
Réutiliser le serveur de Mojang semble la solution la plus simple, il suffit de proposé un patch qui modifiera le code du serveur de Mojang afin d'injecter le code de l'API. Cela permettrait également aux plugins de faire de la reflexion (ndt: permet d'accéder au code du serveur depuis un plugin, sans passé par l'API).
-
Le client Vanilla (ndt: sans mod ni aucune extension, celui fournit par Mojang) devra pouvoir se connecter au serveur. Si on souhaite remplacer Bukkit, cette condition doit être respecté.
La solution qui semble réunir le plus de suffrage dans la communauté serait de réécrire une nouvelle API abstraite (comme dans Bukkit, pour que les plugins ne dépendent pas du code du serveur de Mojang, et donc ne casse pas à chaque mise à jour), cette API serait implémenté pour le serveur Forge, et peut être également Glowstone. Tout ceci pourrait ainsi donner naissance au projet
Sponge.
-
Forge est une API client et serveur déjà très populaire, avec de nombreux plugins, et une grande communauté.
-
Puisque Forge ne propose pas d'API abstraite, l'API en surcouche de Forge permettra de régler les problèmes d'incompatibilité à chaque nouvelle version de Minecraft
-
Les plugins forge qui utilise l'API abstrait pourront également utilisé le reste des fonctionnalités de Forge, ce qui reviendra un peu à la fonctionnalité NMS de Bukkit.
-
Glowstone est une réimplémentation totalement indépendant du serveur Minecraft. Il n'est pas basé sur le code de Mojang contrairement à Bukkit, Forge, Spigot ou Canary.
-
Glowstone implémente déjà l'API de Bukkit, les plugins Bukkit sont donc fonctionnel avec Glowstone. Cela est possible car Glowstone est open-source, il n'enfrain donc pas la GPL.
-
Il a été suggéré que quelque soit l'API retenu, Glowstone devrait l'implémenté également
-
Utiliser un serveur entièrement independant peut être un risque, les mises à jour peuvent prendre plus de temps. Il est donc important que la communauté de développeur du projet soit très active, afin de rapidement intégrer les dernières fonctionnalités de Mojang (possiblement les ajouter au rythme des snapshots)
-
L'écriture d'une nouvelle API pouvant prendre du temps, il est suggéré de réutilisé l'API du serveur Spout ou Canary pour réduit la charge de travail, cela ne signifiera cependant pas que l'API final sera identique à l'une de ces 2 API.
Affaire Bukkit : Les alternatives :