Learn · mappings
Que sont les cartes Minecraft ? Explication
Les cartes Minecraft sont des tables de noms qui transforment le code obscurci comme a.b.c en noms lisibles afin que les mods et les clients puissent lire et interagir avec le jeu.
Que sont les mappings Minecraft ?
Les mappings Minecraft sont des tables de correspondance qui associent les symboles obscurcis du jeu à des noms lisibles par l'homme. La version commerciale est livrée avec des classes, des méthodes et des champs renommés en chaînes minuscules et dénuées de sens, telles que a, bk ou c.d.e. Un ensemble de mappings comme MCP, Yarn ou les mappings Mojang superpose des noms réels à ce désordre afin qu'un développeur puisse lire le code et s'y intégrer.
Sans mapping, le jeu est techniquement ouvert mais pratiquement illisible. En appliquant un mapping, un champ étiqueté field_71090_bL se lit comme quelque chose comme experienceLevel, et l'ensemble du code source ressemble soudainement à un logiciel normal.
Pourquoi Minecraft a-t-il besoin de mappings ?
Les mappings existent parce que Mojang obscurcit Minecraft avant chaque version. L'étape de construction réécrit chaque classe et chaque membre en courts jetons. Cela réduit un peu la taille du fichier jar, mais surtout, cela rend le code difficile à suivre. C'est le mur que chaque mod et client doit franchir.
Un mapping est la clé de ce mur. C'est une liste un-à-un : nom obscurci à gauche, nom lisible à droite. Appliquez-le sur l'ensemble du jeu et le fichier jar brouillé redevient un arbre source exploitable.
Les trois ensembles de mapping dont vous entendrez parler
Il existe de nombreux projets de mapping, mais trois dominent la conversation. Chacun appartient à une époque différente et à un propriétaire différent.
MCP (Mod Coder Pack)
MCP est le mapping communautaire qui alimentait le modding avant la version 1.14. Il fonctionnait en deux couches. Le projet Searge générait des noms intermédiaires stables mais peu attrayants tels que func_70071_h_, et MCP les revêtait ensuite de noms conviviaux comme onUpdate. La plupart des anciens clients autonomes 1.8.9 compilent toujours à partir d'un arbre mappé par MCP et dirigent leur réflexion vers les noms MCP ou Searge.
Yarn
Yarn est le mapping open source maintenu par FabricMC pour l'écosystème Fabric. Il est écrit par la communauté, librement licencié et a tendance à se mettre à jour rapidement lorsqu'une nouvelle version de Minecraft est disponible. Ce délai de retour rapide est une grande partie de la raison pour laquelle les mods Fabric atteignent de nouvelles versions rapidement.
Mappings Mojang
Les mappings Mojang, souvent abrégés en Mojmap, sont les noms officiels de Mojang, publiés avec chaque version depuis la 1.14.4. Étant donné qu'ils proviennent directement de la source, les noms correspondent à ce que les développeurs de Mojang appellent réellement les choses. Ils ont effectivement remplacé MCP et Searge comme point de départ par défaut pour tout client moderne.
MCP vs Yarn vs Mappings Mojang
La version courte : MCP est l'ancien outil, les mappings de Mojang sont le remplacement officiel, et Yarn se situe entre les deux en tant que jeu de mappings open source que la plupart des projets Fabric utilisent. Voici comment les trois se comparent sur les points qui importent.
| MCP | Yarn | Mappings de Mojang | |
|---|---|---|---|
| Maintenu par | Communauté (Searge + MCP) | FabricMC | Mojang |
| Époque | Pré-1.14 (1.7 à 1.12) | 1.14 et après | 1.14.4 et après |
| Origine | Dérivé de la communauté | Dérivé de la communauté | Officiel de première partie |
| Utilisation typique | Clients hérités, modding ancien | Fabric | Fabric, Forge, NeoForge |
| Statut | Retiré au profit de Mojmap | Actif | Actif par défaut |
Comment les mappings s'intègrent dans une chaîne d'outils de modding
Les mappings font leur travail au moment de la compilation, jamais à l'exécution. L'outil de construction prend le jeu obscurci, applique le mapping dessus et fournit au développeur une copie lisible sur laquelle écrire. Une fois le mod terminé, la chaîne d'outils le remappe pour que ses références correspondent aux noms obscurcis présents dans le fichier jar réel du joueur.
Les chargeurs abordent cela différemment. Fabric construit à partir de Yarn ou d'une base mappée par Mojang, selon le projet. Forge divisait historiquement le travail, en lisant le code à travers un mapping tout en s'exécutant avec un autre. La licence des mappings de Mojang est suffisamment permissive pour être utilisée au moment de la construction, c'est pourquoi la plupart des chaînes d'outils actuelles s'appuient dessus.
Intermédiaire : la couche qui stabilise les mods
Il y a un quatrième nom à connaître. Intermediary est une couche intermédiaire stable que Fabric utilise pour que les mods compilés continuent de fonctionner même lorsque les mappings lisibles changent. Les noms lisibles (Yarn ou Mojmap) se trouvent au-dessus pour les humains, tandis qu'Intermediary reste constant en dessous pour le jeu en cours d'exécution. Searge remplissait le même rôle dans le monde MCP. L'idée est simple : une couche fixe pour le binaire, une couche conviviale pour le développeur.
FAQ
Non. Une affectation ne fait que renommer les éléments pour la personne qui écrit le code. Le mod final est réaffecté aux noms obscurcis, donc les noms lisibles avec lesquels vous travaillez n'atteignent jamais le jeu du joueur.
L'histoire et la propriété. MCP est arrivé en premier et a porté le modding à travers l'ère précédant la version 1.14. Yarn a grandi avec Fabric en tant qu'ensemble communautaire ouvert, et les mappings de Mojang sont arrivés lorsque Mojang a commencé à distribuer des noms officiels dans la version 1.14.4.
Pour Minecraft actuel, les mappings de Mojang ou Yarn sont les choix standards. MCP est principalement pertinent pour les travaux de l'époque du 1.8.9, où l'ancien chaînage d'outils est encore utilisé.
Non. Une carte est un tableau de noms. Un chargeur de mods comme Fabric est l'environnement d'exécution qui injecte les mods dans le jeu. Ils coopèrent, mais résolvent des problèmes complètement différents.
Obtenez Terminus
Built to track Minecraft's mappings so its modules keep working across versions.