>> La recherche se fait sur tous les élements du jeu Minecraft <<

Minecraft Java ouvre son code source à la communauté

Le 07/10/2018 à 1h51

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 !
Cet article a été publié par Tronics, le 2018-10-07 01:51:59. Source
Validé par  Tronics. Dernière modification par  Tronics le 07/10/2018 à 2:02.
Partager :
Commentaires de la news Minecraft
Minecraft Java ouvre son code source à la communauté :
Tronics (administrateur)
le 07/10/2018 à 01:55
Ça m'a fait bizarre de cité une ancienne news vielle de plus de 7ans ! Il y a 7ans le site était déjà la, et c'était déjà moi qui prenait plaisir a partager toute l'actualité de Minecraft avec vous :-) Qui était déjà la lors de la publication de cette news annonçant que Notch aller ouvrir le code source de Minecraft ?

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.
le 07/10/2018 à 08:38
ouhlalaaa .o.
merci pour la news tronics , ca semble interessant tout ca :3
franswa (modérateur)
le 07/10/2018 à 08:50
Concernant blaze3d, j'ai pas compris si, s'ils ouvraient le code source, ils le feraient avant la 1.14 ou pas. Car s'ils ouvrent le code source avant la 1.14, l'effet de bord serait un énorme coup dur pour optifine, qui deviendrait d'un coup beaucoup moins populaire et ne servirait plus que pour tweaker le jeu pour le rendre plus beau... Sous réserve que ce soit encore possible, car le gars pouvait mettre à jour facilement son mod justement car le moteur de rendu n'avait presque jamais changé! Là il est entièrement réécrit et Dinnerbone dit même sur Reddit que dans un premier temps, ils chercheront à faire en sorte d'améliorer les performances.
le 07/10/2018 à 10:24
Rolalala je sais pas si j'était là au moment de l'annonce mais ça fait 7 ans (Pome38) que je suis sur Fr-Minecraft et que je suis tes News de qualité, je suis même encore sur le Freebuild-FRM que tu avait lancer :). En tout cas je trouve ça super que l'idée de bases de faire participer à mort la communauté soit toujours respecter, tout seul on va plus vite ensemble on va plus loin.
le 07/10/2018 à 11:38
@franswa à la fin j'ai aussi pensé à optifine, et la 1.13 fut quand même compliqué à mettre à jour puisqu'il prend du temps à sortir, d'autant plus que certains aspects techniques sont forcément utilisés. Mais là je me demande si le dev va tenir le coup...
le 07/10/2018 à 12:34
Il ne faut pas oublier que Optifine, ce n'est pas que pour l'optimisation. Il y a aussi un support des Shaders et beaucoup d'ajout pour les resource packs ;)
Et puis avec sa réputation, même si Mojang améliore grandement les performances, il est fort probable que beaucoup de gens le prennent tout de même par sécurité (sans compter les nombreuses options que ce dernier propose en matière de performance).
Donc c'est sûr qu'il risque de prendre un coup, mais à mon avis, il n'est pas prêt de tomber !
franswa (modérateur)
le 07/10/2018 à 14:48
Ah, au fait, on peut voir que minecraft est développé avec intellij idea. Je pense que ça risque de faire réagir certains.

