Learn · mappings

Co są Minecraft Mapowania? Wyjaśnione

Mapowania Minecrafta to tabele nazw, które przekształcają zaciemniony kod, taki jak a.b.c, w czytelne nazwy, aby mody i klienty mogły odczytywać i hakować grę.

TRtrolPublished 5 min read

Czym są mapowania w Minecrafcie?

Mapowania w Minecrafcie to tabele tłumaczeń, które zestawiają zaszyfrowane symbole gry z czytelnymi dla człowieka nazwami. Kompilacja dystrybucyjna zawiera klasy, metody i pola przemianowane na bezsensowne, krótkie ciągi znaków, takie jak a, bk lub c.d.e. Zestaw mapowań, taki jak MCP, Yarn lub mapowania Mojang, nakłada na ten bałagan rzeczywiste nazwy, dzięki czemu programista może czytać kod i do niego podłączać.

Bez mapowania gra jest technicznie otwarta, ale praktycznie nieczytelna. Zastosowanie mapowania sprawia, że pole oznaczone jako field_71090_bL czyta się jako coś w rodzaju experienceLevel, a cały kod źródłowy nagle zaczyna przypominać normalne oprogramowanie.

Dlaczego Minecraft w ogóle potrzebuje mapowań?

Mapowania istnieją, ponieważ Mojang zaciemnia kod Minecrafta przed każdą premierą. Proces kompilacji przepisuje każdą klasę i członka do krótkich tokenów. To trochę redukuje rozmiar pliku jar, ale przede wszystkim utrudnia śledzenie kodu. To jest bariera, którą musi pokonać każdy mod i klient.

Mapowanie jest kluczem do tej bariery. To jest lista jeden do jednego: zaszyfrowana nazwa po lewej, czytelna nazwa po prawej. Zastosuj go do całej gry, a połączony plik jar zamienia się z powrotem w użyteczną strukturę kodu źródłowego.

Trzy zestawy mapowań, o których usłyszysz

Istnieje wiele projektów mapowań, ale trzy dominują w rozmowie. Każdy z nich należy do innej epoki i innego właściciela.

MCP (Mod Coder Pack)

MCP to mapowanie tworzone przez społeczność, które napędzało modyfikacje przed wersją 1.14. Działa na dwóch warstwach. Projekt Searge generował stabilne, ale mało atrakcyjne nazwy pośrednie, takie jak func_70071_h_, a MCP następnie ubierał je w przyjazne nazwy, takie jak onUpdate. Większość starszych, samodzielnych klientów 1.8.9 nadal kompiluje się z drzewem mapowań MCP i kieruje swoje odbicie na nazwy MCP lub Searge.

Yarn

Yarn to otwarte mapowanie utrzymywane przez FabricMC dla ekosystemu Fabric. Jest napisane przez społeczność, licencjonowane na zasadach swobody i szybko aktualizowane po wydaniu nowej wersji Minecrafta. Ten szybki czas reakcji jest dużą częścią powodu, dla którego mody Fabric osiągają nowe wersje tak wcześnie.

Mapowania Mojang

Mapowania Mojang, często skracane do Mojmap, to własne, oficjalne nazwy Mojang, publikowane wraz z każdą wersją od 1.14.4. Ponieważ pochodzą bezpośrednio od źródła, nazwy odpowiadają temu, jak rzeczy nazywają twórcy Mojang. Skutecznie zastąpiły MCP i Searge jako punkt wyjścia dla każdego nowoczesnego klienta.

MCP vs Yarn vs mapowania Mojang

Krótka wersja: MCP to przestarzały łańcuch narzędzi, mapowania Mojang to oficjalne zastępstwo, a Yarn zajmuje pozycję pomiędzy nimi, będąc otwartym zestawem, z którego korzysta większość projektów Fabric. Poniżej znajduje się porównanie tych trzech elementów pod względem najważniejszych aspektów.

MCPYarnMapowania Mojang
Utrzymywane przezSpołeczność (Searge + MCP)FabricMCMojang
EraPrzed 1.14 (1.7 do 1.12)Od 1.14Od 1.14.4
PochodzenieOparte na społecznościOparte na społecznościOficjalne, tworzone przez firmę
Typowe zastosowanieStarsze klienty, starsze modowanieFabricFabric, Forge, NeoForge
StatusWycofane na rzecz MojmapAktywneAktywne domyślnie

Jak mapowania wpisują się w łańcuch narzędzi modyfikacji

Mapowania wykonują swoją pracę w czasie kompilacji, nigdy w czasie działania. Narzędzie budujące pobiera zamazany kod gry, uruchamia na nim mapowanie i przekazuje programiście czytelną kopię, do której można pisać. Po zakończeniu modyfikacji, łańcuch narzędzi remapuje go z powrotem, aby odwołania zgadzały się z zamazanymi nazwami znajdującymi się w rzeczywistym pliku JAR gracza.

Ładowarki podchodzą do tego inaczej. Fabric buduje w oparciu o Yarn lub bazę z mapowaniami Mojang, w zależności od projektu. Forge historycznie dzieliło pracę, czytając kod za pomocą jednego mapowania, jednocześnie uruchamiając go na innym. Licencja na mapowania Mojang jest na tyle liberalna, że można ich używać w czasie kompilacji, dlatego większość obecnych łańcuchów narzędzi opiera się na nich.

Pośrednik: warstwa zapewniająca stabilność modów

Warto poznać jeszcze jedną nazwę. Pośrednik to stabilna warstwa, z której korzysta Fabric, aby skompilowany mod działał poprawnie nawet wtedy, gdy zmieniają się czytelne mapowania. Czytelne nazwy (Yarn lub Mojmap) znajdują się na samej górze, dla ludzi, podczas gdy Pośrednik pozostaje niezmienny pod spodem, dla działającej gry. Searge pełnił podobną rolę w świecie MCP. Pomysł jest prosty: stała warstwa dla kodu binarnego, przyjazna warstwa dla programisty.

FAQ

Pobierz Terminus

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