Learn · mappings
Was sind Minecraft-Karten? Erklärt
Minecraft-Mappings sind Namensregister, die verschleierten Code wie a.b.c in lesbare Namen umwandeln, damit Mods und Clients den Code lesen und an den Spielcode eingreifen können.
Was sind Minecraft-Mappings?
Minecraft-Mappings sind Übersetzungstabellen, die die verschleierten Symbole des Spiels mit menschenlesbaren Namen verknüpfen. Die Retail-Version wird mit Klassen, Methoden und Feldern ausgeliefert, die in unsinnige, kurze Zeichenketten wie a, bk oder c.d.e umbenannt wurden. Ein Mapping-Set wie MCP, Yarn oder die Mojang-Mappings legt echte Namen über dieses Chaos, sodass ein Entwickler den Code lesen und sich einhaken kann.
Ohne ein Mapping ist das Spiel technisch offen, aber praktisch unlesbar. Wendet man eines an, liest sich ein Feld mit der Bezeichnung field_71090_bL wie etwas wie experienceLevel, und der gesamte Codebestand wirkt plötzlich wie normale Software.
Warum benötigt Minecraft überhaupt Mappings?
Mappings existieren, weil Mojang Minecraft vor jeder Veröffentlichung verschleiert. Der Build-Schritt schreibt jede Klasse und jedes Mitglied auf kurze Token um. Das reduziert die Größe der Jar-Datei ein wenig, macht den Code aber hauptsächlich schwerer verständlich. Das ist die Hürde, die jedes Mod und jeder Client überwinden muss.
Ein Mapping ist der Schlüssel zu dieser Hürde. Es ist eine Eins-zu-Eins-Liste: verschleierter Name links, lesbarer Name rechts. Wendet man es auf das Spiel an, verwandelt sich die durcheinandergebrachte Jar-Datei zurück in einen bearbeitbaren Quellcodebaum.
Die drei Mapping-Sets, über die Sie sprechen werden
Es gibt viele Mapping-Projekte, aber drei dominieren die Diskussion. Jedes gehört zu einer anderen Ära und einem anderen Eigentümer.
MCP (Mod Coder Pack)
MCP ist das Community-Mapping, das das Modding vor 1.14 ermöglichte. Es lief in zwei Schichten. Das Searge-Projekt generierte stabile, aber unattraktive Zwischennamen wie func_70071_h_, und MCP kleidete diese dann in freundliche Namen wie onUpdate. Die meisten älteren 1.8.9 Standalone-Clients kompilieren immer noch gegen einen MCP-gemappten Tree und richten ihre Reflection auf die MCP- oder Searge-Namen.
Yarn
Yarn ist das offene Mapping, das von FabricMC für das Fabric-Ökosystem gepflegt wird. Es ist von der Community geschrieben, frei lizenziert und aktualisiert sich tendenziell schnell, wenn eine neue Minecraft-Version erscheint. Diese schnelle Reaktionszeit ist ein großer Teil des Grundes, warum Fabric-Mods frühzeitig neue Versionen erreichen.
Mojang Mappings
Mojang Mappings, oft auf Mojmap abgekürzt, sind die offiziellen Namen von Mojang, die seit 1.14.4 zusammen mit jeder Veröffentlichung veröffentlicht werden. Da sie direkt von der Quelle stammen, stimmen die Namen mit dem überein, was Mojangs Entwickler tatsächlich nennen. Sie haben MCP und Searge effektiv als Ausgangspunkt für jeden modernen Client ersetzt.
MCP vs. Yarn vs. Mojang Mappings
Die Kurzfassung: MCP ist die Legacy-Toolchain, die Mojang-Mappings sind der offizielle Ersatz und Yarn befindet sich dazwischen als das von der offenen Community gepflegte Set, das die meisten Fabric-Projekte verwenden. Hier ist ein Vergleich der drei in den Punkten, die wichtig sind.
| MCP | Yarn | Mojang-Mappings | |
|---|---|---|---|
| Gepflegt von | Community (Searge + MCP) | FabricMC | Mojang |
| Ära | Vor 1.14 (1.7 bis 1.12) | Ab 1.14 | Ab 1.14.4 |
| Ursprung | Community-basiert | Community-basiert | Offiziell von erster Hand |
| Typische Verwendung | Legacy-Clients, älteres Modding | Fabric | Fabric, Forge, NeoForge |
| Status | Zugunsten von Mojmap eingestellt | Aktiv | Aktiver Standard |
Wie Mappings in eine Mod-Toolchain passen
Mappings verrichten ihre Arbeit zur Kompilierzeit, niemals zur Laufzeit. Das Build-Tool nimmt das verschleierte Spiel, führt die Mapping-Datei darüber und gibt dem Entwickler eine lesbare Kopie zum Schreiben. Wenn das Mod fertig ist, remapt das Toolchain es zurück, sodass seine Referenzen mit den verschleierten Namen übereinstimmen, die sich in der tatsächlichen Jar-Datei des Spielers befinden.
Loader gehen hier unterschiedlich vor. Fabric baut entweder gegen Yarn oder eine Mojang-gemappte Basis, je nach Projekt. Forge hat die Arbeit historisch aufgeteilt, indem es den Code durch eine Mapping-Datei liest, während es gegen eine andere läuft. Die Lizenzierung der Mojang-Mappings ist ausreichend permissiv, um sie zur Build-Zeit zu verwenden, weshalb die meisten aktuellen Toolchains darauf setzen.
Intermediary: die Schicht, die Mods stabil hält
Es gibt einen vierten Namen, den man kennen sollte. Intermediary ist eine stabile Zwischenschicht, die Fabric verwendet, sodass ein kompilierter Mod weiterhin funktioniert, selbst wenn die lesbaren Mappings geändert werden. Die lesbaren Namen (Yarn oder Mojmap) liegen für Menschen obenauf, während Intermediary für das laufende Spiel konstant darunter bleibt. Searge erfüllte in der MCP-Welt eine ähnliche Rolle. Die Idee ist einfach: eine feste Schicht für das Binärprogramm, eine freundliche Schicht für den Entwickler.
FAQ
Nein. Eine Zuordnung benennt Dinge nur für die Person, die Code schreibt. Der fertige Mod wird zurück auf die verschleierten Namen abgebildet, sodass die lesbaren Namen, mit denen Sie arbeiten, niemals im Spiel des Spielers ankommen.
Geschichte und Eigentümerschaft. MCP kam zuerst und trug das Modding durch die Zeit vor 1.14. Yarn wuchs mit Fabric als offene Community heran, und die Mojang-Mappings kamen, als Mojang begann, offizielle Namen in 1.14.4 zu liefern.
Für aktuelles Minecraft sind die Standardoptionen die Mappings von Mojang oder Yarn. MCP ist hauptsächlich relevant für Arbeiten aus der Zeit von Legacy 1.8.9, bei denen die alte Toolchain noch im Einsatz ist.
Nein. Eine Mapping-Datei ist eine Namensliste. Ein Mod-Loader wie Fabric ist die Laufzeitumgebung, die Mods in das Spiel einfügt. Sie arbeiten zusammen, lösen aber völlig unterschiedliche Probleme.
Besorge Terminus
Built to track Minecraft's mappings so its modules keep working across versions.