Wydajność
Uczciwa wersja: skrypty nie są najcięższe. Mapa jest.
[the_apocalypse_project] to konwersja całej mapy na bazie Los Santos, około 166 ymap i jedno MLO. Wiele jej ymap ma zasięgi streamingu rzędu kilometrów, dużo większe niż propy w środku. Silnik uważa więc, że połowa mapy jest w zasięgu naraz, i wszystko ładuje się w tej samej chwili wokół spawnującego gracza. Stąd bierze się presja na pule.
Prawdziwa naprawa jest w mapach: zawęzić rozdęte zasięgi w CodeWalkerze, z bezpiecznym zapasem. Warte więcej niż wszystkie linie pooli poniżej.
Rozmiary pooli
Dział zatytułowany „Rozmiary pooli”server.cfg podnosi część pooli przez increase_pool_size (nowoczesny sposób, gameconfig.xml nie jest już respektowany):
increase_pool_size "Building" 500increase_pool_size "StaticBounds" 2000increase_pool_size "EntityDescPool" 5000increase_pool_size "TxdStore" 8000increase_pool_size "FragmentStore" 4000increase_pool_size "fragInstGta" 800increase_pool_size "Object" 800# + interior/portal/occlusion, LightEntity, AttachmentExtensionWartości są celowo skromne, nie maksymalne. Maksimum kosztuje pamięć u każdego klienta, a Building znacznie powyżej ~500 powoduje własne problemy.
Zostaw set onesync_population false. Ambientowa populacja zapełnia dokładnie te pule, których nie da się podnieść.
Limity zombie same się już zmniejszają:
- czas klatki serwera powyżej
Zombies.Net.perfBudgetMs(70) tnie limit, aż doperfMinFactor - łączna liczba encji między
entitySoftaentityHard(1400 / 1900) też go tnie, a powyżej hard znikają najdalsze szwendacze - gracz poniżej
fpsLowFPS dostaje mniej szwendaczy w pobliżu
Dostrój perfBudgetMs na podstawie średniej klatek, którą /znet pokazuje na bezczynnym serwerze. Jeśli twój serwer jest po prostu wolniejszy, domyślna wartość będzie ciągle ucinać zombie.
Po stronie klienta Streaming.PoolGuard.clientPedLimit (180) zatrzymuje nowe pedy szwendaczy, zanim pula pedów się zapełni, a awaryjne czyszczenie usuwa najpierw zwłoki, potem najdalszych szwendaczy.
Pomiary
Dział zatytułowany „Pomiary”resmon 1 -- client, per resource msprofiler record 500 -- then profiler view/znet -- zombie caps and server frame/pools -- client ped poolNie ma /bsperf, resource’y nie trzymają wewnętrznych liczników. Użyj resmon.
W październiku przejrzałem każdy skrypt klienta. Prawie każda pętla na klatkę jest już ograniczona (w bezczynności śpi 250-1000 ms). Te nieliczne, które zawsze chodzą co klatkę, to rzeczy potrzebne silnikowi w każdej klatce (ukrywanie części HUD, gęstość populacji, światła blackoutu). Jeśli zobaczysz któryś z naszych wysoko w resmon w bezczynności, to błąd, daj mi znać.
bs19.org · Privacy · Terms · Cookie settings
Cookies and outside content
The site only needs two essential cookies to keep you logged in and protect forms. Videos and streams from YouTube and Twitch load from their servers, which can set their own cookies, so they stay off until you say yes. Nothing is pre-ticked and you can change your mind any time with "Cookie settings" at the bottom of every page. Details.
Questions about the server, the framework or the site? A real person reads this, usually within a day.