Sinon, je suis le seul à voir ici les prémices de la fin de la version java? Notch avait déjà dit que le jeu deviendrait open source lorsqu'ils arrêteront le support et jeb avait dit plus récemment que la version java était ammenée à devenir une version dirigée par la communauté. Si cette ouverture est un succès, il n'est pas impossible que l'équipe java finisse par être réduite et que le jeu finisse par devenir un projet open source en rolling release, sans vrai objectif.
le 07/10/2018 à 15:31
Franswa, c'est clair, c'est forcément de plus en plus le "début de la fin" ^^
Dans deux ans on ne peut pas prévoir ce qu'il en sera, mais ça pourrait très bien être déjà arrivé.
TheJedi7_offline (anonyme)
le 07/10/2018 à 17:27
@franswa non, j'ai la même peur, que j'avais déjà lorsque Bedrock fut lancé. J'ai l'impression que cette version va prendre de plus en plus le dessus. Et puis la license MIT de la part de Microsoft j'aime pas vraiment ça. (MIT ça protège seulement le copyright, après tu peux faire ce que tu veux.) Mais en 2014 les gens avaient eu de fausses peur, pensant que c'était la fin, mais finalement le jeu est toujours là. Peut-être cherchent-ils juste à améliorer le jeu en s'aidant un peu plus de la communauté (c'est déjà assez intégré, avec les snapshots). Et puis si c'était le souhait de Notch... Après oui c'est inquétant.
le 07/10/2018 à 21:27
je pense pas que ça arrive dans le plus ou moins cours terme, car si la version java est arrêté, une partie java va allé sur bedrock. 'w' hors pour être attiré par une autre version d'un jeu comme minecraft il faut sois que la version soit radicalement differentes, soit entierement pareil mais pour le moment on est plus entre les deux ",,'> … donc si minecraft java était arrêté dans le court terme les joueurs auront soit droit a une version personnalisable mais pllus en développement, ou une version pas du tout personnalisable mais encore mis a jour, si ils font ça il y aura des grosses pertes du côté java donc je ne pense pas que ça soit dans l'intérêt de mojang ! ^¬^
Tronics (administrateur)
le 08/10/2018 à 01:27
NoXiD: Le vrai problème c'est que la version Bedrock ne fonctionne pas sur PC ;-) (ou plus exactement elle ne fonctionne que une part mineure des PC). Donc pas de risque de voir disparaitre la version Java pour le moment !

Perso je voit plus dans cette ouverture une envis d'accellerer a moindre cout, et peut être comme le dit franswa de concurrencer optifine, car Mojang a déjà racheter la plupart des projets communautaires (MCP, ukkit, certains mods comme Mo-creature, etc.), mais pour optifine l'auteur a refuser de vendre.
En tout cas, je doute que cette ouverture ai un quelconque lien avec le souhait de Notch. Notch voulais le faire pour facilité le modding, et sous condition, hors ici vu il c'est une ouverture total, sans condition, et les libs ouvertes n'aideront clairement pas le modding du jeu.

@franswa : C'est quoi "intellij idea" ? C'est un IDE ? oui pour un dev ca craint de pas savoir ça, mais moi a part Visual Studio j'utilise pas grand chose comme IDE. Pour les sites j'utilise meme pas d'IDE, je me contente d'un sublime text avec quelques plugins, et je doit avoir un vieux eclipse qui traine quelque part que j'utilisait pour les plugins des serveurs Minecraft il y a quelques années, ainsi que pour quelques projets communautaires et raspberry pi, mais c'est tout.
Et surtout, c'est quoi le soucis ? Surtout que c'est juste une capture d'écran, probablement de Dinnerbone, il me semble avoir lu dans des tweets que chaque développeur choisit plus ou moins son IDE, je sais que certains développent utilisent VS notamment.
Banabap (anonyme)
le 08/10/2018 à 07:26
@tronics
Bedrock ne fonctionne pas sur une partie mineur des PC : Windows 10 est depuis cette année le système d’exploitation majoritaire des ordinateurs plus ou moins égal avec Windows 7 (les chiffres sont très imprécis entre les sites). Cela fait quand même 40% des utilisateurs de Windows et ce chiffre ne cesse d’augmenter (logique avec l’achat de nouveaux ordinateurs).
Abandonner Java serait une erreur maintenant...mais quid de l’abandonner dans 3 ans..?
franswa (modérateur)
le 08/10/2018 à 08:12
@banabap laisse tomber, tronics est un cas désespéré XD. Moi je lâche l'affaire.

@tronics intellij idea est l'éditeur java edité par jetbrains. Il est particulièrement connu car il sert de base à android studio, l'IDE recommandé par google pour développer sur android.
A la question de savoir quel est le problème, en soit, il y en a pas. Le seul truc, c'est que pour dev du java, c'est pas comme en c++ ou tu dois choisir ton ide en fonction du type de projet que tu veux faire. En java, tu choisis ton IDE selon tes préférences perso, et là les avis divergent, et les utilisateurs de netbeans, d'eclipse et d'intellij idea hésitent généralement pas à se troller entre eux.
le 08/10/2018 à 09:54
si ca continue je vais offrir un PC sous windows 10 a tronics XD

