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
Il y a 7ans et demi,
Notch (le créateur de Minecraft) annonça qu'il permettrait aux créateurs de mods d'accéder au code source de Minecraft, sous quelques conditions. Le but de cette ouverture du code source étant de facilité la vie des moddeurs.
7ans et demi plus tard une partie du code source est maintenant disponible, accessible, et utilisable par tous, mais pour des raisons très différentes.
Il ne s'agit en réalité pas du code source complet du jeu, mais de certains modules, ce qu'on appelle des bibliothèques (library) extraite du code source. Ces bibliothèques ont été développé spécifiquement pour Minecraft Java, elles sont utilisé par le jeu, et maintenant nous avons la possibilité de les télécharger et de les réutiliser dans nos propres projets !
La licence d'utilisation de ces libs est la licence MIT, probablement la license open-source la plus ouverte qui existe, elle ne fait qu'une dizaine de lignes, pour vous expliquer qu'il est possible de faire quasiment tout ce qu'on veut avec ce code source (le lire, le modifier, le partager, le packager, voir même le revendre...) à la seule condition de citer l'auteur.
Chacun pourra donc télécharger ces bibliothèques librement, les réutiliser, les modifier, voir même les améliorer... et pourquoi pas retourner les versions améliorée et debuggée à Mojang ? C'est sur ce point que Mojang y trouve son intérêt, cette ouverture permet de faire participer la communauté directement au développement du jeu !
Mais pour revenir à l'introduction de cette article, les moddeurs y trouveront aussi un intérêt, puisqu'ils pourront utiliser plus simplement ces bibliothèques dans leur mod, permettant un développement simplifié, et une meilleure intégration du mod dans le jeu.
2 bibliothèques ont été publié cette semaine sur le
github de Mojang:
Brigadier
Brigadier est le nom de code de l'analyseur (parseur) de commandes sur lequel Dinnerbone a travaillé pendant plusieurs mois pour la version 1.13, c'est lui qui permet notamment d'avoir la coloration syntaxique des commandes en couleurs quand on les tape:
Le role de Brigadier est d'analyser le texte taper par le joueur, de le découper en morceau, puis d'essayer de comprendre ce que le joueur souhaite faire avec ces morceaux.
Dès qu'on commence a taper un "/" dans le tchat, ce composant s'active:
Grace a cette analyse, il est capable d'indiquer s'il y a une erreur de syntaxe, ou au contraire de proposer des suggestions contextuelles pour aider les joueurs à terminer la commande:
C'est également grâce au découpage et a l'analyse sémantique que Brigadier est capable d'afficher le texte en couleur.
Concretement Brigadier prend en entrée une chaine de caractère (celle du tchat), et retourne un structure complexe contenant le résultat de l'analyse. Bien que son fonctionnement soit complexe, Dinnerbone espérant que l'ouverture de ce code source permettra à la communauté de proposer des amélioration, et de permettre aux commandes de devenir à terme plus simple a utiliser. Il espère ainsi que plus de joueurs pourront les utiliser.
Dinnerbone ajoute que cette bibliothèque peut être utilise n'importe ou, y compris en dehors d'un jeu: Il est par exemple possible de s'en servir sur un tchat sur internet pour en faire un bot qui analyse le texte qu'on lui dit.
Brigadier peut être téléchargé depuis ce github:
https://github.com/Mojang/brigadier
Data Fixer Upper
Cette deuxième bibliothèque permet de résoudre un problème bien connu des développeurs de jeux vidéos: mettre a jour les sauvegardes des joueurs faites dans une ancienne version du jeu (d'une version a l'autre de nouveau elements sont ajouter, des ID de blocs et items peuvent changer, etc). Ce problème classique pour tous les jeux est encore plus important pour Minecraft, seul les chunks visité par le joueur son mise à jour lorsqu'il joue, il est donc possible dans un même monde d'avoir des chunks a jour, d'autres chunks de la versions précédente, et certains chunks rarement visités qui sont dans une version du jeu qui peut dater de plusieurs années.
A chaque fois que le jeu essaye de charger un chunk, le chunk passe donc dans cette bibliothèque Data Fixer Upper, qui va analyser la version du chunk, et mettre a jour toutes ses données dans la versions actuelles du jeu. Ensuite le jeu charge le chunk de manière transparente, puisque toutes les données ont été convertie dans le bon format.
Data Fixer Upper peut être téléchargé depuis ce github:
https://github.com/Mojang/DataFixerUpper
Blaze3D
Blaze3D pourrait être la prochaine bibliothèque a être rendu open-source par Mojang. Derrière ce nom de code se cache un nouveau moteur de rendu 3D qui devrait être utiliser par Minecraft Java 1.14, autrement dit il n'est pas encore disponible dans le jeu. Cela permettrait donc à la communauté de participer activement au développement et à l'optimisation de Minecraft en version 1.14, sans être obligé d'attendre pendant des mois que Mojang applique les patch fournit par la communauté sur le bug tracker ! :-)
D'autres libs devraient être ouverte progressivement prochainement, cela dépendra du retour et de l'implication de la communauté qui pourrait accélérer les choses !
Pour revenir à la news, petit fail dans la source de Mojang, On sent bien que l'auteur de l'article ne comprend rien a ce qu'il écrit, il ne s'en cache pas, et 80% de l'article sont des citations de Dinnerbone. Mais le fail c'est que la capture d'écran qui illustre Data Fixer Upper... est une capture d'écran du code source de Brigadier lol.