Úklid klienta: Výběr šampionů a konec zápasu
Na začátku roku jsme si dali závazek, že vám budeme ob měsíc přinášet novinky o zákulisní práci, kterou provádíme v rámci snahy vylepšit výkon a spolehlivost klienta League of Legends.
Dnešní článek je pátým dílem série. (Přečtěte si první článek zde, druhý článek zde, třetí článek zde a čtvrtý článek zde.)
Ve zkratce: Po dokončení doby nabíhání klientu a vylepšení architektury se nyní konečně přesouváme na výběr šampionů. Jako novou prioritu jsme si také stanovili konec zápasu.
Výběr šampionů začíná
Když jsme v březnu začali tento blog, zmínili jsme se o dvou velkých cílech: Vylepšení doby nabíhání klienta a reaktivita výběru šampionů – v tomto pořadí. V září jsme konečně snížili dobu nabíhání klienta na 15,5 sekund pro 90 % našich hráčů a oznámili jsme, že práce na výběru šampionů mohou konečně začít.
Zde je naše první hlášení.
Paměťový otisk výběru šampionů
Vždycky jsme očekávali, že výběr šampionů bude potřebovat podobný rozsah oprav jako zbytek klientu: konsolidace aplikací Ember, optimalizace kódu, opravy chyb, zkrátka cokoliv. Během naší hloubkové analýzy jsme narazili na nečekaný typ problému: Paměťový otisk výběru šampionů (a klientu) se zvyšuje s každým průchodem v rámci stejné herní relace.
Pro 90. percentil to vypadá takto:
- Když výběrem šampionů procházíte poprvé, spotřeba paměti u klientu vyskočí na 481 MB
- Podruhé se navýší o dalších 56 MB
- Potřetí a dále se navýší o menší skoky, zhruba 15 až 25 MB
Čím víc zápasů odehrajete během jedné relace, tím je nakonec klient pomalejší, až takřka potřebuje restartovat.
Existence úniků paměti v klientu rozhodně není žádnou novinkou a my jsme zjistili, že část těchto úniků pochází z výběru šampionů. Velikost a rozměr úniků, které vidíme, však vyžaduje změnu našeho přístupu. Souběžně s našimi původními pracovními plány nyní pracujeme na implementaci specializovanějších vývojářských nástrojů, díky kterým budeme moct odhalit a řešit úniky paměti v celém klientu efektivněji, takže vylepšení budeme moct vydávat rychleji.
Řekli jsme souběžně, a zatímco postup byl dosud mírný, máme v plánu vydat první malá vylepšení výkonu výběru šampionů s aktualizací 10.23. Vylepšili jsme výběr vyvolávačových kouzel a skinů totemů, aby při otevření nevytvářely další aplikace Ember. Vedlo to k malému, ale měřitelnému snížení využívání paměti (~1,6 MB), když si hráči během výběru šampionů nastavují kouzla a skiny totemů. Tohle byly dva z těch úniků paměti, které jsme objevily nejdřív, a jejich oprava představovala skvělý způsob, jak aplikovat naše nejlepší metody pro řešení větších paměťových úniků v blízké budoucnosti! Očekáváme, že další znatelná vylepšení vydáme ještě do konce roku.
Revize rozhraní výběru šampionů
Kromě opravování toho, co je rozbité, je další součástí opravy výběru šampionů zjištění toho, na kterých částech zážitku hráčům záleží a u kterých bychom mohli ubrat nebo je dokonce odstranit, protože podle hráčů nejsou tak důležité. Uvažujeme tak, že zážitek s výběrem šampionů je pro cyklus zápasů klíčový, takže čím méně bude tato cesta komplexní, tím méně věcí se bude moct zvrtnout. Díky údajům z dotazníků hráčů jsme zjistili, co je ve výběru šampionů důležité, pokud jde o uživatelský zážitek (UX) a uživatelské rozhraní (UI), a pomocí přidaných metrik v klientu chceme tyto dotazníky propojit s údaji o aktivitách hráčů.
Níže je pár raných výsledků a to, co jsme s nimi udělali nebo s nimi udělat hodláme:
- Hráči chtějí rychlejší a srozumitelnější informace o tom, jestli hra zaznamenala jejich kliknutí na tlačítka, zejména pokud jde o vybírání a zakazování šampionů. Zlepšíme rychlost a spolehlivost vizuální a zvukové zpětné vazby v rozhraní, abychom této srozumitelnosti dosáhli.
- Ceremoniály kolem výběru vyvolávačových kouzel a skinů totemů hráčům nepřijdou tak důležité. Příslušné animace odstraníme (a navíc opravíme problém s únikem paměti, o kterém jsme psali výše).
- Přidáme telemetrii, abychom zjistili, jak často hráči používají určité funkce výběru šampionů, které pro přípravu na zápas nejsou tak klíčové. Pokud budou spadat spíš do kategorie „docela fajn“, možná je odstraníme kvůli maximalizaci nárůstu výkonu.
- Panel gest
- Oblíbení šampioni
- Mise
Nástup do výběru šampionů
Jedním z největších úskalí podle hráčů je to, že během otevírání výběru šampionů mohou narazit na celou řadu problémů. Ve výběru šampionů je klíčová spolehlivost, díky které budou mít hráči pocit, že jsou připraveni soustředit se na zápas, který mají před sebou. Je klíčové, abychom vyřešili všechny problémy, které mohou ovlivnit zakazování šampionů či potvrzování výběru. Rovněž nechceme, abyste se obávali, jestli se skin, vyvolávačova kouzla či runy, které jste používali ve stovkách zápasů, změní, aniž byste o tom věděli.
Zatímco začínáme pracovat v tomto prostoru, primární cíle pro náš přístup spočívají v tom, aby hráči mohli ve výběru šampionů udělat za přiměřenou dobu důležitá rozhodnutí; aby bylo zakazování a vybírání šampionů spolehlivé; a aby se všichni hráči dostali v pořádku do zápasu.
Konec zápasu
Přestože to nepatřilo mezi ty oblasti, na které jsme se chtěli zpočátku soustředit v rámci úklidu klientu, ukázalo se, že konec zápasu (všechno, co se stane mezi kliknutím na „pokračovat“ na obrazovce výhry/prohry, a možností interakce s pozápasovým lobby) je zdrojem frustrace skoro stejně tak velké jako doba nabíhání a reaktivita a spolehlivost výběru šampionů. Soustředíme se na frustraci ve dvou hlavních oblastech:
- Hráči nahlašovali potíže s tím, že klient nějakou dobu po skončení zápasu visí na tlačítku „opětovného připojení“, místo toho, aby okamžitě přešel na Pocty. Příčinu tohoto problému stále prověřujeme.
- Občas se klient zasekne, když se do něj hráči vrátí z obrazovky výhry/prohry, takže nevidí obrazovku Poct nebo pozápasové lobby a nemohou s nimi interagovat. Připravujeme slibné opravy, které by měly vyjít s aktualizací 10.23.
Chyby v nastavení a vyskakovacích oknech
Mezi prací na výběru šampionů a konci zápasu jsme také během několika posledních aktualizací řešili nárůst hlášení ohledně chyb v nastavení. Patří mezi ně věci jako to, že si výběr šampionů nepamatuje vaše vyvolávačova kouzla, a také opětovný výskyt starých vyskakovacích oken (pořád dokola a dokola). Vystopovat tyto problémy bylo skutečně náročné. Několik týmů nezávisle pracovalo na aktualizaci backendových systémů přibližně ve stejnou dobu, takže vytvořily spoustu roztroušených okrajových případů, ze kterých vznikla hotová bouře, kdy spousta hráčů narážela alespoň na jeden problém s nastavením. Od posledního blogu jsme zavedli tři nezávislé opravy, které pomohou vyřešit většinu těchto problémů, přičemž ta nejnovější vyšla v aktualizaci 10.21.
Zatímco pokračujeme ve výrazném vylepšení výběru šampionů i konce zápasu, budeme spolu s našimi interními týmy nadále sledovat a řešit velké kameny úrazu, pokud se nějaké objeví.
A to je v rámci tohoto hlášení vše! Do konce roku máme spoustu práce a rádi bychom vám poděkovali za trpělivost, zatímco pracujeme ze všech sil, aby byl klient pro naše hráče s každou aktualizací lepší!