avec ca peut etre qu'il fera des serveurs PE pour FR-minecraft ( ouh le vilain forcing ) xD
le 08/10/2018 à 10:21
Plop,
Je comprends definivement pas qu'est ce qui vous amène à croire à la fin imminente de la version Java !?
Ces dernières années l'équipe Java n'a eu semble il de cesse d'augmenter et surtout les projets de devenir de plus conséquent.
Si ils comptaient réel ouvrir le code à la communauté et abandonné le dev, ils se lancerait sûrement pas dans de tel travaux.
D'autre part, quid de l'équipe Java ? Je vois mal Mojang licencié tout le monde sous prétexte qu'il préfère misé sur la version c++ !

Pour en finir avec Microsoft, je pense également qu'il y a beaucoup de fantasmes sur leur réel objectifs, mais honnêtement personnes ne sais vraiment qu'est ce qu'ils ont en tête. En faites ils y a même des chances qu'eux même ai vu leur objectifs évolué au file du temps.
Souvent on a tendance à considérer Microsoft comme une genre de super entité doué de conscience, en oubliant que c'est d'abord des gens, des équipes, qui peuvent changer, à leur idées, leur affinités et leur propre vision des choses.
Même si cette entreprise est plutôt controversé à juste titre sur pas mal de sujets, leur choix est toujours motivés par des intérêts, ils peuvent autant néfastes que positifs.

Pour Intelij c'est personnellement un des meilleurs IDE que j'ai eu entre les mains. Mais il est payant, à noter que la licence est gratuite pour les étudiants durant un an, au delà il est tjrs possible de l'utiliser mais pas de le mettre à jour.

Ygg.
Test1212 (anonyme)
le 08/10/2018 à 19:28
Ah tiens j'utilise pycharm pour quelques projets, intellij idea est donc probablement similaire, et donc plutôt bien! Et puis y' aurait pas de toute façon du troll peu importe l'ide, si troll il y a?
Noximilien01 (anonyme)
le 08/10/2018 à 19:28
Ça fais depuis 2014 que certain disent dans 2 ans Minecraft java sera mort. Arrêter la parano au bout d'un moment...

