Online multiplayer a co ovlivňuje kvalitu spojení
Online multiplayer nestojí na rychlosti tarifu. Hra posílá malé objemy dat, obvykle desítky až stovky kilobitů za sekundu, takže i průměrná přípojka má kapacity nazbyt. Rozhoduje, jak dlouho data k serveru putují, jestli tahle doba kolísá a jestli cestou něco nezmizí. K tomu se přidává to, jak často server stav hry přepočítává a jak si hra se zpožděním poradí sama.
Ping, jitter a ztrátovost jako tři různé potíže
Ping je doba, za kterou zpráva dorazí k serveru a odpověď zpět, udává se v milisekundách. Jitter popisuje, jak moc se tato doba mění mezi jednotlivými zprávami. Ztrátovost paketů je podíl zpráv, které nedorazily vůbec. Každá z těchto veličin se ve hře projevuje jinak a každá mívá jinou příčinu, proto je nemá smysl házet do jednoho pytle pod slovem „lag“.
| Veličina | Jak se projeví ve hře | Kde nejčastěji vzniká |
|---|---|---|
| Ping | Stálá prodleva mezi akcí a její odezvou | Vzdálenost k serveru, trasa přes síť poskytovatele |
| Jitter | Nerovnoměrný, cukavý pohyb ostatních hráčů | Wi-Fi, vytížená domácí síť |
| Ztrátovost paketů | Teleportování postav, vracení vlastního pohybu | Rušení, vadný kabel, zaplněná linka |
Podle mě se ping přeceňuje a jitter podceňuje. Na stálých šedesát milisekund si člověk zvykne a hra s nimi umí počítat, kdežto zpoždění skákající mezi dvaceti a sto dvaceti milisekundami rozhodí odhady hry i hráče. Když ping roste, vyplatí se nejdřív zjistit, na kterém úseku cesty se to děje – postup popisuje článek o tom, jak vysoký ping vystopovat příkazy ping a tracert.
Většina her posílá herní data protokolem UDP. Ten ztracené zprávy znovu nedoručuje, protože opakovaně poslaná poloha hráče by dorazila pozdě a byla by k ničemu. Hra tedy chybějící zprávu oželí a čeká na další. Co se děje, když jich chybí několik za sebou, rozebírá text o tom, proč packet loss vypadá jinak než pomalé připojení.
Tickrate serveru určuje, jak jemně hra měří čas
Server nepočítá hru spojitě, ale v krocích. Tickrate udává, kolikrát za sekundu stav světa přepočítá a rozešle hráčům. Při 64 krocích za sekundu trvá jeden krok necelých 16 milisekund, při 128 necelých 8 milisekund, při 20 krocích už celých 50 milisekund. Rychlé střílečky proto mívají tickrate vysoký, kdežto hry s desítkami hráčů na rozlehlé mapě si vystačí s nižším, aby server zátěž unesl.
Tickrate hráč neovlivní, určuje ho provozovatel. Považuji ale za užitečné o něm vědět, protože vysvětluje situace, které síť nezavinila: dva hráči vystřelí téměř současně a rozhodne, do kterého kroku serveru se čí zpráva vešla.
Netcode: predikce na klientovi a rollback
Kdyby hra čekala s každým krokem na potvrzení serveru, postava by se rozešla až po uplynutí celého pingu. Proto se používá predikce na klientovi: váš počítač pohyb provede okamžitě a server ho potvrdí dodatečně. Když se výsledek serveru liší, klient polohu opraví, což vnímáte jako škubnutí zpět.
Ostatní hráče hra naopak zobrazuje o kousek v minulosti a pohyb mezi dvěma přijatými stavy dopočítává interpolací. Server pak při vyhodnocení zásahu vrací čas o zpoždění střelce, aby platilo to, co střelec na obrazovce opravdu viděl. Odtud známá situace, kdy vás někdo zasáhne až za rohem.
Rollback je příbuzný postup používaný hlavně v bojových hrách. Hra odhadne vstupy soupeře, běží dál bez čekání, a když skutečné vstupy dorazí a liší se, vrátí se o pár snímků zpět a stav přepočítá. Při nízkém a stálém pingu si toho nevšimnete, při vysokém se objeví drobné přeskoky v animacích.
Domácí síť a to, na čem hra běží
Většina potíží vzniká mezi počítačem a routerem. Wi-Fi sdílí pásmo se všemi zařízeními v dosahu včetně sousedních sítí, takže i silný signál znamená proměnlivé zpoždění. Za sebe bych u počítače a konzole trvala na kabelu všude, kde ho lze natáhnout, protože odstraní jitter i ztráty najednou; kdy stačí dobře nastavená bezdrátová síť, shrnuje srovnání Wi-Fi a kabelu pro kompetitivní hry.
Druhým častým viníkem je odchozí směr. Domácí přípojky mívají upload několikanásobně menší než download a zálohování fotek do cloudu nebo spuštěný stream ho zaplní celý. Herní pakety pak čekají ve frontě routeru.
Záleží také na tom, kdo hru hostuje. U dedikovaného serveru mají všichni srovnatelné podmínky, u her hostovaných jedním z hráčů závisí kvalita na jeho přípojce a hostitel hraje bez zpoždění. Rozdíly včetně typů NAT popisuje článek o tom, jak se liší dedikovaný herní server od peer-to-peer.
Pořadí kroků, když se hra chová divně
Začala bych tím, co nic nestojí a trvá pět minut. Zapněte si ve hře síťový ukazatel, který většina titulů nabízí v nastavení, a zapište si ping, jitter a ztrátovost. Potom připojte počítač kabelem, zastavte stahování a zálohy na ostatních zařízeních a hodnoty porovnejte.
Pokud se čísla zlepší, příčina je doma a dá se odstranit. Pokud ne, zkontrolujte zvolený region serveru – vzdálenost nevyváží žádné nastavení routeru. Teprve potom má smysl měřit trasu a obracet se na poskytovatele, a to s uloženým výpisem měření, ne s větou, že to laguje.
Zdroje
- IETF, RFC 768 – User Datagram Protocol
- Valve Developer Community, Source Multiplayer Networking
- Glenn Fiedler, Gaffer On Games – série článků Networked Physics a What Every Programmer Needs To Know About Game Networking
- GDC, Tim Ford: Overwatch Gameplay Architecture and Netcode (přednáška 2017)
- IEEE, standard 802.11 pro bezdrátové lokální sítě
Publikováno: 13. 03. 2026
Kategorie: Online