Learn · mappings

Cosa sono le mappe di Minecraft? Spiegato

Le mappe di Minecraft sono tabelle di nomi che trasformano il codice offuscato come a.b.c in nomi leggibili, in modo che mod e client possano leggere e intercettare il gioco.

TRtrolPublished 6 min read

Cosa sono le mappe di Minecraft?

Le mappe di Minecraft sono tabelle di traduzione che associano i simboli offuscati del gioco a nomi leggibili dagli umani. La versione retail viene fornita con classi, metodi e campi rinominati in stringhe minuscole e prive di significato come a, bk o c.d.e. Un set di mappe come MCP, Yarn o le mappe di Mojang sovrappone nomi reali su quel caos, in modo che uno sviluppatore possa leggere il codice e interagirvi.

Senza una mappa, il gioco è tecnicamente aperto ma praticamente illeggibile. Applicane una e un campo etichettato field_71090_bL viene letto come qualcosa del tipo experienceLevel, e l'intero codebase assume improvvisamente l'aspetto di un software normale.

Perché Minecraft ha bisogno di mappe?

Le mappe esistono perché Mojang offusca Minecraft prima di ogni rilascio. La fase di build riscrive ogni classe e membro in token brevi. Questo riduce leggermente le dimensioni del jar, ma soprattutto rende il codice difficile da seguire. È il muro che ogni mod e client deve superare.

Una mappa è la chiave per quel muro. È un elenco uno-a-uno: nome offuscato a sinistra, nome leggibile a destra. Applicala al gioco e il jar mescolato si trasforma di nuovo in un albero sorgente utilizzabile.

I tre set di mapping di cui sentirai parlare

Esistono molti progetti di mapping, ma tre dominano la conversazione. Ognuno appartiene a un'epoca diversa e a un proprietario diverso.

MCP (Mod Coder Pack)

MCP è il mapping della comunità che ha alimentato il modding prima della versione 1.14. Funzionava su due livelli. Il progetto Searge generava nomi intermedi stabili ma poco attraenti come func_70071_h_, e MCP li rivestiva poi con nomi più amichevoli come onUpdate. La maggior parte dei client standalone 1.8.9 più datati compilano ancora rispetto a un albero mappato da MCP e puntano la loro riflessione ai nomi MCP o Searge.

Yarn

Yarn è il mapping open source mantenuto da FabricMC per l'ecosistema Fabric. È scritto dalla comunità, con licenza libera e tende ad aggiornarsi rapidamente quando esce una nuova versione di Minecraft. Quel rapido aggiornamento è una parte importante del motivo per cui i mod Fabric raggiungono nuove versioni in anticipo.

Mapping di Mojang

I mapping di Mojang, spesso abbreviati in Mojmap, sono i nomi ufficiali di Mojang, pubblicati insieme a ogni release a partire dalla versione 1.14.4. Poiché provengono direttamente dalla fonte, i nomi corrispondono a quelli che i programmatori di Mojang chiamano effettivamente le cose. Hanno di fatto sostituito MCP e Searge come punto di partenza predefinito per qualsiasi client moderno.

MCP vs Yarn vs mapping di Mojang

La versione breve: MCP è la toolchain legacy, le mappings di Mojang sono la sostituzione ufficiale e Yarn si posiziona tra le due come il set open source utilizzato dalla maggior parte dei progetti Fabric. Ecco come i tre si confrontano sui punti che contano.

MCPYarnMappings di Mojang
Mantenuto daComunità (Searge + MCP)FabricMCMojang
EraPre-1.14 (1.7 a 1.12)1.14 in poi1.14.4 in poi
OrigineDerivato dalla comunitàDerivato dalla comunitàUfficiale di prima parte
Utilizzo tipicoClient legacy, modding datatoFabricFabric, Forge, NeoForge
StatoRitirato in favore di MojmapAttivoAttivo di default

Come le mappings si inseriscono in una toolchain di modding

Le mappings svolgono il loro lavoro in fase di compilazione, mai in fase di runtime. Lo strumento di build prende il gioco offuscato, applica la mapping su di esso e fornisce allo sviluppatore una copia leggibile su cui lavorare. Quando la mod è terminata, la toolchain la rimappa in modo che i suoi riferimenti corrispondano ai nomi offuscati presenti nel jar effettivo del giocatore.

I loader affrontano questo in modo diverso. Fabric si basa su Yarn o su una base mappata da Mojang a seconda del progetto. Forge storicamente divideva il lavoro, leggendo il codice attraverso una mapping mentre eseguiva con un'altra. La licenza sulle mappings di Mojang è sufficientemente permissiva da poter essere utilizzata in fase di build, motivo per cui la maggior parte delle toolchain attuali si basa su di esse.

Intermediario: lo strato che mantiene stabili i mod

C'è un quarto nome degno di nota. Intermediario è uno strato intermedio stabile che Fabric utilizza in modo che un mod compilato continui a funzionare anche quando le mappature leggibili cambiano. I nomi leggibili (Yarn o Mojmap) si trovano sopra per gli umani, mentre Intermediario rimane costante sotto per il gioco in esecuzione. Searge ricopriva lo stesso ruolo nel mondo MCP. L'idea è semplice: uno strato fisso per il binario, uno strato amichevole per lo sviluppatore.

FAQ

Prendi Terminus

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