GameHosting.pl

Notatki operatora

Chunky: pregeneracja świata Minecraft dla mniejszej liczby lagów

Praktyczny przewodnik po pluginie Chunky, czyli najprostszym sposobie na to, żeby eksploracja świata nie zarzynała serwera. Od wyjaśnienia, po co w ogóle pregenerować teren, przez instalację na Paper, Spigot i Purpur oraz na Fabric i Forge, po komendy z przykładami, dobór promienia, Nether i End oraz dobre praktyki. Z perspektywy kogoś, kto raz tłumaczył graczowi, czemu „przy wyprawie w nowe rejony wszystko się tnie”.

Opublikowano · ~8 min czytania

W skrócie: generowanie nowych chunków to najcięższa praca, jaką serwer wykonuje w trakcie eksploracji, i to ona powoduje spadki TPS. Chunky wykonuje tę pracę z wyprzedzeniem, gdy nikogo nie ma online, więc potem serwer tylko wczytuje gotowy teren z dysku. Schemat jest krótki: /chunky radius 5000, potem /chunky start, a w razie potrzeby /chunky pause i /chunky continue. Nether i End pregenerujesz osobno przez /chunky world. Jeśli nie chcesz sam wgrywać pluginu i pilnować mocy maszyny podczas generacji, weź hosting z gotową obsługą wtyczek.

Po co pregenerować świat

Świat w Minecraft nie istnieje od razu w całości. Powstaje kawałkami, chunkami (kolumnami 16 na 16 bloków), dopiero wtedy, gdy ktoś się do nich zbliży. Wygenerowanie takiego chunka to dla serwera spory wysiłek: trzeba wyliczyć ukształtowanie terenu, biomy, rudy, jaskinie, struktury, a potem zapisać to na dysk. Dopóki gracze chodzą po już znanym terenie, jest spokojnie. Problem zaczyna się przy eksploracji nowych rejonów.

Gdy gracz rusza w nieznane, zwłaszcza szybko: konno, na elytrze, łódką po oceanie, serwer musi generować chunki w locie, jeden za drugim. To właśnie wtedy widać klasyczne objawy:

Pregeneracja odwraca kolejność. Zamiast liczyć teren w trakcie gry, robisz to z wyprzedzeniem, najlepiej nocą albo zaraz po założeniu świata, gdy nikogo nie ma online. Chunky przechodzi cały zaplanowany obszar i zapisuje wszystkie chunki na dysk. Potem, kiedy gracze faktycznie tam dotrą, serwer już niczego nie generuje, tylko wczytuje gotowe dane, a to operacja nieporównanie lżejsza.

Korzyść jest podwójna i bardzo namacalna dla kosztu serwera. Po pierwsze, eksploracja staje się płynna, bo znika główne źródło lagów. Po drugie, znika potrzeba przewymiarowywania maszyny „na zapas” pod chwilowe skoki generacji, a to oznacza, że tańszy plan hostingu spokojnie obsłuży tę samą społeczność. Pregeneracja świadomie zamienia drogą, chwilową moc procesora na tani, trwały zapis na dysku.

Instalacja: Paper, Spigot, Purpur oraz Fabric i Forge

Chunky autorstwa pop4959 jest wydawany w wersjach dla wszystkich popularnych platform: Spigot, Paper (a więc też forków Paper, takich jak Purpur) oraz Fabric, Forge, NeoForge i Sponge. Komendy są wszędzie identyczne, różni się tylko miejsce, do którego wrzucasz plik.

Serwer pluginowy (Paper, Spigot, Purpur)

  1. Pobierz odpowiednią wersję. Z oficjalnego źródła (Modrinth, Hangar lub repozytorium projektu na GitHub) weź wersję Chunky dla platformy pluginowej, pasującą do wersji Minecraft Twojego serwera.
  2. Wrzuć plik do folderu plugins. Skopiuj pobrany plik .jar do katalogu plugins/. Nie rozpakowuj go, plugin to gotowy plik jar.
  3. Zrestartuj serwer. Po starcie Chunky utworzy swój folder konfiguracyjny, a w konsoli pojawi się komunikat o załadowaniu.
  4. Sprawdź komendą. Wpisz /chunky w konsoli lub w grze, jeśli plugin działa, zobaczysz pomoc do jego komend.

Serwer modowany (Fabric, Forge, NeoForge)

  1. Pobierz wersję dla swojego loadera. Chunky ma osobne pliki dla Fabric i dla Forge/NeoForge, dobierz właściwy do tego, na czym chodzi serwer.
  2. Wrzuć plik do folderu mods. Na serwerze modowanym Chunky to mod, więc plik .jar trafia do katalogu mods/, a nie plugins/. Na Fabric pamiętaj o wymaganym Fabric API, jeśli dana wersja go potrzebuje.
  3. Zrestartuj i zweryfikuj. Tak samo jak przy pluginie, po starcie sprawdź log i wpisz /chunky.

Dobór maszyny: sama pregeneracja przez chwilę mocno obciąża procesor, bo właśnie po to istnieje, żeby tę pracę wykonać raz a porządnie. To normalne i przejściowe. Jeśli zastanawiasz się, jaki serwer w ogóle wybrać pod dany świat i liczbę graczy, zajrzyj do osobnego wpisu o doborze sprzętu pod serwer gry.

Komendy Chunky z przykładami

