Arena Commander Patch Update

Autor: walltar | Přidáno: 20.7.2014 Kategorie Novinky

Na patch 12.5, který by měl alespoň trochu řešit problémy s multiplayerem, pořád ještě čekáme. Ale by nás alespoň trochu uklidnili tak si pro nás developeři připravili článek který se tímto patchem zaobírá.

ScreenShot0030

Minulý týden jsme psali o procesu, kterým řešíme lag a poskakování lodí, který současně sužuje multiplayer Arena Commandera. Jak víte, tak jsme s patchem 12.4 navýšili počet hráčů 8 násobně. S tím se vynořilo několik problémů s klientem, se servery a celou backen infrastrukturou, které se objevili jen při zatížení. Udělali jsme velký pokrok v opravování těchto problémů a vidíme velké zlepšení na všech frontách, ale patch ještě není připraven na vydání. Tento způsob testování je přesně to, proč máme otevřený model vývoje. Objevení těchto problémů na začátku vývoje zlepší požitek z hraní v delším časovém úseku a zvýší naši efektivitu, protože to uděláme správně hned na začátku.

JukeboxPatch 12.5 je zodpovědný za přidání Jukeboxu, na obrázku, do hangárů současných předplatitelů, kteří si tak budou moci uživit hangár svou oblíbenou muzikou. Vaše jukeboxy byly přiřazeny na váš účet, ale neuvidíte je v hangáru, dokud nenahodíme patch. Dále jsme, v Around the Verse, mluvili o tajemné Vanduulské hrozbě, která ničí lodě UEE. Tato hrozba bude přidána v patchi 12.5.

I když tu dnes patch nebude, chtěli bychom se s vámi podělit o to, na čem jsme doposud pracovali. QA tým tvrdě pracuje na prozkoumání Lagu, který se objevil na veřejných serverech. Wíme, že to je velké zklamání a QA tým se plně věnuje izolování a reprodukování problému, aby ho naši technici mohli vyřešit.

V multiplayeru AC váš klient dostává updaty od vzdáleného klienta přes server a, v případě pohybu, a vaše lokální IFCS simuluje fyziku každého vzdáleného klienta na základě těchto updatů. Váš klient potom odpovídá serveru pozičními a orientačními daty všech vzdálených klientů, které simuluje. Server je potom zkontroluje oproti svým vlastním výpočtům a potom je odesílá ostatním vzdáleným klientům. Pokud je zde rozdíl mezi daty, server dá vašemu klientu správné data a vloží je do IFCS a jemně posune lodě na jejich správné pozice. Pokud je rozdíl příliš velký k jemnému posunutí, jsou warpnuty na své správné pozice a celá simulace začíná od nuly. Jak jsme prozkoumávali tento problém, tak se vše točilo kolem toho, co způsobuje, že simulace vzdálených klientů, někdy tak liší od simulací serveru, až server vynutí warp.

První jsme prozkoumali potencionální problém se servery, tím, že jsme provedli optimalizaci a snížili počet serverů v samotném stroji z 8 na dva, což dramaticky snížilo vytížení sítě každého stroje a snížilo CPU Pegging, ale nevyřešilo to lag se kterým se setkávají hráči. Ale vedlo to ke zvýšení stability a minimalizovali se CPU spiky, což zlepší výkon pro všechny hráče.

Potom jsme se na to podívali ze strany klienta, vytvořili jsme kontrolované prostředí, kde nikdo nestřílel zbraněmi a nepoužíval boost, a potom jsme zvyšovali množství hráčů. Nic z toho nevedlo k žádnému Lagu, takže jsme začali zvyšovat počty proměnných.

Střílení zbraněmi bez strefení hráče neprodukovalo žádný lag, ale jakmile se lidé začali střílet navzájem, lag se objevil a hráči začali poskakovat kolem. Byli jsme schopní reprodukovat lag, ale potřebovali jsme specifičtější problém, takže jsme se ho pokusili najít.

Promluvili jsme si s technickým týmem a ti spekulovali, že spotřeba energie způsobená střílením zbraní a absorpcí zásahů může snižovat energii dostupnou tryskám. A díky lagu, nebo spikům CPU množství energie dostupné tryskám nebylo správně sdělováno z vzdáleného klienta do serveru a do vašeho klienta, takže to váš stroj nemohl zapojit do simulace. To způsobilo, že synchronizace trysek mezi hráči byla špatná, což způsobilo poskakování při nepravidelných manévrech. Technici potom dali QA verzi hry, ve kterých měli k dispozici větší možnost ovládání trysek, aby mohli najít problém.