Durant les pre de la 1.13 que mojang disent qu'ils veulent qu'ont puissent refaire Minecraft depuis la base et que les datapack n'était pas encore complet. Cette news n'a rien de surprennant. Ils ne font que faire ce qu'ils ont dit il y a un moment. Pourtant quand ils ont annoncer ça j'ai pas vu de '' il von abandoné minekraft java ''
franswa (modérateur)
le 08/10/2018 à 20:44
@Noximilien01 j'ai dit "la fin" de la version java, et non "la mort". En effet, dans ma bouche, "la fin", c'est le moment ou Mojang arrêtera les mise à jour. Cette date là arrivera je pense quand la mod API bedrock sera bien avancée. "la mort", par contre, ce sera le moment ou plus personne y jouera. Ce moment ne risque pas d'arriver de sitôt, il suffit de voir le nombre de joueur qui joue encore en 1.8.9, version qui date de… 2015!!! Dès que la version java ne sera plus maintenue, ce sera l'explosion du moddée. Le jeu tiendra au moins 4 ans à un haut niveau d'utilisation je pense.
Noximilien01 (anonyme)
le 08/10/2018 à 20:58
Ce n'est pas car tu voyais pas ça en 2014 que personne ne le disait ( No joke )
franswa (modérateur)
le 08/10/2018 à 21:20
@Noximilien01 étant donné que j'ai été le premier sur ce topic à parler de la fin de la version java, je me suis logiquement senti visé par ta remarque. J'ai juste expliqué mon point de vue. Après, il y a beaucoup d'autres personnes qui disent la même chose, mais qui ne pensent pas du tout la même chose que moi.
Tronics (administrateur)
le 09/10/2018 à 03:48
Pour en finir avec ce mythe que cette ouverture est la fin de la version Java, je me permettrai de paraphraser Dinnerbone qui disait qu'il ne faut pas oublier que le jour ou la version Java s'arretera il sera au chomage (même si c'est probablement exagéré, mais il a malgré tout était recruté spéciofiquement pour developper Minecraft). Donc sachant que dans le cas présent c'est Dinnerbone lui même qui s'est occupé de l'ouverture de ces modules, je doute fortement qu'il faille y voir un signe de la mort de l'édition Java.

Banabap: UN ordinateur ce n'est pas juste windows, ca peut etre linux et mac ;) Et Bedrock ne fonctionne pas non plus sur linux ni mac... donc la version Java a encore de l'avenir. Je ne dit pas qu'elle durera aussi longtemps que la version Bedrock, car mojang et microsoft ont tout interet a imposer la version bedrock qui propose très peu de contenu gratuit mais énormement de DLC payant, mais pour le moment ce n'est pas envisageable de mon point de vue, et ca n'arrivera pas avant un bon moment... reste a savoir combien de temps sera ce moment, et ca personne ne le sais encore.
S'il faut atteindre que l'edition Java atteigne les chiffres de l'edition Apple TV c'est pas demain la veille qu'ils vont arreter la version Java ;)

Et puis je pense qu'il y a une choses qu'on ne prend pas assez en compte, c'est un effet psychologique. Pour une part importante de la communauté (pour ne pas dire la très grande majorité), le vrai Minecraft c'est n'est pas celui que Mojang appelle "Minecraft" (Minecraft Bedrock), ca reste la version Java. La version Bedrock autant pour beaucoup une sous-version. Même si la version bedrock rattrappe, et même dépasse la version Java en terme de fonctionnalité j'ai peur que psychologiquement un arret de version Java sera vécu par la communauté par un arret de Minecraft tout cours, et ca pourrait etre très mauvais pour l'avenir de la version Bedrock elle même (car c'est la communauté qui fait vivre Minecraft, qui en parle, qui la montre, qui fait qu'elle est si connu). Donc rien que pour ca je pense que ca ne serait pas dans l'interet de personne d'arreter, ni maintenant ni plus tard, la version Java.
franswa (modérateur)
le 09/10/2018 à 08:21
@tronics de toute façon, vu le temps qui leur a déjà fallu entre l'annonce de la mod API et la sortie de la première preview, je pense que le jour ou cette mod API sera assez intéressante pour éventuellement concurrencer forge n'est pas pour tout de suite. J'ai jamais dit que la fin de la version java était imminente, j'ai juste dit qu'ils commençaient à la préparer, en associant la communauté à une partie de son développement.
Le_mage (anonyme)
le 09/10/2018 à 13:09
Il est clair que Dinnerbone ne va pas annoncer comme ça la version Java c'est fini, vu que c'est son principal gagne pain. Mais il ne faut pas oublier que ce qui fait vivre la version java depuis tant d'années ce sont les mods. et aujourd'hui des moddeurs il y en a de moins en moins pour cette version. Et ce n'est pas les quelques joueurs sur Apple qui vont changer la donne.

Après si Dinnerbone doit travailler par la suite sur version C++, il est programmeur, il doit savoir faire. D'autant que la stratégie de Microsoft est de mutualiser les développements des deux versions (pour au final en faire disparaître une comme souvent)
Tronics (administrateur)
le 10/10/2018 à 06:48
Le_mage: Il est développeur, pas programmeur :-P (Un développeur ne fait pas que pondre du code, il faut aussi de l'ingénieurie: étude et conception, architecture logiciel, etc.) ^^
Et pour la mutualisation, permet moi d'en douter, sachant qu'ils ne sont même pas foutu de developper la version Bedrock par une seule équipe lol (la moitié se fait dans les locaux de Microsoft, l'autre moitié en Suède chez Mojang), Donc qu'ils commencent d'abord a n'avoir qu'une seule équipe pour la version Bedrock s'ils veulent mutualiser ^^

Vous devez être connecté pour laisser un commentaire.