Pohybový server Counter-Strike 2 je normální server CS2 s vypnutou logikou kol a hrstkou změněných pohybových cvarů. Pro surf to znamená hlavně zvýšit sv_airaccelerate z výchozích 12 někam kolem 100-150, odstranit stamina a nechat hráče respawnovat donekonečna. Pro bunnyhop přidej sv_enablebunnyhopping 1 a obvykle i sv_autobunnyhopping 1. KZ je černá ovce: seriózní KZ komunity používají vyhrazený plugin pro Metamod, který pohybová pravidla nahrazuje, místo aby cvary jen pošťuchoval. Nad každým z nich sedí timer plugin, který potřebuje zóny pro každou mapu a místo, kam ukládat rekordy. Samotný server je nenáročný - pohybové servery tráví CPU na fyzice hráčů, ne na střelách - ale na konfiguraci jsou citlivější než veřejný defuse server, protože jediný špatný cvar změní, jak se hrají všechny mapy.
Surf, bhop a KZ: co který potřebuje#
Všechny tři se často házejí do jednoho pytle a od serveru chtějí každý něco jiného.
| Režim | Základní mechanika | Co server mění | Potřebný plugin |
|---|---|---|---|
| Surf | Získávání rychlosti strafováním na šikmých rampách | Vysoké zrychlení ve vzduchu, žádná stamina, žádné zranění pádem | Timer, volitelně |
| Bhop | Řetězení skoků bez ztráty rychlosti | Zapnutý bunnyhopping, často auto-hop, vysoké zrychlení ve vzduchu | Timer, volitelně |
| KZ | Přesné šplhání a skákání, měřené skoky | Pohybová pravidla blíž CS:GO, často samostatný systém režimů | Obvykle KZ plugin |
Surf a bhop jsou cvarové režimy: běžný server se správnou konfigurací a surfovou mapou je hratelný surf a timer je jen vrstva navíc. KZ je pluginový režim: KZ mapy zahraješ i na běžném serveru, ale komunita očekává pohyb, checkpointy, jumpstaty a rekordy, které poskytuje KZ plugin, a jeho hráči hned poznají, že chybí.
Všechny tři závisí na mapách vytvořených pro ně, z nichž téměř všechny pocházejí z Workshopu. Workshopové mapy a kolekce pro CS2 popisují jejich načítání; stručně: jedna veřejná kolekce na režim a host_workshop_collection na spouštěcím řádku.
Požadavky a dimenzování#
Pohybové servery jsou na hráče levné. Žádná hit registration pod zátěží, žádná fyzika granátů, málo entit a hráči se rozprostírají po mapě, místo aby se tísnili v jednom úzkém místě. Něco stojí počet hráčů a zápisy timeru do databáze.
| Server | RAM | CPU | Poznámky |
|---|---|---|---|
| Surf nebo bhop, až 16 hráčů | 1-2 GB | 1 jádro | Většina komunitních serverů |
| Surf nebo bhop, 24-32 hráčů | 2-3 GB | 1,5-2 jádra | Velké mapy, mnoho replayů |
| KZ s pluginem a rekordy, 16-24 | 2 GB | 1,5 jádra | Jumpstaty a checkpointy jsou nenáročné |
| Cokoli z toho s replay boty | přidej 0,5-1 GB | přidej 0,5 jádra | Replaye jsou nejdražší funkce |
Replay boti - duchové aktuálního rekordu - jsou funkce, která z lehkého serveru udělá středně náročný. Každý replay jsou uložená pohybová data přehrávaná přes bota, což stojí paměť na záznam a CPU na bota. Pokud se server s replayi drží a bez nich je v pořádku, máš odpověď.
Disk záleží víc než paměť, pokud provozuješ několik kolekcí: surfové mapy bývají velké a kolekce třiceti z nich zabere navíc několik gigabajtů k základní instalaci.
Pohybové cvary#
Patří do game/csgo/cfg/server.cfg, nebo lépe do konfigurace specifické pro režim, kterou z něj spustíš příkazem exec, takže server přepneš ze surfu na bhop změnou jednoho řádku. Výchozí hodnoty níže odpovídají současným buildům CS2; kterýkoli z nich ověříš na svém buildu zadáním názvu cvaru bez hodnoty do konzole, která vypíše aktuální hodnotu i výchozí.
| Cvar | Výchozí v CS2 | Surf | Bhop | Co dělá |
|---|---|---|---|---|
sv_airaccelerate | 12 | 100-150 | 100-1000 | Zrychlení ve vzduchu |
sv_enablebunnyhopping | 0 | 1 | 1 | Odstraní strop rychlosti při dopadu |
sv_autobunnyhopping | 0 | 0 nebo 1 | 1 | Podržení skoku skáče při dopadu samo |
sv_staminamax | 80 | 0 | 0 | Systém staminy; 0 ho odstraní |
sv_staminajumpcost | 0.08 | 0 | 0 | Rychlost ztracená při skoku |
sv_staminalandcost | 0.05 | 0 | 0 | Rychlost ztracená při dopadu |
sv_falldamage_scale | 1 | 0 | 0 | Násobitel zranění pádem |
sv_maxvelocity | 3500 | 3500 nebo víc | 3500 | Pevný strop jakékoli rychlosti |
sv_accelerate | 5.5 | výchozí | výchozí | Zrychlení na zemi |
sv_friction | 5.2 | výchozí | výchozí | Tření na zemi |
sv_gravity | 800 | výchozí | výchozí | Gravitace |
sv_airaccelerate 150sv_enablebunnyhopping 1sv_autobunnyhopping 0sv_staminamax 0sv_staminajumpcost 0sv_staminalandcost 0sv_falldamage_scale 0sv_maxvelocity 3500Dvě čísla, o kterých se lidé přou, jsou sv_airaccelerate a auto-hop. Zrychlení ve vzduchu 150 je běžná hodnota pro surf; 100 působí těžší a 1000 je prakticky okamžitá kontrola ve vzduchu, kvůli které je mnoho surfových map triviálních. U bhopu je auto-hop volbou mezi režimem o strafování (auto-hop zapnutý) a režimem o časování klávesy skoku (auto-hop vypnutý, často se skákáním kolečkem myši). Vyber jedno pro každý server a napiš to do názvu serveru; nesoulad očekávání je nejčastější stížnost, kterou pohybové servery dostávají.
Proč se pohyb v CS2 liší od CS:GO
Veteráni surfu a bhopu si všimnou, že pohyb v CS2 se při stejných hodnotách cvarů nepodobá tomu z CS:GO. Část je dána sub-tick vstupem: skoky a strafy dostávají časovou značku mezi ticky, místo aby se k nim přichytávaly, což mění pocit z perfektně načasovaných skoků. Část je v tom, že CS2 běží na 64 ticích a argument -tickrate na spouštěcím řádku se nerespektuje, takže servery se 102,4 a 128 tiky, které některé pohybové komunity provozovaly v CS:GO, nejsou k dispozici. Hosting s tím nic nezmění. Co tick rate doopravdy znamená vysvětluje, proč je číslo ticku menší částí pocitu, než se zdá.
Existují Metamod pluginy určené právě k úpravě pohybového chování, na které cvary nedosáhnou - například odstranění limitu rychlosti na zemi, který ořezává pre-speed. Fungují tak, že za běhu záplatují binárku hry, takže jsou první, co se po aktualizaci CS2 rozbije.
Nastavení kol, která vypnou hru#
Pohybový server nesmí nikdy ukončit kolo, koupit zbraň ani počítat skóre týmů. K pohybovým cvarům je potřeba neutralizovat i mechaniku kol. Obvyklý základ je spuštění s game_alias custom nebo casual a těmito nastaveními:
mp_freezetime 0mp_roundtime 60mp_timelimit 30mp_ignore_round_win_conditions 1mp_respawn_on_death_ct 1mp_respawn_on_death_t 1mp_autoteambalance 0mp_limitteams 0mp_solid_teammates 0mp_death_drop_gun 0mp_buytime 0mp_warmuptime 0sv_full_alltalk 1mp_ignore_round_win_conditions 1 je to důležité: zabrání ukončení kola, když je jeden tým prázdný, což na pohybovém serveru platí pořád. mp_solid_teammates 0 nechá hráče procházet skrz sebe, což se hodí u startovní zóny, kde se všichni nakupí. mp_timelimit určuje, jak dlouho mapa běží před hlasováním, a na surfovém serveru je třicet minut málo pro těžkou mapu a hodně pro lehkou - mnoho komunit skončí u 30-45.
Pamatuj, že konfigurace herního režimu se při každém načtení mapy spouští po server.cfg. Pokud se nastavení kol pořád resetuje, spusť svou pohybovou konfiguraci příkazem exec ze souboru s přepsáním pro daný režim - na casual serveru gamemode_casual_server.cfg, který vytvoříš vedle gamemode_casual.cfg od Valve - nebo nech nastavení provést timer plugin při startu mapy - většina to umí. Příkazy a cvary serveru CS2 popisují pořadí spouštění podrobně.
Timer pluginy, zóny a rekordy#
Timer je to, co ze surfové mapy dělá soutěž: startovní zóna, cílová zóna, čas, žebříček a obvykle etapy, checkpointy a replaye. Na CS2 běží každý timer na Metamod:Source a většina nad ním na CounterStrikeSharp - timery pro SourceMod z CS:GO nefungují. Metamod a CounterStrikeSharp pro CS2 popisuje instalaci celého stacku.
Na co se u timeru dívat:
- Podpora režimů. Některé timery zvládají surfové, bhopové i KZ mapy s nastavením pro každou mapu; jiné jen jeden druh. SharpTimer je široce používaný timer pro CounterStrikeSharp, který pokrývá surfové, bhopové i KZ mapy. Před instalací zkontroluj na stránce projektu, který build CS2 aktuálně podporuje.
- Práce se zónami. Zóny jsou boxy, které timer spouštějí a zastavují. Dobré timery čtou zóny z triggerů samotné mapy, pokud je autor pojmenoval běžným způsobem, a nechají admina nakreslit zóny ve hře u map, které je nemají. Zóny se ukládají pro každou mapu zvlášť, do souboru nebo do databáze.
- Úložiště. Rekordy musí přežít restarty. Malé servery si vystačí s lokálním souborem SQLite; cokoli s více servery nebo webovým žebříčkem chce síťovou databázi. Každý herní tarif na RE:NODE obsahuje slot pro databázi vytvořený v panelu s vygenerovaným hostem, uživatelem a heslem - než se na to spolehneš, ověř, že timer daný databázový engine podporuje.
- Replaye. Volitelné a nejdražší funkce. Zapni je, až bude fungovat zbytek.
KZ: plugin je režim
KZ komunity se brzy zorganizovaly kolem CS2KZ, pluginu pro Metamod od globálního KZ týmu, který implementuje KZ pohybové režimy, checkpointy, jumpstaty a spojení s globální službou rekordů. Není to plugin pro CounterStrikeSharp a nahrazuje velkou část výše popsaného ladění cvarů vlastním nastavením režimů. Pokud chceš, aby se běhy z tvého serveru počítaly do globálních žebříčků, požadavky uvádí dokumentace samotného pluginu - obvykle schválený server, nemodifikovaný plugin a vlastní klíč API. KZ server, který chce jen lokální rekordy, může globální část úplně vynechat.
Mapy, kolekce a nastavení pro jednotlivé mapy#
Surfové mapy mají tier, obvykle 1 až 6 nebo 1 až 8, a pověst serveru tvoří většinou seznam map. Dobrý veřejný surfový server hraje převážně mapy tier 1-3 a pár těžších, protože noví hráči z mapy tier 5 do minuty odejdou. Bhop a KZ mají vlastní stupnice obtížnosti a platí stejný princip: jeden server pro začátečníky a jeden pro stálé hráče funguje líp než jeden, který štve obě skupiny.
Některé mapy byly postavené pro jiná pohybová nastavení - surfová mapa navržená na zrychlení ve vzduchu 100 se při 150 hraje jinak a některé bhopové mapy počítají s konkrétní gravitací. Většina timerů podporuje přepsání cvarů pro jednotlivé mapy; jinak je cestou enginu konfigurace pro mapu:
game/csgo/cfg/maps/surf_example.cfgMnoho pluginů a některé buildy při načtení spustí konfiguraci pojmenovanou podle mapy; pokud ta tvoje ne, je spolehlivou cestou nastavení pro mapy v timeru.
Hlasování o mapě na pohybových serverech obvykle ukazuje tier mapy vedle názvu. Pluginy typu rock-the-vote pro CounterStrikeSharp přijímají seznam map s názvy a workshopovými id a některé timery integrují vlastní menu pro nominace.
Výkon a síť#
Profil CPU pohybového serveru je neobvyklý: nízká cena na hráče, ale citlivost na dobu snímku, protože celá hra je o přesném pohybu. Server, jehož snímek jednou za minutu cukne, je na defuse serveru neviditelný a na bhopovém řetězu zničující. Co způsobuje špičky:
- Zápisy do databáze v hlavním vlákně. Timer, který zapisuje rekord synchronně, zastaví server na tak dlouho, jak trvá dotaz. Použij timer zapisující asynchronně, drž databázi blízko a nespouštěj velký dotaz na žebříček při každém startu mapy.
- Replaye. Nahrávání a přehrávání běhů je skutečná práce. Omez počet replay botů.
- Logování zatěžující disk. Některé timery logují každý dotek zóny. Až bude vše fungovat, podrobné logování vypni.
- Změny map. Načtení velké surfové mapy je výpadek vždycky. Udržuj rozumný seznam map a vyhni se naplánovaným restartům ve špičce.
Na tarifu s pevným podílem CPU je poctivou kontrolou graf CPU v konzoli proti limitu, když je server plný. Pokud sedí na stropu, server je škrcen a pohyb bude působit nekonzistentně; na RE:NODE je to pomalé, ne nebezpečné, a server na 100 % se kvůli tomu nikdy nepozastaví, ale je to důvod omezit pluginy nebo přejít na vyšší tarif. CPU vs RAM pro herní servery uvádí obecné pravidlo.
Síťový provoz na hráče je podobný jako na kterémkoli serveru CS2. Hráči s vysokou latencí to na pohybových mapách poznají víc než kdekoli jinde, protože jejich vlastní pohyb se predikuje lokálně a server ho opravuje - vysoký jitter se projeví tím, že tě na rampě něco vrací zpátky. Latence, jitter a ztráta paketů vysvětluje, jak poznat špatnou trasu od vytíženého serveru.
Řešení potíží#
Hráči sjíždějí z ramp nebo na surfu zastaví na místě. Obvykle je to problém mapy, ne serveru: některé porty pro CS2 mají potíže s kolizemi na spojích ramp. Zkus stejné místo na jiné mapě. Pokud se to děje všude, zkontroluj sv_airaccelerate a že žádný plugin nevrací pohybové cvary při startu mapy.
Rychlost v bhopu je omezená kolem 300. sv_enablebunnyhopping je 0, nebo ho konfigurace režimu vrátila po spuštění server.cfg. Zkontroluj živou hodnotu v konzoli po načtení mapy, ne soubor.
Timer se nespustí. Pro tuto mapu nejsou zóny. Nakresli je v admin menu timeru, nebo zkontroluj, zda mapa používá názvy triggerů, které timer očekává.
Rekordy po restartu zmizely. Timer zapisoval do lokálního souboru, který byl nahrazen, nebo do databáze, ke které se nedostal, a tiše přešel na záložní variantu. Zkontroluj v logu pluginu při startu řádek o připojení k databázi.
Kola pořád končí. mp_ignore_round_win_conditions je vypnuté, nebo ho přepsala konfigurace herního režimu. Spusť konfiguraci kol příkazem exec až po konfiguraci režimu.
Po aktualizaci CS2 přestalo všechno fungovat. Řádek Metamodu v gameinfo.gi byl vrácen a pohybové pluginy, které záplatují paměť, potřebují nové buildy. Obnov řádek a před opětovným otevřením počkej na aktualizace pluginů. Měj zálohu funkční složky addons - co dělat, když aktualizace modu něco rozbije uvádí obecný postup.
FAQ#
Jaké sv_airaccelerate použít na surfovém serveru CS2?
150 je běžná veřejná hodnota a bezpečná výchozí volba. 100 dává těžší kontrolu ve vzduchu, kterou někteří veteráni preferují; hodnoty výrazně výš dělají většinu map snadnými. Vyber jednu a drž se jí, protože rekordy vytvořené při jedné hodnotě nejsou srovnatelné s jinou.
Můžu v CS2 provozovat surfový nebo KZ server se 128 tiky?
Ne. CS2 běží na 64 ticích se sub-tick vstupem a argument -tickrate na spouštěcím řádku ignoruje. Pohyb se proto liší od CS:GO a také kvůli sub-tick systému a žádné nastavení hostingu to nezmění.
Potřebuji na surfový server plugin?
Ke hraní ne. Výše uvedené cvary a surfová mapa dají hratelný surf. Timer plugin přidá časy, zóny a rekordy, což hráče udrží, takže většina serverů si ho přidá, jakmile základ funguje.
Má být auto-bunnyhopping zapnutý?
Na veřejném bhopovém serveru obvykle ano: režim je pak o strafování, ne o časování kolečka myši, a noví hráči zůstanou déle. Mnoho zkušených komunit provozuje samostatný server s vypnutým auto-hopem. Napiš svou volbu do názvu serveru.
Bude můj timer pro SourceMod ze CS:GO fungovat v CS2?
Ne. SourceMod v CS2 neběží. Timery byly přepsány pro Metamod a CounterStrikeSharp a rekordy z databáze CS:GO se bez konverzního nástroje od autorů timeru nepřenesou.
Kolik hráčů zvládne surfový server?
Hra povoluje až 64 slotů, ale většina surfových serverů jede na 16-32, protože se mapy zaplní a replaye s víc hráči stojí víc. Dimenzuj podle grafu CPU při plném serveru, ne podle počtu slotů.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.