Plugin Résolu [DEMANDE INFOS] Quels progrès côté serveur depuis 2015 ?

JukeBoy_

Dev Fullstack | Ptit café puis ptit NodeJS
2 Juillet 2012
314
44
135
26
Paris
Bonjour a tous !

Il y a maintenant 3 ans je passais mon BAC, et cela faisait environ 4ans que je jouais. Une fois en études sup (en informatique) j'ai un peu délaissé le jeu.
J'avais pas mal trifouillé Bukkit et ses plugins à l'époque, sans trop m'y connaitre en programmation, même si celui-ci venait juste de mourir (Bukkit-Gate !).

Je reviens donc sur Minecraft avec un bagage un peu plus lourd, un niveau en JAVA correct, un très bon niveau en Javascript jQuery SQL et des bases solides en infrastructure Cloud : Admin Linux + Docker + Virtualisation. Cela parlera a ceux à qui cela doit parler :mobpig:.

Voilà le sujet de ce post, racontez moi des histoires, des infos, balancez tout ce que vous avez vu changer durant ces dernières années ! Des révolutions côté serveur ? Côté infrastructure serveur ? Changement sur les méthodes de travail ? Sur la création de plugins ? TOUT !!

Je me dis qu'il y a surement plus à faire qu'il y a quelques années, et je sens pouvoir découvrir des choses et progresser, tout en me basant sur quelque chose de fun, quelque chose de palpable une fois le tout mis en place, l'univers Minecraft !

Merci d'avance les kids je suis à votre écoute !
 
  • J'aime
Reactions: Alex Fatta

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Salut,

le sujet est assez large, même gigantesque enfaite. Je pense qu'un forum entier ne suffirait pas pour tout dire :')
Bref, allons-y pour du blabla xD

Alors, on va reprendre à la base, CraftBukkit. CraftBukkit a donc été peu à peu délaissé au profit de Spigot. Aujourd'hui, la plupart des serveurs tournent sur Spigot (spécial dédié à ceux qui sont encore sur CB) ou des forks. Au niveau des forks, je te citerais Paper que j'aime plutôt bien. Ces forks apportent vraiment un plus à mon avis car ils te permettent de toucher à plus d'options, de config, etc... et c'est vraiment sympathique d'avoir une diversité. ;)

Du côté de Bungee, c'est un peu pareil, de nombreux forks sont arrivés ; perso j'aime bien WaterFall. Pour avoir une vision d'ensemble, je te conseille de jeter un coup d’œil ici : https://yivesmirror.com/. Bungee reste quand même le plus utilisés il me semble. ;)

