Že je SFV netcode špatně se ví prakticky od první bety. Už tehdy se začal projevovat problém s tím, že se lag nedistribuuje proporcionálně; a navíc že například pokud máte špatný internet nebo frame dropy, tak zatímco vám hra jede normálně, soupeř trpí. Tak s tím je teď konec – přinejmenším na PC.


Než se pustím do rozsáhlejšího rozboru, rovnou vám dám odkaz na stažení diskutovaného SFV netcode modu. Ten je k nalezení na redditu ZDE, případně na Githubu ZDE

A teď už k věci:

V principu celý netcode v SFV funguje tak, že hra vytvoří “umělý” lag aby zajistila synchronní běh. Takže například mezi dvěma hráči může být delay 4 framy (67ms) a ten se rozdistribuuje tak, že oba mají 2 framy lagu plus dva framy rollbacku, zatímco mezi nimi putují data obsahující záznam o 4 framech inputů.

Až na to, že tohle je teorie a v praxi to Capcomu nefunguje, což zjistili lidé už během první online bety. Protože když začne jeden z hráčů lagovat  nebo třeba dropovat framy, věci se zvrhnou. Zatímco jeho soupeř dostává balíky označené (z pohledu jeho herních hodin) jako “z minulosti” (staré timestampy) a díky tomu má obrovský rollback (až 15 framů, čili 1/4 vteřiny), jeho soupeř dostává (z pohledu svých herních hodin) inputy z budoucnosti, díky čemuž mu zcela zmizí veškerý online lag a hra jede stejně plynule, jako by byla offline.

A co s tím? Inu… Stačí do kódu přidat podmínku, že vaše herní hodiny se nikdy nesmí “předběhnout” o víc než 1/2 prodlevy, kterou mají data putující mezi vámi a soupeřem. 

A přesně to také udělal jeden modder. To, co Capcom nezvládl za 4 roky on dal dohromady za 2 dny, přičemž většina práce byla reverse engineering zdrojového kódu. Samotná úprava pak trvala nějakých 30 minut.

Zajímavé je i to, že mod funguje dokonce i ve chvíli, kdy ho máte nainstalovaný jen vy a váš soupeř nikoli. Samozřejmě pak funguje jen pro vás, takže pokud váš net škytne, soupeř bude rollbackovat jako o život, protože celý delay se překlopí k němu. Zajímavé je, že autor modu už napasal, že pracuje i na fixu téhle věci, aby se dalo bez problémů hrát proti lidem bez modu (a z PS4).

Jedinou obavu mají hráči z toho aby Capcom, který tenhle bug nedokázal 4 roky opravit, teď nezačal banovat uživatele tohoto modu za jeho používání (něco ve smyslu “získávání neoprávněné výhody” nebo “manipulace s daty”, znáte korporáty), ale snad se nic takového nestane. Rovněž hráči z PS4 jsou značně… rozrušení, protože se k téhle vychytávce na své platformě prostě nedostanou.

A celé to funguje skvěle. UltraDavid celý mod testoval a zjistil, že díky němu má teď lepší spojení z Kalifornie do Saudské Arábie, než měl dřív na spoustu hráčů ze Západního pobřeží.

https://twitter.com/ultradavid/status/1215193173997174784

Pro zajímavost: autorem tohoto modu je Altimor, jeden z nejrespektovanějších reverse-engineering masterů v FGC. V minulosti udělal například hitbox viewery pro DBFZ a UNIST, díky němu a jeho DFPSlayer modu jde pracovat s daty z MVCI, udělal input reader pro Tekken 7… Prostě OSOBNOST.