209po

PODOBNE ZIARNA

Minecraftowe ziarna. Wydawać by się mogło, że jest nieskończenie wiele ziaren i nieskończenie wiele światów. Jednak ziaren jest tylko 18446744073709551616. Jeżeli wpiszesz tę liczbę, uzyskasz jednak ziarno o dużo niższej wartości. A to dlatego, że jest traktowane jako tekstowe. Jeżeli zakres ziaren mielibyśmy opisać nierównością, byłaby ona taka: -9223372036854775808 ≤ x ≤ 9223372036854775807. Jeżeli wpiszesz w pole ziarna tekst bądź liczbę x niespełniającą wcześniejszej równości, ziarno będzie przekonwertowane na liczbę od -2147483648 do 2147483647.

Na razie bez wiedzy technicznej

Wiem, że tutaj nie będę mówić o technicznej kwestii podobnych ziaren, ale mimo to zdecydowałem to napisać. W 2014 roku, grając na wersji 1.5.2, odnalazłem gdzieś w czeluściach Internetu ziarno GIMMEABREAK. Generowało ono wioskę. Chciałem mieć jednak wioskę z kowalem. Postanowiłem pokombinować z ziarnem, i wpisałem w pole ziarno GIMMEABREAJ. Zespawnowałem się gdzieś na polanie, musiałem trochę podejść do wioski. W wiosce był kowal. Prawdopodobnie był to zbieg okoloczności, że dwa podobnie wyglądające ziarna wygenerowały w miarę podobny teren. Wtedy uznałem jednak, że to jest zasada, nie zbieg okoliczności. Tutaj nie został opisany przypadek podobnych ziaren. Zaraz się o nich dowiesz.

W końcu zacznijmy

Definicja mówi, że podobne ziarna to takie, które dają taką samą resztę przy dzieleniu przez 281474976710656, czyli 248. Skąd?
Nie będziemy mówić o sprawach dla nikogo niezrozumiałych. Otóż Minecraft, generując teren, używa dwóch generatorów liczb pseudolosowych. Oba są wyciągane z ziarna. Jeden z nich to pRNG 64-bitowy. Bierze pod uwagę całe ziarno. To on odpowiada m. in. za biomy i rzeki. Drugi pRNG bierze pod uwagę tylko 48 ostatnich bitów ziarna, czyli resztę z dzielenia przez 281474976710656. Dzięki niemu mamy m. in. rzeźbę terenu, jaskinie, struktury. Teraz wyjaśniliśmy, skąd taka definicja. Podobne ziarna dają ten sam wynik przy 48-bitowym pRNG, lecz dają różne liczby przy 64-bitowym pRNG. W podobnych ziarnach jeżeli gdzieś jest taki sam biom, wszystko na danym terenie jest takie same. To dlatego Nether i Kres są w światach z podobnych ziaren takie same.

A na co nam to?

Podobne ziarna są używane m. in. w speedrunningu, czyli przechodzeniu gry w jak najszybszym czasie. Odkryto kiedyś ziarno, które jest dobre do tych celów. Zawiera aż 8 ok Kresu, a 4 perły są w tej samej twierdzy. Nie było to jednak ziarno idealne. Dzięki metodzie podobnych ziaren udało się odnaleźć ziarno, które było lepsze. Przy spawnie był śnieg i loch, a w nim trochę żelaza. Jeżeli odnalazłeś ciekawe ziarno, ale widzisz, że mogłoby być lepiej, popróbuj testować podobne ziarna. Aby uzyskać z danego ziarna ziarno podobne, należy dodać lub odjąć 281474976710656. W sumie masz 65535 podobnych ziaren dla danego ziarna X.

Porównanie dwóch ziaren

Element
porównywany
Ziarno IZiarno IIWnioski
Ziarno-3289940473935419453220528835438531Różnica tych ziaren wynosi 3290161002770857984, czyli 11689 * 248. Stąd reszta z dzielenia tych ziaren przez 248 jest taka sama, więc te ziarna są podobne.
Spawn
(182; 69; 186)

