Ž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).
Ran a set with @Keoma89 before and after the netcode patch (he had his correctly installed from the beginning; mine was incorrectly installed at first, then patched correctly in the next clip)
It got a LOT more playable… for a 3-bar connection lol pic.twitter.com/KSSH6OHz4u
— Arlieth (@Arlieth) January 9, 2020
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.
Please don't use it on matchmaking thought! Firstly it's imbalanced and also it might provoke issues on an unpatched game, at best the opponent will definitely have 1-sided rollbacks and you dont. (PC or PS4 shouldnt matter).
But definitely use it to play with your friends!
— Loïc *WydD* Petit (@WydD) January 9, 2020
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
From California, I played players in Texas, Toronto, Georgia, North Carolina, and even Tunisia & Saudi Arabia, and even the intercontinental connections were ok to playable. And I played a couple players before & after they patched their end, and it was a big improvement as well
— Bundist UltraDavid (@ultradavid) January 9, 2020
Huge shoutouts to Altimor for the work on this. I know it's not perfect, I know it can create problems when playing vs PS4 players with it. But it's a gigantic improvement
Here's the VOD of me playing folks from far away. See for yourself: https://t.co/7r08mYHhLF
— Bundist UltraDavid (@ultradavid) January 9, 2020
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.