OCZYSZCZANIE KLIENTA: wybór bohatera i zakończenie
Na początku tego roku zadeklarowaliśmy, że co dwa miesiące będziemy publikować aktualizacje poświęcone zakulisowym pracom mającym na celu poprawę wydajności i niezawodności działania klienta League of Legends.
Dzisiejsza porcja treści jest piątym wpisem z tej serii. (Tutaj przeczytacie pierwszy blog, tutaj drugi, tutaj trzeci, a tutaj czwarty).
W SKRÓCIE: po skróceniu czasu uruchamiania klienta i usprawnieniu architektury przyszedł wreszcie czas, by zabrać się za wybór bohaterów. Naszym nowym priorytetem staje się też etap zakończenia gry.
Wybór bohaterów ― początek
Dawno temu, czyli w marcu, gdy rozpoczynaliśmy tę serię wpisów na blogu, nakreśliliśmy sobie dwa główne cele: skrócenie czasu bootstrapu klienta i usprawnienie reaktywności podczas wyboru bohaterów ― dokładnie w tej kolejności. We wrześniu udało się nam wreszcie skrócić czas bootstrapu (czas potrzebny na uruchomienie klienta) do 15,5 sekundy dla 90% graczy i ogłosiliśmy rozpoczęcie prac nad etapem wyboru bohaterów.
Oto nasza pierwsza aktualizacja na ten temat.
Zużycie pamięci podczas wyboru bohaterów
Zawsze wydawało się nam, że etap wyboru bohaterów będzie wymagać tego samego poziomu poprawek co reszta klienta — konsolidacji aplikacji ember, optymalizacji kodu, naprawy błędów i tak dalej. Podczas naszej pogłębionej analizy odkryliśmy jednak zaskakujący problem: za każdym razem, gdy przechodzicie do wyboru bohaterów (i klienta) podczas tej samej sesji gry, zużycie pamięci wzrasta.
Dla 90 percentyla wygląda to tak:
- Podczas pierwszego przejścia do wyboru bohaterów zużycie pamięci przez klienta skacze do 481 MB.
- Kolejne powoduje następny skok o 56 MB.
- Trzecie i kolejne powodują już mniejsze skoki o około 15 do 25 MB.
![graphcomms.jpg](https://cmsassets.rgpub.io/sanity/images/dsfx7636/news_live/bcc8ec8de7c189f48df3e74d7088fd26058b45ae-1542x624.jpg)
W efekcie rozgrywanie kolejnych gier podczas tej samej sesji doprowadza klienta do takiej niemrawości, że w końcu jedynym wyjściem jest reset.
Istnienie wycieków pamięci w kliencie zdecydowanie nie jest niczym nowym i wiedzieliśmy, że niektóre z tych wycieków pochodzą z etapu wyboru bohaterów. Wielkość i zasięg zaobserwowanych wycieków wymagała jednak od nas zmiany podejścia. Równocześnie z oryginalnie zaplanowanymi działaniami, pracujemy obecnie nad zaimplementowaniem bardziej wyspecjalizowanych narzędzi deweloperskich, które pozwolą nam skuteczniej identyfikować i usuwać wycieki pamięci w całym kliencie, skracając w ten sposób czas, jaki zajmuje wprowadzanie ulepszeń.
Równocześnie oznacza, że chociaż postępy są nieznaczne, to planujemy wprowadzenie naszych pierwszych małych ulepszeń działania wyboru bohaterów w patchu 10.23. Udoskonaliliśmy wybór czaru przywoływacza i skórki totemu, dzięki czemu ich otwarcie nie powoduje uruchomienia aplikacji ember. Prowadzi to do małej, ale mierzalnej redukcji zużycia pamięci (około 1,6 MB), gdy gracze decydują o czarach i skórkach totemu na etapie wyboru bohaterów. Te dwa wycieki pamięci odkryliśmy najwcześniej, a usuwanie ich pozwoliło nam wypracować najlepsze praktyki postępowania, które będziemy stosować podczas usuwania większych wycieków pamięci w przyszłości! Do końca roku zamierzamy wprowadzić więcej zauważalnych udoskonaleń.
Wybór bohaterów ― analiza UX/UI
Niezależnie od naprawiania tego co jest popsute, dalsze usprawnianie wyboru bohaterów wymaga określenia, które elementy są istotne dla graczy, a które możemy odsunąć na dalszy plan, czy nawet usunąć, ponieważ graczom na nich nie zależy. Chodzi o to, że działanie wyboru bohaterów ma zasadnicze znaczenie dla podstawowego przebiegu gry, więc im mniej komplikacji pojawia się na jego drodze, tym mniej możliwości występowania błędów. Wykorzystaliśmy ankiety, aby zapytać graczy, co jest dla nich ważne, jeśli chodzi o doświadczenia użytkownika (UX) i interfejs użytkownika (UI) podczas wyboru bohaterów, i uzupełniamy je o wskaźniki zaczerpnięte z klienta, aby wesprzeć informacje z ankiet danymi obrazującymi aktywność graczy.
Oto nasze wstępne wyniki oraz plany ich wykorzystania:
- Gracze chcą szybszej i wyraźniejszej informacji o tym, czy kliknięcie przycisku zostało odnotowane, szczególnie jeśli chodzi o wybieranie i banowanie bohaterów. Aby uzyskać taki jasny przekaz, udoskonalimy szybkość i niezawodność wizualizacji i informacji zwrotnej zapewnianej przez interfejs.
- Ceremonie związane z wyborem czaru przywoływacza i skórki totemu nie są według graczy tak istotne. Usuwamy związane z nimi animacje (poza naprawą opisanych powyżej wycieków pamięci).
- Posłużymy się też telemetrią, aby sprawdzić, jak często gracze korzystają z poszczególnych funkcji wyboru bohaterów, które nie są integralną częścią przygotowania do zbliżającej się rozgrywki. Jeśli okaże się, że należą do kategorii „miło by było”, może zdarzyć się, że usuniemy je, aby osiągnąć lepszą sprawność działania.
- Panel emotek.
- Preferowany bohater.
- Misje.
Przejście do wyboru bohaterów
Jedną z największych bolączek zgłaszanych przez graczy jest to, że przechodzenie do wyboru bohaterów może wiązać się z całym wachlarzem problemów. Niezawodność działania gry na etapie wyboru bohaterów jest niezbędna, aby gracze mogli mieć poczucie, że są gotowi do czekającej ich rozgrywki. Kluczowe zatem jest, abyśmy usunęli wszystkie problemy, które mogą zakłócać banowanie bohaterów lub zatwierdzenie wyboru. Nie chcemy też, abyście musieli się martwić, czy skórka, czary przywoływacza lub runy, których używaliście w setkach wcześniejszych gier, zmienią się bez waszej wiedzy.
Podczas prac nad tym obszarem gry nasze podstawowe cele koncentrują się wokół zapewnienia graczom odpowiedniego czasu na podjęcie kluczowych decyzji podczas wyboru bohaterów, upewnienie się, że banowanie i wybieranie bohaterów przebiega niezawodnie, i umożliwienie wszystkim graczom bezproblemowego przejścia do gry.
Etap zakończenia gry (EOG)
Na początku kampanii oczyszczania klienta etap zakończenia gry (wszystko co dzieje się pomiędzy wciśnięciem „kontynuuj” na ekranie zwycięstwa/porażki, a możliwością działania w poczekalni po grze) nie był naszym priorytetem, okazało się jednak, że wywołuje niemal tyle samo frustracji, co czas bootstrapu oraz problemy z reaktywnością i niezawodnością działania wyboru bohaterów. Koncentrujemy się obecnie na likwidacji problemów w dwóch głównych obszarach:
- Gracze zgłaszają problemy polegające na tym, że klient zawiesza się na przycisku ponownego połączenia po zakończeniu gry, zamiast natychmiast przejść do ekranu honoru. Wciąż badamy przyczyny tego problemu.
- Czasami klient blokuje się, gdy gracze przechodzą do niego z ekranu zwycięstwa/porażki, przez co nie mogą zobaczyć ani skorzystać z ekranu honoru lub poczekalni po grze. Mamy w zanadrzu pewne obiecujące rozwiązania, które powinny pojawić się w patchu 10.23.
Błędy związane z ustawieniami i powiadomieniami
Przez ostatnich klika patchów, pomiędzy pracami nad etapem wyboru bohaterów i etapem zakończenia gry, zajmowaliśmy się falą zgłoszeń dotyczących błędów w ustawieniach. Chodzi o sprawy takie jak „zapominanie” waszych czarów przywoływacza na etapie wyboru bohaterów, a także ponowne pojawianie się starych powiadomień (znowu i znowu, i znowu). Odkrycie przyczyn tych problemów było, delikatnie mówiąc, dość skomplikowane. Mniej więcej w tym samym okresie kilka zespołów niezależnie od siebie pracowało nad aktualizacją swoich systemów, co doprowadziło do pojawienia się wielu rozproszonych skrajnych przypadków, które w efekcie połączyły się w idealną zawieruchę różnych form problemów z ustawieniami. Od ostatniego wpisu na blogu wprowadziliśmy trzy niezależne rozwiązania w celu złagodzenia większości z tych niedogodności, ostatnio w patchu 10.21.
Kontynuując wprowadzenie istotnych ulepszeń do etapu wyboru bohaterów i etapu zakończenia gry, będziemy też w dalszym ciągu współpracować z naszymi wewnętrznymi zespołami, aby śledzić i rozwiązywać błędy sprawiające graczom dużo problemów, gdy się pojawią.
To była nasza bieżąca aktualizacja! Mamy jeszcze wiele do zrobienia do końca roku i pragniemy podziękować za waszą cierpliwość w czasie, gdy dokładamy wszelkich starań, aby w każdym patchu doskonalić dla was klienta!