(49; 74; -3)
Spawny są inne, więc za ich lokalizację odpowiada pRNG 64-bitowy.
Teren przy tym samym biomie
(-1000; 100; 0)
Jeżeli na tych samych koordynatach jest ten sam biom, teren jest taki sam. Za rzeźbę terenu odpowiada więc pRNG 48-bitowy. Jeżeli ktoś dobrze się przyjrzy, zauważy, że kwiaty są inaczej ustawione, zatem za nie odpowiada pRNG 64-bitowy.
Granica biomów
Jaskinie
(930; 100; 0)
Po prawej stronie wszystko jest takie same, gdyż biom jest taki sam. Natomiast po lewej stronie biom jest inny, więc wszystko wygląda kompletnie inaczej. Jednak na lewo widać w obu przypadkach wzgórze i jaskinię. Mimo to, że biom jest inny, jaskinie generują się tak samo, więc za nie odpowiada pRNG 48-bitowy.
Jaskinie
Jeziorka
(1024; 30; -768)
Jaskinie generują się niezależnie od biomu. Obecność biomu oceanicznego ucina jednak niektóre jaskinie. Oznacza to, że za jaskinie odpowiada pRNG 48-bitowy. Co do jeziorek, jeżeli biom jest inny - generują się w innym miejscu. Jednak nie da się określić, jaki pRNG odpowiada za jeziorka. Jeżeli wiesz - pisz na maila, nie gryzę.
Nether
Układy generowane
(286; 61; 144)
Ze względu na to, że Nether składa się z jednego biomu, generowanie tego wymiaru opiera się niemal w całości o pRNG 48-bitowy. Układy generowane również są generowane w oparciu o pRNG 48-bitowy, ale to, czy i w jakim wariancie się ukażą - to zależy od pRNG 64-bitowego. Przykładowo, w lokalizacji XYZ jest chatka wiedźmy. Gdy mamy ziarno podobne, które generuje w miejscu XYZ tundrę, mamy w tym miejscu igloo, gdyż w kodzie gry chatki wiedźmy, piramidy, świątynie Majów i igla są traktowane jako świątynia.
Lokalizacje biomów
źródło: chunkbase.com
Na mapach (kliknij, aby powiększyć) można zauważyć, że niektóre granice biomów idą tak samo. pRNG 48-bitowy odpowiada za granice między biomami, natomiast pRNG 64-bitowy decyduje, gdzie dany biom umieścić i gdzie umieścić rzekę. W przypadku, gdy pRNG 64-bitowy zdecyduje, że po obu stronach danej granicy ma być ten sam biom, granica nie będzie widoczna, lecz w podobnym ziarnie może się ona ukazać.
InfDev
(288; 127; 96)
Widać, że teren jest taki sam. Nie było wtedy biomów, więc za teren odpowiada w całości pRNG 48-bitowy. To odpowiada, że kiedyś każde ziarno miało 65535 dublów. Różnica między dublami ukazuje się dopiero w Becie 1.8. Ale jak w tej wersji można było wygenerować świat z określonym ziarnem? Trzeba było zająć się edycją pliku level.dat - tam mamy ziarno. Edycja tego pliku pomogła również w uzyskaniu tej samej perspektywy.
Alpha 1.2
(-43; 82; 64)
Mimo tego, iż w Alphie 1.2 wprowadzono biomy, to one generowały się według rozkazów pRNG 48-bitowego. pRNG 64-bitowy został użyty do generowania biomów dopiero w Becie 1.8.
nawigacja
*strona główna
 minecraft:
*gorączka złota
*odległe lądy
*podobne ziarna
 felietony:
*wymagania sprzętowe
kontakt: kontakt_209po.5c.pl(małpa)int.pl