Sodium, Lithium i FPS: który mod wydajnościowy gdzie działa?
FPS i TPS to dwie zupełnie różne rzeczy. FPS (klatki na sekundę) mówi, jak płynnie twój komputer rysuje grę; TPS (tyknięcia serwera na sekundę) mówi, jak często serwer przelicza świat w ciągu sekundy, przy maksimum 20. Sodium i Iris to mody po stronie klienta: podnoszą twój FPS i dosłownie nic nie robią dla serwera. Lithium, Canary, FerriteCore i ModernFix należą do strony serwerowej i zbijają czas ticku oraz zużycie pamięci, przy czym FerriteCore oszczędza od 30 do 40 procent RAM-u. Fabulously Optimized pakuje stronę kliencką w modpack na Fabric z ponad 12 milionami pobrań na Modrinth.
Czym różni się FPS od TPS?
Serwer Minecraft przelicza świat dwadzieścia razy na sekundę. W każdym ticku aktualizuje moby, pozwala roślinom rosnąć, obsługuje redstone i maszyny, a wynik wysyła do wszystkich, którzy są online. Jeśli zmieści się w 50 milisekundach, TPS zostaje na 20 i zegar gry się zgadza. Gdy tick trwa dłużej, TPS spada, a świat leci w zwolnionym tempie: piece wypalają wolniej, moby ruszają się skokowo.
FPS dzieje się na twoim komputerze. Klient dostaje stan świata i rysuje z niego tyle klatek na sekundę, ile zdoła. Robią to twoja karta graficzna i procesor, a największe koszty generują render distance (zasięg renderowania), ustawienia graficzne i shadery. Serwer nawet nie wie, ile FPS-ów wyciągasz.
Cały haczyk tkwi w tym rozdzieleniu. Przy 5 TPS na własnym ekranie nadal masz 200 FPS: rysujesz dwieście razy na sekundę świat, który prawie się nie zmienia. Odwrotnie też się zdarza, bo serwer chodzi idealnie na 20 TPS, a gracz ze starym laptopem wyciąga 15 FPS. Właśnie dlatego zgłoszenie „laguje” jest jako opis błędu prawie bezwartościowe.
Dlaczego gracze narzekający na lagi opisują zwykle nie ten problem?
Trzy zupełnie różne problemy gracze nazywają tak samo, czyli lagiem: niski FPS, niski TPS i wysoki ping. Każdy z nich czuje się inaczej i każdy rozwiązujesz w innym miejscu.
| Co zauważa gracz | Czym to naprawdę jest | Gdzie to naprawiasz |
|---|---|---|
| Obraz przycina się przy rozglądaniu się albo w nowym terenie | Niski FPS | Po stronie klienta: Sodium, mniejszy render distance, mniej shaderów |
| Zniszczone bloki wracają, moby przeskakują do przodu, skrzynie otwierają się z opóźnieniem | Niski TPS | Po stronie serwera: Lithium lub Canary, mniej encji, sprzątanie chunkloaderów |
| Wszystko jest płynne, ale reaguje z opóźnieniem, a po skoku cofa cię do tyłu | Wysoki ping | Sieć: lokalizacja serwera bliżej twoich graczy |
Test zajmuje trzydzieści sekund. Naciśnij F3: w prawym górnym rogu masz swój FPS. Potem sprawdź TPS komendą /tps albo pozwól, żeby przyjrzał się temu profiler spark. Jeśli serwer stoi na 20 TPS, a ktoś narzeka, problem leży po stronie jego komputera albo łącza i żadne ustawienie serwera tego nie zmieni. Jeśli TPS spada do 12, nie pomoże żaden mod kliencki. W naszym artykule o optymalizacji serwera Minecraft opisujemy krok po kroku, jak zbić ten czas ticku.
Co siedzi w Fabulously Optimized?
Fabulously Optimized to modpack na Fabric z ponad 12 milionami pobrań na Modrinth, nastawiony wyłącznie na wydajność. Nie dodaje bloków, przedmiotów, mobów ani wymiarów: grasz w zwykłą, vanillową wersję Minecrafta, tylko płynniej. Inaczej niż przy packu z zawartością, takim jak All the Mods 10, nic się nie zmienia w tym, co możesz robić.
Rdzeniem jest Sodium, który w dużej mierze zastępuje silnik renderowania Minecrafta: buduje chunki, czyli fragmenty świata, wydajniej i rysuje mniej rzeczy, których i tak nie widzisz. Na to nakłada się Iris, ładujący paczki shaderów, dzięki czemu odpalasz shadery bez wracania do starego renderera. Poza tym w środku siedzą mody skracające czas ładowania i zużycie pamięci po stronie klienta.
Jest tam również Lithium i to akurat ludzi myli. Lithium optymalizuje logikę serwera, a nie twój obraz. W trybie jednoosobowym ten serwer chodzi wewnątrz twojego klienta, więc tam faktycznie go odczujesz. Jeśli grasz na zewnętrznym serwerze, Lithium z twojego packa klienckiego nie robi dla tego serwera nic: on musi mieć własną kopię.
Niczego nie musisz uzgadniać z administratorem serwera, bo serwer w ogóle nie zauważa, że masz Sodium. Pamiętaj jednak, że to pack na Fabric: jeśli grasz na modpacku na Forge albo NeoForge, Fabulously Optimized nie wchodzi w grę i szukasz pojedynczych modów pod swój loader. Czym różnią się te loadery, tłumaczymy w naszym wyjaśnieniu o modpackach i o tym, jak się je instaluje.
Który mod należy do której strony?
| Mod | Strona | Co robi | Loader |
|---|---|---|---|
| Sodium | Klient | Zastępuje silnik renderowania, wyższy FPS | Fabric |
| Iris | Klient | Ładuje paczki shaderów na bazie Sodium | Fabric |
| Lithium | Serwer (i tryb jednoosobowy) | Optymalizuje logikę ticku bez zmiany zachowania gry | Fabric |
| Canary | Serwer | Optymalizacja ticku dla packów na NeoForge | NeoForge |
| FerriteCore | Serwer (i klient) | 30-40 procent mniejsze zużycie RAM-u | NeoForge |
| ModernFix | Serwer i klient | Krótszy czas ładowania i mniej pamięci przy dużych packach | NeoForge |
Kolumna z loaderem podaje ten loader, na którym najczęściej spotkasz dany mod; wiele z tych modów ma już wersje na kilka loaderów. Zawsze sprawdzaj więc na stronie projektu, czy istnieje build pod twoją dokładną wersję Minecrafta i pod twój loader. Z modem, który nie pasuje, serwer po prostu się nie uruchomi.
Które mody serwerowe naprawdę podnoszą TPS?
Lithium jest najczystszym przykładem tego, czym powinien być mod wydajnościowy: przepisuje vanillową logikę, taką jak AI mobów, aktualizacje bloków i pathfinding, tak żeby na jeden tick przypadało mniej pracy, a gra zachowywała się dokładnie tak samo. Lithium jest modem na Fabric; jeśli stawiasz na NeoForge, porównywalnym wyborem jest Canary. Robią tę samą robotę i nie stawiasz ich obok siebie.
FerriteCore bierze się za pamięć zamiast za czas obliczeń. Duże packi rejestrują ogromne ilości danych o blockstate'ach i modelach, w których sporo się dubluje; FerriteCore scala je i oszczędza od 30 do 40 procent RAM-u. Przy All the Mods 10, z 400 do 500 modami na NeoForge i Minecrafcie 1.21.1, to różnica między ciasnotą a zapasem. ModernFix skupia się przede wszystkim na fazie startu.
Czego te mody nie zrobią, to nie nadrobią za małego pakietu. ATM10 potrzebuje minimum 10 GB, 12 GB dla małej grupy oraz 14 do 16 GB przy pięciu graczach albo więcej. Jeśli nie grasz na modach, tylko na pluginach, Lithium i Canary w ogóle nie wchodzą w grę, a twój zysk siedzi w oprogramowaniu serwera: Paper ma setki poprawek wydajnościowych ponad Spigot i dla większości serwerów jest wyborem domyślnym.
Jak zainstalować to po obu stronach?
Po stronie klienta, dla siebie:
- Zainstaluj launcher, który obsługuje packi z Modrinth, albo dodaj loader Fabric do własnego launchera.
- Wybierz tę wersję Fabulously Optimized, która pasuje do wersji Minecrafta, na której grasz.
- Odpal grę bez zmieniania czegokolwiek i zanotuj swój FPS z ekranu F3.
- Dopiero potem włącz shadery przez Iris i podnoś render distance krok po kroku.
- Jeśli mod, który sam dodałeś, przestał działać, wyrzuć właśnie jego jako pierwszy.
Po stronie serwera, dla wszystkich:
- Sprawdź, jaki loader i jaką wersję Minecrafta ma twój serwer; to decyduje, jakich buildów potrzebujesz.
- Najpierw zmierz: pozwól sparkowi zrobić profil przy normalnym ruchu, żebyś potem miał do czego porównać.
- Pobierz dla każdego moda build pod dokładnie twoją wersję i twój loader, a potem wrzuć je do folderu
mods. - Zrestartuj i przeczytaj log. Brakującą zależność albo złą wersję zobaczysz tam od razu.
- Zmierz jeszcze raz. Jeśli TPS został taki sam, twój problem siedział gdzie indziej.
Kiedy mody wydajnościowe nie pomogą?
Jeśli problemem jest ping, żaden mod tego nie zmieni; odległość do serwera to fizyka. Dla polskiej ekipy serwer powinien stać jak najbliżej graczy i właśnie dlatego obok własnego sprzętu w centrum danych Previder PDC2 w Hengelo mamy lokalizacje we Frankfurcie, Warszawie i Ameryce Północnej. W hostingu Minecraft od MC-Node tę lokalizację wybierasz sam.
Jeśli czas ticku zjada pojedynczy mod, farma albo chunk, Lithium czy Canary tylko przesuną problem. Najpierw znajdź przyczynę przy pomocy sparka i napraw właśnie ją; to częściej daje skrócenie o połowę niż jakikolwiek mod optymalizacyjny. To samo dotyczy zbyt małej ilości RAM-u: 30 do 40 procent, które oszczędza FerriteCore, daje oddech, ale nie zamieni pakietu 8 GB w pakiet 14 GB.
Po stronie klienta Sodium daje na większości maszyn spory zysk, ale na komputerze, który ledwo ciągnie daną wersję, zostaje już tylko przesuwanie marginesów; mniejszy render distance i wyłączone shadery zrobią tam więcej. Gracze Bedrocka wchodzący przez Geyser nie mają z Sodium zupełnie nic, bo odpalają zupełnie innego klienta.
Najczęściej zadawane pytania
Czy Sodium podnosi TPS mojego serwera? Nie. Sodium to mod renderujący po stronie klienta i dotyka wyłącznie twojego FPS. Serwer niczego nie renderuje i nie zauważa, że go odpalasz. Do TPS potrzebujesz modów serwerowych, takich jak Lithium na Fabric albo Canary na NeoForge.
Czy mogę zainstalować Fabulously Optimized na serwerze? Nie, to pack kliencki, który wrzucasz do launchera; na serwerze nie robi nic pożytecznego. Serwerowe odpowiedniki instalujesz osobno w folderze mods, w buildzie pasującym do twojej wersji Minecrafta i twojego loadera.
Jaki TPS jest dobry? 20 to maksimum i jednocześnie norma; wyżej nie ma. W okolicach 18 do 20 gracze nic nie zauważają. Poniżej 15 widać to w zachowaniu mobów i maszyn, a poniżej 10 wszystko robi się ciągnące.
Czy Lithium i Canary działają na serwerze Paper? Nie. Paper obsługuje pluginy, a nie mody, więc nie załadujesz tam ani Lithium, ani Canary. Zysk siedzi tam w samym oprogramowaniu serwera: Paper ma setki poprawek wydajnościowych ponad Spigot, a Purpur to fork Papera z dodatkowymi opcjami, który pozostaje w pełni zgodny z pluginami.
Ile pamięci oszczędza FerriteCore? Od 30 do 40 procent, zwłaszcza przy dużych packach z mnóstwem bloków i modeli. Przy All the Mods 10 na NeoForge i Minecrafcie 1.21.1 jest to odczuwalne, ale nie obniża to dolnej granicy: ten pack nadal chce minimum 10 GB oraz 14 do 16 GB przy pięciu graczach albo więcej.