Když jsme vypnuli všechny energetické fluktuace a dali všem tryskám maximální výkon, tak jsme pořád byli schopní reprodukovat problém, i když méně často. Tohle testování odhalilo problém, že štíty spotřebovávají energii ve velkých špičkách, díky čemuž jsme zlepšili balanci a kód.

Náš síťový tým prozkoumal velikost packetů a problém s propustností. Jejich úsilí taky dramaticky zmenšilo problémy a snížilo velikost packetů a tím pádem i vytížení sítě, ale nevyřešilo to problém.

Současně jsme zavedli další změny ve způsoby, jakým servery zaznamenávají a uchovávají informace. První jsme zjistili, že některé nekritické chyby opakovaně spouštěli server logging a způsobovali pokles výkonu, což mohlo vést k rozdílům v simulaci. Upravili jsme nastavení logging funkce a budeme ji posouvat na jiné vlákno, což ještě sníží její dopad. Znova, zdálo se, že se problémy zmenšili, ale nezmizely úplně.

Generujeme build, který zavede změny ve způsobu, jakým synchronizujeme fyzikální kalkulace. Tyto změny pomohou, aby byli klienti lépe synchronizovaní a časové úseky, za které si synchronizuje se zkrátí, což sníží rozdíly, které mohou nastat ve výpočtech. A to nám dá lepší nástroje jak tyto změny najít a opravit bez poskakování.

Jak píšu tento update, tak jsme našli další problém který může přispívat ke špatné synchronizaci multiplayeru, který má co dočinění s tím jak se server vypořádává s odpojením hráče. Budeme to prozkoumávat přes víkend.

Skvělá zpráva je, že i když jsme přímo neopravili problém, stejně se nám podařilo vylepšit hru. Práce, která jde do 12.5 nejde jen na opravu bugů, celkově zlepší herní zážitek. Taky jsme pracovali na opravách, které přinesou více stability do multiplayeru a opraví problémy, které hráči vidí. Například:

Prohlašování se do hry: V současnosti, když se přihlašujete do hry velký objem dat je přesunut, což může způsobovat lag a teleportování. Naši sítoví technici pracovali na způsobu, jak komprimovat tato data což sníží velikost těchto packetů o 40%.

Pokus o připojení se na plný server: Servery teď mají krátkou prodlevu, než zjistí, že byl dosažen plný počet hráčů. To znamená, že server může být skoro plný a množství hráčů se snaží připojit, ale jen jednomu se to podaří, zbytek je vrácen do hangáru. S tím jak hráči odcházejí, může tento problém přetrvávat konzistentně po celou dobu hry, a ve spojení s velkým přenosem dat při připojování způsobí závažný lag. Naši serveroví technici pracují na opravě problému právě teď.

Vrácen zpět do hangáru: Náš implementovaný VOIP systém se připojoval ke všem hráčům, ale neodpojoval se, když se hráč nečekaně odpojil, což způsobovalo problém s vracením se do hangáru. Oprava pro toto byla vytvořena.

Děkujeme, že jste se zapojili do vývoje a testovacího procesu společně s námi, vaše úsilí na odhalování a katalogizaci těchto problémů byli velmi nápomocné a my bychom nebyli schopní je najít bez vaší pomoci. Tyto problémy opravujeme tak rychle, jak je to jen možné a těšíme se, jak budeme moci rozšířit testování AC na co nejvíce hráčů. Jak můžete vidět do vylepšování multiplayeru jde hodně úsilí, od klientů přes servery, až k backendu a myslíme si, že patch 12.5 velmi vylepší váš zážitek ze hry. Dáme vám vědět co budeme dělat příští týden a vypustíme patch 12.5 jak jen si budeme jistí, že nabízí široké vylepšení pro AC.

  1. Autor: cabalsvk | Přidáno: 20.7.2014, 22:48

    Tajomná Vanduul hrozba? Super, aspoň nová výzva kým bude pozvánka do PvP 🙂

Napsat komentář

Jak mít vlastní obrázek u komentářů

Zaregistrujte se na stránkách Gravatar.com, připojte si k účtu e-mail, který používáte na star-citizen.cz a nastavte si libovolný obrázek.

Snažte se v komentářích držet tématu, na rozsáhlejší diskuse je vhodnější naše fórum