EntityCulling (Bukkit)
Ukrywa istoty i bloki po stronie serwera, aby poprawić FPS klienta
- Dostępne pliki
- 1
- Obsługiwane wersje
- 1
- Najnowszy plik
- 29.01.2021
EntityCulling
Ukrywa byty i elementy (głównie skrzynki), które gracze nie mogą zobaczyć z powodu bloków na drodze (occlusion culling), a następnie blokuje pakiety dla tych bytów. Prowadzi to do następujących efektów:
- Znaczne zwiększenie liczby klatek na sekundę (FPS) klienta w dużych bazach z masą skrzynek i farm, ponieważ klient nieprawidłowo wycina je po stronie klienta (occlusion culling), co pozostawia dużo niewykorzystanej wydajności. Zaobserwowano nawet ponad 500% więcej FPS! (z 52 FPS do 270 FPS w tej samej lokalizacji, przy braku innych zmian)
- Mody minimap i hackklienty nie widzą mobów/przedmiotów/skrzynek itp. przez ściany
- Zmniejsza liczbę wysyłanych pakietów, ponieważ klient nie otrzymuje ruchu ukrytych bytów
- Rzeczy pojawiają się nagle, gdy obejdziesz róg (to w pewnym sensie cena za to, że wykonywane jest to po stronie serwera)
- Wciąż możesz słyszeć moby i skrzynie, nawet jeśli ich nie widzisz
Zasadniczo zamiana obliczeń CPU serwera (asynchroniczne obliczenia) + pamięć (potrzebuje przechowywać migawki wszystkiego dla drugiego wątku + cache) na FPS klienta i do pewnego stopnia anty-cheat. Ponadto nie polecałbym tego na serwerze z dużą liczbą graczy; jest to raczej skierowane do serwera casual+ SMP z przyjaciółmi lub gdy próbujesz utrzymać płynność FPS, gdy twoja baza staje się zbyt duża dla twojego PC.
To nie zmieni świata (nie modyfikuje bloków/bytów), więc najgorszy scenariusz to atak przez niewidzialnego potwora z powodu jakiegoś problemu. Pamiętaj jednak: to nie jest w 100% przetestowane, więc nie narzekaj, jeśli niewidzialny creeper wybuchnie twojej bazy lub jeśli wyciek pamięci spowoduje awarię serwera ^^.
Wymaga
- Bukkit/Paper/Spigot 1.16.4/5!
- ProtocolLib
- Ważne: to przeładowuje zapis, ale może pozostawić artefakty wizualne do ponownego zalogowania
Ostrzeżenie
To jest trochę eksperymentalne/konceptowe oprogramowanie. Nie było testowane z więcej niż 5 graczami jednocześnie na serwerze, więc nie mogę powiedzieć, jak wydajność będzie się skalować (mam nadzieję, że przynajmniej do 30 graczy, ale na chwilę obecną nie mogę tego potwierdzić). Więc proszę nie wrzucaj tego na swój SMP serwer z 80 graczami i nie oczekuj, że to zadziała dobrze. Ten plugin bardziej dowodzi, że klient źle radzi sobie z renderowaniem rzeczy, które nie są widoczne.
Znane problemy
- Ramki przedmiotów wyglądają wizualnie poprawnie po ponownym pojawieniu się, ale ich hitbox znajduje się w niewłaściwej lokalizacji
- Wizualnie dochodzi do przerwy, gdy jeden z dwóch bytów zostanie wycięty
Kredyty
RoboTricker stworzył oryginalną serwerową implementację asynchronicznego raytracing occlusion culling dla Transport-Pipes. Ja wziąłem to i zoptymalizowałem do takiego poziomu, że potrafi wykonać tysiące przebiegów promieni na sekundę w zdefiniowanym rozmiarze obszaru (100x100x100 obecnie ze graczem w centrum).
Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.
entityculling-1.0.0.jar 29.01.2021
Jak bezpiecznie sprawdzić ten plugin
Wybierz zgodny plik
Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.
Zachowaj kopię
Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.
Przeczytaj log
Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.