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.

TRtrolPublished 6 min read

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.

MCPYarnMappings de Mojang
Maintenu parCommunauté (Searge + MCP)FabricMCMojang
ÉpoquePré-1.14 (1.7 à 1.12)1.14 et après1.14.4 et après
OrigineDérivé de la communautéDérivé de la communautéOfficiel de première partie
Utilisation typiqueClients hérités, modding ancienFabricFabric, Forge, NeoForge
StatutRetiré au profit de MojmapActifActif 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

Obtenez Terminus

Built to track Minecraft's mappings so its modules keep working across versions.