Maintenant, Sponge. Sponge existe donc sous deux versions principales : Vanilla et Forge. On pourrait qualifier Sponge comme un "Spigot du futur". Au niveau du code, Sponge a beaucoup plus tendances à utiliser des choses plus avancées et moins "Java 6": beaucoup plus d'annotations, les lambdas, plus de POO, etc... Côté programmation, c'est également plus proche des Mods que des plugins Bukkit/Spigot. Ce que je trouve très intéressant dans le projet Sponge, c'est Sponge Forge. Ça te permet d'avoir des Mods classiques (Minecraft Forge) et des plugins Sponge (qui ne sont donc pas compatibles avec ceux de Bukkit). Encore une fois, c'est une diversité que j'aime bien même si il y a quand même beaucoup moins de plugins sous Sponge. :(

Au niveau SGBD, je suis dans le regret de t'annoncer qu'il n'y a eu aucun changement : MySQL est toujours EXTRÊMEMENT majoritaire dans les plugins publics. Certains te proposent H2 éventuellement, mais pas de Postgre ou quoi que ce soit d'autres.

En général, je trouve qu'il y a une professionnalisation du domaine. Il existe toujours beaucoup de ce que je qualifierais de "petit projet" mais on voit de plus en plus de projets démarrer avec une grosse infra : du développement solide, plusieurs machines (serveur dédié), du multibungee, etc...

Pour la création de plugin, le Java est toujours majoritaire bien qu'il existe beaucoup de Skripts, qui deviennent de plus en plus professionnels et donc complexes. On a vu également, quelques plugins dans le langage Kotlin, depuis qu'il a fait le "buzz" avec l'annonce de Google d'ajouter le support sur Android, et c'est assez intéressant je trouve. Pour les plugins en eux-mêmes, il en existe aujourd’hui pour plus ou moins tout, gratuit, payant, Open-Source ou non ; bien que les "gros projet" se gardent bien au chaud leurs API.

Pour les cheateurs, car il fallait en parler, il existe aujourd’hui de plutôt bons anti-cheat gratuit mais qui malheureusement sont utilisés par trop peu de personnes à mon avis !

Un dernier point : les autres versions de Minecraft. Je ne sais pas si tu es au courant, mais le cross-play a été mis en place sur les autres versions de Minecraft (donc autres que Java, à savoir Win 10, Consoles, Téléphones, etc...). Ce cross-play a permis un mode multi-joueurs entre toutes ces plateformes. On voit donc des serveurs naitre sur ces plateformes, notamment Hypxiel qui avait fait une bêta sur Win 10 il y environ 8 mois. Des "Spigot" pour ces versions se sont donc développé, bien que ça n'inclut pas toutes les fonctionnalités du solo malheureusement ! On peut citer NukkitX ou PocketMine par exemple ! Ces versions représentent à mon avis un marché considérable pour les serveurs Minecraft, vu que tout n'est encore qu'au début de ce côté !

En résumé, professionnalisation du domaine et dans le même temps "ralentissement" au niveau de Spigot. Il est également important de notez une diversification assez bénéfique à mon gout. Également, il faut notez que c'est totalement possible aujourd’hui (encore plus que hier) de créer un projet cohérent qui tient la route avec des plugins (et des Skripts) si ont s'y met sérieusement et qu'on a des idées !


Désolé pour le désordre de mon message, ta demande est plutôt étrange et pas facile de tout structurer sachant que je ne sais pas ou m’arrêter. xD
En espérant que ce soit compréhensible, Mathéo.
 
Dernière édition:

JukeBoy_

Dev Fullstack | Ptit café puis ptit NodeJS
2 Juillet 2012
314
44
135
26
Paris
Merci beaucoup pour la réponse vraiment large !

Hmmm hmmm, après avoir tout lu voici mes questions :
- CraftBukkit est abandonné ? J'aimais vraiment bien, mais pour des questions de viabilité et de maintient, il vaut mieux passer sur autre chose ?
- Spigot serait pour du 100% plugins alors que Sponge serait plutôt pour la fusion Mod + plugins ? Ou alors, la version vanilla de Sponge fait environ le même boulot que Spigot ?
- Bon MYSQL c'est classique, c'est pas le feu, mais on va pas non plus leur demander de passer 5 10ans de Dev sous du MongoDB du jour au lendemain.
- Bungee c'est bien le plugin ou l'ensemble de plugin qui te permet de passer d'un monde a l'autre, que ces mondes soient sur le même serveur ou non ?
- Pour toutes les autres versions de Minecraft, prenons pour exemple Hypixel. Si un des mini-jeux est sur un serveur adapté à toutes les plateformes, toutes les versions pourront jouer dessus ? Tandis que si le mini-jeu n'est pas adapté a ma plateforme (Windows version disons), je ne vais pas pouvoir y jouer ? (Les librairies sont en PHP je me sens rassuré ahah)
- Quand tu dis des scripts, c'est un plugin en Java qui fait exécuter du javascipt côté serveur ? (NodeJS en gros)

C'est étrange mais je me dis que j'avais besoin d'un bon rafraîchissement ! Encore merci pour ta réponse ;)
 
  • J'aime
Reactions: Alex Fatta

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Re :D

- CraftBukkit est abandonné ? J'aimais vraiment bien, mais pour des questions de viabilité et de maintient, il vaut mieux passer sur autre chose ?
Il me semblait que oui mais c'est assez flou. Il existe une version pour Minecraft 1.12.2 (Dernière version sorti) mais c'est simplement du maintien à jour. La 1.13 nécessitant des changements massifs, je pense (j'espère) qu'il n'existera pas de CraftBukkit 1.13. Il suffit de regarder leur forum, sur la première page il y a des news de 2015, comme si le temps s'était arrêté et la dernière info à eux 3 commentaires pour 460k membres inscrits.

- Spigot serait pour du 100% plugins alors que Sponge serait plutôt pour la fusion Mod + plugins ? Ou alors, la version vanilla de Sponge fait environ le même boulot que Spigot ?
Pour une survie pure et dure, mieux vaut à mon avis utilisez le "Minecraft Server" car Spigot et Sponge sont déjà modifiées de base (quelques petits changements au niveau des ticks, timings, etc... rien de massif mais c'est quand même des changements). Personnellement, je vois Spigot pour de l'utilisation avec des plugins (utilisation classique) et Sponge Forge pour ceux qui souhaitent utiliser les Mods et Plugins sur des versions récentes de Minecraft. Donc, je n'utilise pas Sponge Vanilla, simplement pour avoir plus de potentiel niveau plugin (car il y a beaucoup plus de plugins sur Spigot que Sponge) même si je reconnais que ça peut être intéressant d'avoir un serveur plugin en Sponge, ça permet de changer des plugins "classiques" ! ;)

- Bon MYSQL c'est classique, c'est pas le feu, mais on va pas non plus leur demander de passer 5 10ans de Dev sous du MongoDB du jour au lendemain.
Ouais mais j'ai l'impression que tout le monde sait que MySQL est trop vieux et qu'il faudrait arrêter de l'utiliser (quitte à passer sur Maria à la limite, c'est très proche et quand même bien mieux) mais personne ne fait rien. Tout le monde continue de l'utiliser et donc on reste dans "le passé". Franchement c'est dommage mais si les développeurs et les hébergeurs ne font rien ça restera comme ça...

- Bungee c'est bien le plugin ou l'ensemble de plugin qui te permet de passer d'un monde a l'autre, que ces mondes soient sur le même serveur ou non ?
Non x) BungeeCord est un serveur qui te crée un réseau de serveur (proxy). Au lieu de te connecter à ton serveur Spigot, tu te connectes à BungeeCord et, une fois dessus, tu peux changer entre les serveurs qui sont reliés à ce Bungee. Ainsi, avec une simple commande tu peux changer d'un lobby à un serveur de jeu, etc... Et c'est vraiment des serveurs Minecraft différents, ce n'est pas des mondes ; ces serveurs peuvent être hébergées sur des machines à des milliers de kilomètres et ça fonctionne ! Tous les gros serveurs style Hypixel utilisent ça pour facilement naviguer entre les serveurs. Sauf qu'eux ils n'ont pas un seul proxy BungeeCord mais des dizaines car un seul n'est pas suffisant pour tenir tous les joueurs (et ça c'est du multibungee).

- Pour toutes les autres versions de Minecraft, prenons pour exemple Hypixel. Si un des mini-jeux est sur un serveur adapté à toutes les plateformes, toutes les versions pourront jouer dessus ? Tandis que si le mini-jeu n'est pas adapté a ma plateforme (Windows version disons), je ne vais pas pouvoir y jouer ? (Les librairies sont en PHP je me sens rassuré ahah)
Il faut différencier deux choses radicalement différentes :
  • La version Java, càd la version "originelle" de Minecraft, ou encore la version Pc (enfin bref, le nom n'a aucune importante) ;
  • Les autres versions, sous le nom de Minecraft Bedrock : Minecraft version Windows 10, Minecraft sur téléphone, Minecraft sur console (bon en vrai c'est un peu plus complexe que ça mais c'est l'idée) ;
Tous les joueurs sur la version Java peuvent jouer ensemble et tous les joueurs possédant Minecraft Bedrock peuvent également jouer ensemble mais des joueurs de la version Java ne peuvent pas jouer avec des joueurs de Minecraft Bedrock. Il existe donc vraiment deux mondes séparés. Les joueurs de la version Java peuvent jouer sur les serveurs comme on les connait (Hypixel, HiveMC, Epicube, etc...) et les joueurs de Minecraft Bedrock ont d'autres serveurs que je ne pourraient pas te citer, mais qui tournent pas sous Bukkit ni Spigot mais avec des équivalents adaptés pour ces versions (et développer en Php généralement). Il faut savoir que les deux Minecraft (version Java et Bedrock) ne sont pas développés dans le même langage, ni par la même équipe, mais les fonctionnalités sont globalement les mêmes mais donc les serveurs non. J'espère avoir été clair, ceci nécessiterait presque un topic dédié, si tu as encore des questions, vas-y ! ;)

- Quand tu dis des scripts, c'est un plugin en Java qui fait exécuter du javascipt côté serveur ? (NodeJS en gros)
Ah non, je me suis mal exprimé. xD Skript c'est une sorte de "mini langage de programmation simplifié" pour Minecraft. Je ne suis pas la bonne personne pour en parlé étant donné que je n'en aie jamais fait, mais en gros tu installes 3/4 plugins sur ton serveur Spigot et ensuite tu peux créer des Skripts, c'est des fichiers .sk dans lesquels tu peux mettre du code relativement simplement. Par exemple, ça c'est un Skript de broadcast :
Code:
options:
    #If you write - no message will be showing
    auto.msg.1: Test1
    auto.msg.2: Test2
    auto.msg.3: Test3
    auto.msg.4: -
    auto.msg.5: -
    auto.msg.6: -
    auto.msg.7: -
    auto.msg.8: -
    auto.msg.9: -
    auto.msg.10: -
    #Automic Messages Cooldown
    auto.msg.cooldown: 60 second
    #Automic Messages Prefix
    auto.msg.prefix: &8&m               &c&l Broadcast&8&m               &c

on load:
    clear {automessages::*}
    "{@auto.msg.1}" is not "-":
        add "{@auto.msg.1}" to {automessages::*}
    "{@auto.msg.2}" is not "-":
        add "{@auto.msg.2}" to {automessages::*}
    "{@auto.msg.3}" is not "-":
        add "{@auto.msg.3}" to {automessages::*}
    "{@auto.msg.4}" is not "-":
        add "{@auto.msg.4}" to {automessages::*}
    "{@auto.msg.5}" is not "-":
        add "{@auto.msg.5}" to {automessages::*}
    "{@auto.msg.6}" is not "-":
        add "{@auto.msg.6}" to {automessages::*}
    "{@auto.msg.7}" is not "-":
        add "{@auto.msg.7}" to {automessages::*}
    "{@auto.msg.8}" is not "-":
        add "{@auto.msg.8}" to {automessages::*}
    "{@auto.msg.9}" is not "-":
        add "{@auto.msg.9}" to {automessages::*}
    "{@auto.msg.10}" is not "-":
        add "{@auto.msg.10}" to {automessages::*}

every {@auto.msg.cooldown}:
    if size of {automessages::*} is bigger than or equal to 1:
        set {_msg} to random element out of {automessages::*}
        broadcast "{@auto.msg.prefix}"
        broadcast ""
        broadcast "%{_msg}%"
        broadcast ""
        broadcast "{@auto.msg.prefix}"
Pas besoin d'un IDE, c'est moins lourd, moins difficile et moins complexe que le Java donc c'est plus abordable pour les plus jeunes ou ceux qui ne veulent pas apprendre de langage de programmation.

En espérant que ce soit compréhensible xD
Mathéo.
 
Dernière édition:

JukeBoy_

Dev Fullstack | Ptit café puis ptit NodeJS
2 Juillet 2012
314
44
135
26
Paris
Merci ! Là j'ai une bonne partie des infos qu'il me faut.
Je vais me tâter à un projet quasiment purement infra, BungeeCord va surement être au cœur de la techno Minecraft, c'est certain. Après pour l'infra je pense a du Docker ou du Kubernetes sur AWS. Le tout pouvant être lancé à la volée, depuis un catalogue de version (en gros, un environnement clef en main en quelques clics, porté par l'API Amazon, avec des serveurs Spiggot pré-configurés).
Ça fera 50% d'AWS, 25% de config serveur, 25% de Minecraft environ.

En tout cas merci pour tes réponses ! J'ai appris que je devais oublier Bukkit et compagnie, me tourner du côté de Spiggot pour les serveurs, et BungeeCord pour relier mes différentes instances !
Hésite pas à venir discuter à l'occasion, que ce soit de n'importe quoi ! :rolleyes:
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Re,

pas de soucis, n'oublie pas les forks de Spigot/Bungee, ils peuvent vraiment être sympas. :D

PS: Tu as la balise "Résolu" pour signaler que ton ""problème"" à trouver réponse. ;)