Novinky / Hry

GDC 2020: Jak byla Call of Duty: Modern Warfare Latency po beta verzi „opravena“

Call of Duty: Modern Warfare využívá řadu technik ke zmírnění účinků různých typů latence sítě na všechny hráče v daném zápase. Infinity Ward nabídlo ve videu před spuštěním Modern Warfare krátký přehled o tom, jak funguje jeho netcode, a na konferenci vývojářů digitálních her tento týden studio představilo podrobnější popis svého přístupu k vytváření sítí - a jak byl tento přístup ovlivněn některými vysokými profilovat videa na YouTube.

Problém každé konkurenční hry spočívá v tom, jak nejlépe synchronizovat stav serveru se stavem herního klienta na vašem osobním počítači. Pokud se věci nesynchronizují, budete skákat po prostředí nebo uvidíte, jak to dělají i ostatní hráči, dokud si server a klient nebudou moci začít znovu rozumět.

Modern Warfare běží na dedikovaných serverech, jak vysvětluje Mitchell Sanborn, ředitel online inženýrství pro Infinity Ward během svého rozhovoru GDC, takže data ve hře z vašeho domácího stroje jsou odesílána. Na server, jsou zpracovávána s daty všech ostatní hráči v zápase, poté server odešle výsledky zpět vašemu klientovi. Všechno na serveru je tedy „skutečnou“ verzí hry a hra, kterou hrajete doma, je pouze její vizualizací.

Když nastanou problémy s připojením, herní klienti a server se inteligentně pokusí uhodnout chybějící informace. Pokud tedy dojde k přerušení dat, která odesíláte na server, server extrapoluje vaši polohu - to znamená, že bude nadále předpokládat, že se pohybujete stejným směrem jako váš poslední záznam, a poté se sám opraví, až bude připojení obnoveno. V ostatních případech vás server může díky předpovědi přinutit seřadit tam, kde si myslí, že byste měli být.

Na straně klienta hra začíná vytvářet vyrovnávací paměť záznamů před jejich odesláním na server, aby nedošlo k vynucení serveru k extrapolaci nebo předpovědi, kde budete. To znamená, že server bude mít přesnější informace o vaší poloze na mapě.

Miniature YouTube

Vyrovnávací paměť vstupů však stojí: latence. Vytvoření této vstupní vyrovnávací paměti nějakou dobu trvá, a v extrémnějších případech to znamená, že zažijete latenci mezi hrou a serverem. V původní verzi Modern Warfare - té, která byla součástí veřejné beta verze - hra silně upřednostňovala ukládání do vyrovnávací paměti a upřednostňovala přesné znázornění vašich pohybů před nízkou latencí.

Během beta verze hra zpomalila požadavky na vyrovnávací paměť v dobách špatného výkonu sítě. Proto, říká Sanborn, analýza výkonu sítě YouTube pro beta verzi Modern Warfare zjistila, že je mnohem latentnější než jiné tituly Call of Duty a mnoho dalších her FPS.

Sanborn říká, že byly dva důvody, proč tento „horlivý fanoušek YouTube“ našel problémy, se kterými se setkal. První by bylo, kdyby byly algoritmy navržené k řešení těchto problémů s přirozenou sítí špatně vyladěny. Ten druhý by byl, kdyby byl problém s připojením. Vývojáři nemohli přijít na to, jaký byl problém, pokud měli data o připojení tohoto youtubera ke hře - což udělali.

Miniature YouTube

Data ukázala, že klient youtubera trpěl horším připojením než ostatní hráči během stejných zápasů. „U některých zápasů tento hráč rozhodně zažil extrémní podmínky sítě, které nebyly ideální. Jsem si jistý, že latence by pro tohoto klienta byla špatná. Jde jen o to, že to vypadá – každopádně na základě tohoto grafu – že by to byl problém související s připojením. “

Ale zatímco problémy se sítí pro tohoto jediného uživatele byly extrémní, vývojáři také zjistili, že většina zákazníků tráví výrazně více času vyrovnávací pamětí, než se očekávalo. A v návaznosti na reakci po rozbití zkušeností s latencí YouTuber se hráči vyslovili pro touhu po zážitku, který je co nejvíce bez latence.

Na konci hry tedy Infinity Ward obrátil plyn pro ukládání do vyrovnávací paměti. Tam, kde byl dříve algoritmus vyladěn tak, aby eliminoval chyby mezi serverem a klientem prostřednictvím ukládání do vyrovnávací paměti, byl nyní naladěn tak, aby eliminoval ukládání do vyrovnávací paměti přijetím určitého množství desynchronizace mezi klientem a serverem.

Nejnovější servery Modern Warfare vedly k rovnováze, která upřednostňuje snížení latence spíše než čistou synchronizaci mezi klienty a servery - koneckonců, to si hráči nakonec přáli. Algoritmy jsou vždy vyladěny tak, aby poskytovaly rovnováhu mezi všemi těmito technikami zmírňování a poskytovaly nejlepší zážitek pro co nejvíce hráčů - alespoň co nejvíce v mezích současné technologie.