La 1.7
-
Salut à tous,
Comme vous le savez surement, la 1.7(.2) est sortie aujourd’hui vers 15h (enfin hier comme il est minuit passé).
Contrairement au autre mise à jour, la 1.7 est une mise à jour classé extrêmement importante (côté code) et donc compliqué.
En effet, on compte plus de 1,104 commits qui ont changés plus d’un million de ligne de code (source : mojang.com)
Le système de son à été entièrement réécrit, tout comme le système du network. De plus, minecraft est arrivé presque à bout des 256 ID de blocs, le système d’id à donc été refait, et selon les tweet de cpw et searge, les variables blockID et itemID n’existe plus, c’est donc aussi un changement majeur. Pour l’instant je ne sais pas du tout à quoi ressemble se nouveau système.Durant ce dernier mois, j’ai donc suivie de près le twitter de cpw et de lex ainsi que celui de Searge, afin de vous proposer un petit résumé en français des changements. On peut donc conclure que :
- À cause des nombreux changement, MCP doit être réécrit, il y en a pour plus d’une semaine.
- Même chose du côté de forge & FML, lex et cpw vont en profiter pour faire quelques changements.
- cpw pense que beaucoup de moddeur vont laisser tomber leurs mods en 1.6.4, (mais on va lui prouver que non en montrant que nous les français, on a du courage, :D.
- cpw pense qu’il n’y aura pas de gros serveur moddé 1.7.x avant 2014 …
- La 1.7.x est une mises à jours encore plus compliqué que la 1.3.x (pour ceux qui l’ont connus).
- La 1.7 est un long chemin.
- Forge mettra au moins un mois pour la mise à jour.
- Seul environ 20 % de votre code 1.6.4 sera encore utilisable en 1.7.x
- Forge utilisera gradle pour la compilation, (projet github), je ne sais pas vraiment quel seront les conséquences, mais vu les sources du projet, il y a de forte chance que forge va proposer un système qui vous permettra de compiler vos mods plus facilement.
En suivant les pull request et les issues sur le github de Forge, on peut aussi conclure que :
- Le LanguageRegistry sera retiré au profit des fichiers de lang externe qui gère mieux le language et plus pratique pour les traducteurs. (source (oui c’est vieux, je vous dis depuis longtemps d’utiliser les fichiers de lang externe))
- L’event de placement et destruction de bloc qui ont été laissé de côté car ils allaient casser la compatibilité seront normalement fusionner, un bon avancement pour la compatibilité bukkit/forge (mcpc plus)
Bref, sur ce je vous souhaite une bonne chance et beaucoup de courage pour cette mise à jour.
De mon côté je vais suivre tout la reconstruction de Forge afin de vous proposer des tutoriels à jour au plus vite.
N’hésitez pas à faire de même en créant un compte github et en cliquant sur le bouton Watching des projets de forge :
-
Lex vient de poster un message concernant la 1.7 sur le forum officiel de forge :
http://www.minecraftforge.net/forum/index.php/topic,13353.0.htmlJ’ai donc quelque information supplémentaire :
- La limite des 4096 id de bloc existe toujours.
- Pour remplacer le field blockID, il y a deux nouvelles fonctions static : Block.getByID(int)/Block.getID(Block)
- Grâce au nouveau système de network, il est possible de synchroniser des trucs à la connexion, les id de bloc et item vont donc être synchronisés, ce que veut dire que c’est la fin des conflits d’id entre le client et le serveur.
Et pour ceux qui sont intéressé, voici quelques extraits de code de la 1.7 décompilés avec jd-gui (donc sans les nom srg, avec les noms en gros bordel)
L’équivalent de Block.java
Une nouvelle classe ou les blocs sont déclarés -
Mmh… Je pense que :
- La 1.7 est surement une des màj les plus complètes de Minecraft donc une update des mods est NECESSAIRE
- La 1.7 change TROP de choses niveau API, je vais rester un bon bout de temps en 1.6.x (je code en 1.6.2/1.6.4)
-
De toute façon on ne peut pas passer nos mods en 1.7 le temps que forge n’est pas à jour, et pour que forge soit à jour, il faut que mcp soit à jour, donc on a du temps devant nous.
-
va y avoir du boulot
-
Je sais pas pourquoi mais j’ai l’impression que forge en 1.7 va très légèrement être fatal pour certains mods…
-
De toute façon, tous les mods devront être recodé à zéro quand forge 1.7 sortira… ^^ LexManos et CPW reprennent à zéro le projet, et de même pour le créateur de MCP -> Searge.
-
Bon :
1 mois pour recoder forge et mcp
2 mois pour recoder les modsJoie.
-
IMPORTANT
En 1.7, les items et blocs seront enregistrer sous forme de nom, et plus d’id, sous la forme modid:nomdumod.
Exemple pour minecraft : minecraft:diamond_blockÀ cause de ce changement, les items/blocs de votre mods présent sur les maps risque d’être perdus lors de la mise à jour.
Afin de contrer ce problème, cpw à mit en place une petite conversion qui passe par l’itemtracker de FML.
Il est donc important de PreInit tout vos enregistrement de bloc (comme sur les tutoriels du forum) et d’enregistrer tout vos items dans la version 1.6.4 de votre mods.
Le registerItem est donc passé de “optionnel” à TRÈS TRÈS IMPORTANT !
(petit rappel :GameRegistry.registerBlock(objet_du_bloc, "nom_non_localisé");
ou
GameRegistry.registerBlock(objet_du_bloc, ItemBlockCustom.classe, "nom_non_localisé", "Modid");
Si vous avez un bloc d’item différent (metadata en général)
EtGameRegistry.registerItem(objet_de_l_item, "nom_non_localisé");
N’utilisez pas le GameRegistry.registerBlock(objet_du_bloc); qui est obsolète depuis un bon moment !)
Ensuite, une fois que tous vos items et blocs sont bien enregistrés dans l’itemTracker de FML, vous devez chargés tous vos maps que vous souhaitez conservez pour être sûr qu’ils soient bien enregistrés dans la save de la map (comme FML va détecter le changement dans l’itemTracker, il va demander de confirmer le chargement de la map).
Tous les utilisateurs de vos mods doivent faire pareil. -
Des nouvelles? Je ne suis (du verbe suivre) pas trop les infos par rapport aux update donc si quelqu’un pourrait me dire ou ça en est, merci!
-
La dernière fois que j’ai regardé il n’y avais pas de nouveautés.
-
-
Des avancements ?
-
Oui, ça fait une semaine que les grands travaux ont commencés sur forge, et presque un mois qu’ils travail sur fml. Forge Gradle (nouveau truc pour le moddeur) a aussi beaucoup évolué.
https://github.com/MinecraftForge/ForgeGradle/commits/master
https://github.com/MinecraftForge/MinecraftForge/commits/master
https://github.com/MinecraftForge/FML/commits/master -
Il y a du progrès ! -
Prions pour l’update de mod pas trop difficile.
Car techniquement, si ils font un énorme effort pour pas changer ce qui existe déjà, ils pourraient carrément faire en sorte que les mods n’ont pas besoin d’updates entre les versions
-
Non, pas possible, bukkit le fait par exemple car c’est un api qui ajoute une surcouche (ou un truc comme ça, lex avait donné le nom exacte) or forge ne l’ai pas et le sera jamais. Les noms srg permettent quand même d’éviter une maj à chaque mise à jour mineur de minecraft, c’est déjà bien.
ÉDIT : http://www.minecraftforge.net/forum/index.php/topic,13904.msg71401.html#msg71401
La 1.7 va être longue, j’ai regardé quelques commits, à cause de la suppression des ids presque tout a changés. Et mcp est encore en pré-version, aucun nom n’est en srg à par le nom des classes. Tous les fields, méthodes et paramètres on tous des noms du genre field_xxxx, func_xxxx, param_xxxx
-
fack
Mais a part ça, la suppression des IDs ça va être énorme. Plus de conflits possibles, et plus de limites ( théoriquement ) niveau des blocks ?
-
Je me demande comment seront gérés la génération des blocs pour les biomes customs ? Vous auriez pas une idée par hasard?
-
Par le nom du bloc