Serveur minecraft

Affaire Bukkit: les alternatives. EN-Minecraft – Resoudre les problemes d’un serveur MineCraft

Le 22 décembre 2019 - 10 minutes de lecture

Aidez-nous à financer le site: Rejoignez l'utile à l'agréable et profitez de FR-Minecraft sans pub en devenant VIP! Ou ajoutez FR-Minecraft dans vos exceptions, nous n'abusons pas des publicités

3 serveurs Minecraft sont maintenant fermés: CraftBukkit, Spigot, Cauldron / MCPC (et probablement d'autres), suite à la plainte de Wolvereness DMCA.

Le projet Bukkit semble définitivement mort: la liste des départs de l'équipe ne se termine jamais: déjà trente adieux au sein du staff Bukkit, Spout écrit que "Mojang possède une coquille vide". Les différentes communautés réfléchissent donc à leur avenir: quelles sont les alternatives au Bukkit?

Du côté de Mojang (propriétaire de la marque Bukkit), nous restons confiants et ils espèrent trouver une solution. Ils ont annoncé qu'ils mettront à jour Bukkit vers la version 1.8, et semblent confirmer cette annonce même aujourd'hui, malgré les plaintes en cours.

Dans robinet le projet est actuellement clos, mais md_5 (le chef de file du projet) se veut rassurant et annonce que les développements se poursuivent bien qu'ils ne puissent pas être partagés publiquement pour le moment. Ils espèrent que les problèmes actuels seront résolus rapidement afin de reprendre la diffusion du projet. Spigot semble même se rapprocher de Mojang, peut-être pour une fusion entre Spigot et Bukkit?

Dans Chaudron en revanche, nous sommes moins optimistes. L'ensemble du projet n'est pas perdu, rassure-t-il, seules les interactions entre Cauldron et Bukkit devront être supprimées, ils prévoient donc de se tourner vers d'autres serveurs, tels que Forge, Canary, Spout, etc. Le problème est qu'il risque de casser le plugins actuels.

Du côté des mods client / serveur, la question se pose également, donc le plugin SpoutCraft s'interroge sur leur avenir. "Bukkit est complètement mort" annoncent-ils, le plugin SpoutCraft ne peut pas fonctionner sans Bukkit, et le client SpoutCraft est presque inutile sans le plugin.
Ainsi Spout va céder la place à un nouveau projet: Sponge, un serveur qui sera basé sur Forge avec une nouvelle API basée sur SpoutAPI. La plupart des communautés et leur chef semblent enthousiasmés par cette solution. Le client SpoutCraft sera également adapté pour le serveur Forge, le nouveau devrait s'appeler Obsidian.

Mais il n'est pas obligatoire de créer un nouveau serveur, il existe déjà un autre serveur alternatif, avec chacun leur avantage et leur inconvénient, la communauté a donc dressé une liste:

Liste des solutions possibles:

1 / Utiliser un concurrent dans Bukkit

Ces outils fonctionnent sur le même principe que Bukkit, c'est à dire qu'ils sont basés sur le serveur Mojang (inclus ou non dans la source), et ils étendent les fonctionnalités.

– Canaries:
Avantage:

– Une licence très simple
– API bien documentée
– Canary peut être utilisé avec Forge, et CanaryLib permettra de faire un futur Chaudron
– Couche abstraite API (cela évite de casser les plugins à chaque mise à jour de Minecraft)
– Certains plugins Bukkit populaires fonctionnent déjà sur Canary

gênant:

/! Il comprend le serveur Mojang Minecraft, qui interrompt la licence Mojang
– La communauté est très petite, bien qu'ancienne et stable

– Minecraft Forge:
Avantage:

– Une très grande communauté

gênant:

– Une philosophie très différente de Bukkit: Forge partage autant de fonctionnalités que possible, sans abstraction, tandis que Bukkit cache beaucoup de code, mais ajoute une couche d'abstraction pour faciliter la maintenance du plugin
/! Nécessite un client modded! Mais cela sera corrigé pour 1.8 (et peut-être aussi pour 1.7)
/! Certains types de plugins seront toujours cassés lors des mises à jour, car Forge n'offre pas (et ne proposera jamais) une couche d'abstraction.
– Les performances ne sont pas aussi bonnes que Bukkit et Spigot
– Le code est difficile à lire et à maintenir, ce qui peut être un obstacle pour les futurs développeurs
– Il manque beaucoup de fonctionnalités déjà présentes dans Bukkit (mais cela peut être amélioré au fil du temps)

2 / Utiliser un projet totalement indépendant

Ces projets n'utilisent pas du tout le serveur Mojang pour fonctionner, ce qui signifie que tout le travail de Mojang est reproduit dans ces projets de manière identique, ou presque, un travail colosal donc.

– Glowstone:
Avantage:

– Projet très ancien et presque à jour
(+) Les plugins Bukkit existants sont compatibles

gênant:

– Le générateur mondial n'est pas inclus dans le projet
/! En général, le projet est en retard sur les fonctionnalités de Minecraft, car c'est un travail énorme de tout reprogrammer
/! Utilise la couche API de Bukkit, ce qui peut entraîner des problèmes juridiques
– Il n'est pas compatible avec les mods Forge

– MCServer:
Avantage:

– Projet écrit en C ++
(+) Le projet pourrait donc être beaucoup plus efficace que les serveurs actuels
(+) Il est multi-protocole, il fonctionne de Minecraft 1.2 à la version 1.7.10

gênant:

/! Sauf si le projet inclut une liaison 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 #

gênant:

– Il n'est pas compatible avec les mods Forge

– Bec:
Avantage:

– Le plugin "BukkitBridge" permet la compatibilité avec Bukkit

gênant:

– Le projet peut être actif
– Il n'est pas à jour sur Minecraft, il manque toutes les nouvelles fonctionnalités qui doivent être entièrement recodées.
– Spout n'est qu'un outil, vous avez besoin du plugin "Vanilla" pour créer un serveur Minecraft
/! Le plugin "BukkitBridge" a de gros problèmes de performances, en raison de mauvais choix architecturaux
– Il faudra supprimer le code qui nécessite l'utilisation du client Spout, pour en faire un véritable serveur Minecraft
– Il n'est pas compatible avec les mods Forge

3 / Implémenter l'API Bukkit sur un projet existant

Cela permettra de rendre les plugins Bukkit actuels compatibles sur un autre serveur Minecraft, par exemple Forge ou Canary.

– BukkitForge:
Avantage:

– Construit sur la Forge

gênant:

/! Le projet n'a pas été mis à jour depuis longtemps
/! Il contient toujours du code Bukkit, ce qui peut entraîner des problèmes juridiques

4 / Créer une nouvelle API ou une nouvelle implémentation

L'idée serait de refaire entièrement une API.

– TriddentSDK:
Avantage:

– Non

gênant:

/! Projet beaucoup trop récent et incomplet

– Créez un nouveau projet:
Avantage:

– Peut être compatible avec l'API actuelle
– La possibilité de choisir une licence: GNU? LPG? LPGL? MIT?
– Liberté totale de ce que vous voulez en faire
– La possibilité de remapper les plugins Bukkit existants pour plus de 90% de compatibilité
– La possibilité d'intégrer l'API de Forge
– Doit être transparent et ouvert à la communauté

gênant:

/! Beaucoup, beaucoup et beaucoup de travail

5 / Patch pour l'exécution de Bukkit

L'idée serait de supprimer le serveur Mojang inclus dans Bukkit, il devrait être téléchargé séparément, il serait ensuite chargé par Bukkit lors de son exécution.

Avantage:

(+) Utilisation de l'API Bukkit (les mods actuels restent compatibles)
gênant:

– L'API Bukkit appartient à Mojang
/! Cela reste très dangereux par rapport à la licence

6 / Patch pour l'installation de Bukkit

L'idée serait de supprimer le serveur Mojang inclus dans Bukkit, bukkit serait distribué seul et un programme d'installation combinerait le serveur Mojang avec Bukkit.

Avantage:

– Ne distribuez pas le serveur Mojang, donc respectez la licence Mojang
(+) Utilisation de l'API Bukkit (les mods actuels restent compatibles)
– Nous pouvons étendre cette idée en supprimant tout le code Bukkit et en refaisant l'API

gênant:

– L'API Bukkit appartient à Mojang
/! Moins dangereux, mais toujours très dangereux par rapport à la licence

7 / Attendez l'API Mojang

L'idée est d'attendre simplement que Mojang publie sa propre API officielle.

Avantage:

– Non

gênant:

– Cela remplacera ce que nous faisons avec Bukkit, mais ne remplacera pas Forge qui permet également d'exécuter du code côté client.
– Ce sera probablement l'API la moins fournie qui sera proposée
/! Cela peut être très long, probablement au moins un an (nous attendons depuis 2 ans)

8 / Créer une API sous forme de plugin greffé sur le serveur Mojang

L'idée est de créer un logiciel totalement indépendant qui s'ajouterait à l'exécution sur le serveur Mojang pour modifier son fonctionnement.

Avantage:

– Fonctionne sur toutes les versions, y compris les instantanés
– Probablement très rapide à mettre à jour

gênant:

– Probablement trop limiter le nombre de fonctionnalités. Certains pensent que nous nous limiterons à modifier les paquets réseau et la fonctionnalité des blocs d'exécution.

La solution la plus populaire:

La solution choisie doit répondre à certaines exigences:

  • La plupart du contenu 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 Mojang semble la solution la plus simple, il suffit de proposer un patch qui modifiera le code du serveur Mojang afin d'injecter le code API. Cela permettrait également aux plugins de se refléter (note: permet d'accéder au code serveur à partir d'un plugin, sans passer par l'API).

  • Le client Vanilla (note de l'éditeur: aucun mod ni extension, celui fourni par Mojang) doit pouvoir se connecter au serveur. Si vous souhaitez remplacer Bukkit, cette condition doit être remplie.

La solution qui semble recueillir 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 rompt pas avec chaque mise à jour) , cette API serait implémentée pour le serveur Forge et pourrait également être Glowstone. Tout cela pourrait 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é.

  • Étant donné que Forge ne propose pas d'API abstraite, l'API de superposition de Forge résoudra les problèmes d'incompatibilité avec chaque nouvelle version de Minecraft

  • Les plugins forge qui utilisent l'API abstraite pourront également utiliser le reste des fonctionnalités de Forge, qui sera un peu comme la fonctionnalité NMS de Bukkit.

  • Glowstone est une réimplémentation complètement indépendante du serveur Minecraft. Il n'est pas basé sur le code Mojang contrairement à Bukkit, Forge, Spigot ou Canary.

  • Glowstone implémente déjà l'API Bukkit, donc les plugins Bukkit sont fonctionnels avec Glowstone. Cela est possible car Glowstone est open-source, il ne défie donc pas la GPL.

  • Il a été suggéré que quelle que soit l'API choisie, Glowstone devrait également l'implémenter

  • L'utilisation d'un serveur totalement indépendant peut être un risque, les mises à jour peuvent prendre plus de temps. Il est donc important que la communauté des développeurs de projets soit très active, afin d'intégrer rapidement les dernières fonctionnalités Mojang (éventuellement les ajouter au rythme des snapshots)

  • L'écriture d'une nouvelle API peut prendre du temps, il est suggéré de réutiliser l'API du serveur Spout ou Canary pour réduire la charge de travail, cela ne signifie cependant pas que l'API finale sera identique à l'une de ces 2 API.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.