Cały plugin obsługuje się przez jedną komendę /chunky z podkomendami. Podstawowy schemat pracy to: ustaw świat, ustaw promień, wystartuj, w razie potrzeby zatrzymaj i wznów. Poniżej najważniejsze podkomendy w praktyce.

Ustawienie obszaru

Sterowanie zadaniem

Porządki po pregeneracji

Tabela komend

Tabela do trzymania pod ręką. Wszystkie podkomendy uruchamiasz z przedrostkiem /chunky w grze albo bez ukośnika w konsoli serwera.

KomendaCo robi
/chunky radius <n>Ustawia promień zaznaczenia w blokach (skróty: k = tysiące, c = chunki).
/chunky world <świat>Wskazuje docelowy świat (np. world, world_nether, world_the_end).
/chunky worldborderDopasowuje środek i promień do granicy świata (world border).
/chunky startUruchamia pregenerację z aktualnego zaznaczenia (lub z parametrów w komendzie).
/chunky pauseWstrzymuje bieżące zadania i zapisuje postęp.
/chunky continueWznawia wstrzymane lub zapisane zadania od miejsca przerwania.
/chunky cancelZatrzymuje i trwale usuwa zadanie (już wygenerowane chunki zostają).
/chunky progressPokazuje postęp wszystkich zadań (procent, tempo, czas).
/chunky trimUsuwa chunki spoza zaznaczenia (porządkowanie mapy, odzysk miejsca).

Jak ustawić rozsądny promień

Najczęstszy błąd początkujących to ustawienie ogromnego promienia „na wszelki wypadek”. To pułapka, bo liczba chunków rośnie z kwadratem promienia. Podwojenie promienia z 5000 na 10000 bloków to nie dwa razy, ale mniej więcej cztery razy więcej terenu do wygenerowania i czterokrotnie więcej miejsca na dysku. Przy zbyt hojnym promieniu pregeneracja potrafi ciągnąć się godzinami i zapchać dysk terenem, którego nikt nigdy nie odwiedzi.

Praktyczne punkty odniesienia:

To podejście naturalnie łączy pregenerację z planowaniem świata. Zamiast generować „w nieskończoność”, decydujesz świadomie, jak duża ma być mapa, i pregenerujesz dokładnie tę przestrzeń.

Pregeneracja Netheru i Endu

Lagi przy eksploracji dotyczą każdego wymiaru, nie tylko świata głównego. Wyprawa do nowego rejonu Netheru po nową twierdz albo budowa farmy w odległym chunku Endu obciąża serwer tak samo. Dlatego Nether i End pregenerujesz osobno, bo każdy wymiar to oddzielny świat z własnymi plikami.

Robi się to tak samo jak w Overworldzie, tylko najpierw przełączasz świat:

  1. /chunky world world_nether, żeby wskazać Nether (nazwa świata może się różnić w zależności od konfiguracji serwera, sprawdź /chunky world bez argumentu albo strukturę folderów).
  2. /chunky radius 1000, ustaw promień. Tu ważna sztuczka: w Netherze jeden blok odpowiada ośmiu blokom w świecie głównym. Żeby pokryć ten sam zasięg gry, w Netherze wystarcza promień około osiem razy mniejszy niż w Overworldzie. Promień 1000 w Netherze odpowiada mniej więcej obszarowi 8000 w świecie głównym.
  3. /chunky start, uruchom zadanie.
  4. Po zakończeniu przełącz się na End: /chunky world world_the_end, ustaw promień i ponownie /chunky start.

Endu często nie trzeba pregenerować szeroko, bo większość gry toczy się w pobliżu głównej wyspy i kilku wysp zewnętrznych. Mniejszy promień zwykle w pełni wystarcza.

Dobre praktyki

Najczęstsze pytania

Po co pregenerować świat Minecraft?

Generowanie nowych chunków to najcięższa operacja, jaką serwer wykonuje podczas eksploracji, i to ona powoduje spadki TPS oraz skoki CPU. Chunky robi tę pracę z wyprzedzeniem, gdy nikogo nie ma online, więc potem serwer tylko wczytuje gotowy teren z dysku. Efekt to płynniejsza gra i niższe szczytowe obciążenie maszyny.

Czy Chunky działa na Paper, Spigot, Fabric i Forge?

Tak. Chunky autorstwa pop4959 ma wersje dla Spigot, Paper (i forków, jak Purpur) oraz dla Fabric, Forge, NeoForge i Sponge. Na serwerach pluginowych plik trafia do folderu plugins/, na modowanych do mods/. Komendy są wszędzie takie same.

Jaki promień ustawić przy pregeneracji?

Zależnie od skali: 3000 do 5000 bloków dla małego serwera, 8000 do 10000 dla większej społeczności. Najlepiej dopasować promień do granicy świata komendą /chunky worldborder. Pamiętaj, że liczba chunków rośnie z kwadratem promienia.

Czy pregeneracja zajmie dużo miejsca na dysku?

Tak, świadomie zamienia chwilową moc CPU na trwały zapis na dysku. Im większy promień, tym więcej plików. Dlatego warto pregenerować tylko obszar w zasięgu world bordera, a w razie potrzeby posprzątać nadmiar komendą /chunky trim.

Czy trzeba pregenerować Nether i End osobno?

Tak, bo każdy wymiar to oddzielny świat. Przełączasz się komendą /chunky world (np. world_nether, world_the_end), ustawiasz promień i startujesz. W Netherze jeden blok odpowiada ośmiu w świecie głównym, więc wystarcza mniejszy promień.

Powiązane