Performances
Version honnête : les scripts ne sont pas la partie lourde. C’est la map.
[the_apocalypse_project] est une conversion de toute la carte par-dessus Los Santos, environ 166 ymaps et un MLO. Beaucoup de ses ymaps ont des extents de streaming de plusieurs kilomètres, bien plus grands que les props qu’ils contiennent. Le moteur croit donc que la moitié de la map est à portée en même temps, et tout se charge au même moment autour d’un joueur qui spawn. C’est de là que vient la pression sur les pools.
La vraie solution est dans les maps : resserrer les extents gonflés dans CodeWalker, avec une marge de sécurité. Ça vaut plus que toutes les lignes de pool ci-dessous.
Tailles de pool
Section intitulée « Tailles de pool »server.cfg augmente certains pools avec increase_pool_size (la méthode moderne, gameconfig.xml n’est plus pris en compte) :
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, AttachmentExtensionElles sont modestes volontairement, pas au maximum. Les mettre au max coûte de la mémoire sur chaque client et Building bien au-dessus de ~500 pose ses propres problèmes.
Garde set onesync_population false. La population ambiante remplit exactement les pools que tu ne peux pas augmenter.
Les limites de zombies baissent déjà toutes seules :
- un temps de frame serveur au-dessus de
Zombies.Net.perfBudgetMs(70) réduit la limite, jusqu’àperfMinFactor - un total d’entités entre
entitySoftetentityHard(1400 / 1900) la réduit, et au-delà de hard les rôdeurs les plus éloignés disparaissent - un joueur sous
fpsLowFPS a moins de rôdeurs autour de lui
Règle perfBudgetMs d’après la moyenne de frames que /znet affiche sur un serveur au repos. Si ton serveur est simplement plus lent, la valeur par défaut coupera des zombies en permanence.
Côté client, Streaming.PoolGuard.clientPedLimit (180) bloque les nouveaux peds de rôdeurs avant que le pool de peds soit plein, et un nettoyage d’urgence retire d’abord les cadavres, puis les rôdeurs les plus éloignés.
resmon 1 -- client, per resource msprofiler record 500 -- then profiler view/znet -- zombie caps and server frame/pools -- client ped poolIl n’y a pas de /bsperf, les resources ne gardent pas de chronomètres internes. Utilise resmon.
En octobre, j’ai passé en revue tous les scripts client. Presque toutes les boucles par frame sont déjà limitées (elles dorment 250-1000 ms au repos). Les rares qui tournent toujours à chaque frame sont des choses dont le moteur a besoin à chaque frame (masquer des parties du HUD, densité de population, lumières du blackout). Si tu vois une des nôtres haute dans resmon au repos, c’est un bug, dis-le-moi.
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.