Riot pracuje nad błędami w kliencie LoLa, co udało się zrobić w 2020, a co naprawią w 2021 roku?
Riot Games porusza temat klienta League of Legends.
Praktycznie każdy gracz LoLa napotkał się kiedyś na błąd związany z klientem. Nie jest to nic nadzwyczajnego, albowiem sam Riot przyznał, że w aktualizacji 10.25 społeczność z 16. regionów doświadczyła ponad 2. milionów awarii.
Prace nad klientem jednak trwają i deweloperzy wciąż starają się go ulepszać. Co udało im się osiągnąć w 2020 roku, a co planowane jest na 2021?
Prace dokonane
Prawie rok temu Riot Games oficjalnie poinformowało fanów, że trwają prace nad poprawą działania klienta League of Legends. Teraz został opublikowany artykuł raportujący dotychczasowe działania oraz plany na przyszłość.
Najpierw posłuchano graczy i zaczęto naprawę od najczęściej zgłaszanych problemów:
- Przeprowadzenie wśród graczy globalnej ankiety na temat klienta, która pomaga nam określić, nad czym powinniśmy pracować. Większość opisanych poniżej osiągnięć jest właśnie wyjściem naprzeciw oczekiwaniom wyrażonym w niej przez graczy.
- Obniżenie czasu bootstrapu (uruchamiania) klienta do 16 sekund dla 90% graczy globalnie (z 29,5 sekundy na początku 2020 roku).
- Udało się to osiągnąć dzięki pracy nad architekturą, w tym 63% redukcji aplikacji ember w bootstrapie (tych, które są wczytywane podczas uruchamiania klienta) oraz 57% redukcji wtyczek w kliencie. Innymi słowy, wyczyściliśmy większość kodu.
- Poprawa reaktywności i niezawodność podczas wybierania i banowania na etapie wyboru bohaterów.
- Poprawione problemy z wydajnością podczas filtrowania bohaterów oraz udoskonalenie samej siatki wyboru bohaterów.
- Sprawdzenie użyteczności poszczególnych funkcji etapu wyboru bohaterów. Bardziej szczegółowe omówienie tego tematu znajdziecie poniżej.
- Skrócenie czasu zatwierdzania i banowania bohaterów.
- Usunięcie wycieków pamięci spowodowanych oprogramowaniem odpowiedzialnym za wybór bohaterów (omówienie poniżej).
- Rozwiązanie problemu całkowitego blokowania klienta i wyświetlania czarnego ekranu, gdy gracze wracali do klienta bezpośrednio z ekranu po grze (gdy gra się skończyła).
- Rozwiązanie problemu zawieszania się klienta po zakończeniu gry na przycisku „Wznów połączenie”, który w ogóle nie powinien być wyświetlany na ekranie po grze.
- W 2020 roku zostało naprawionych 175 błędów, poczynając od drobiazgów po problemy, które były w kliencie „od zawsze”.
- Nazwy graczy pokazywane w czacie jako „…”.
- Niepodświetlający się pasek narzędzi po otrzymaniu wiadomości na czacie.
- Nowi gracze niepojawiający się na panelu społeczności.
- Resetowanie ustawień, gdy gracz logował się z innego komputera.
- Powiadomienia o prezencie powtarzające się przy logowaniu.
- Powrót do czarnego ekranu strony głównej po wykonywaniu różnych działań w kliencie.
- Ulepszenie reaktywności zakładki kolekcji i wszystkich jej podsekcji.
- Skrócenie czasu wczytywania ekranu run o 40%, poprawa płynności interfejsu run i poprawa niezawodności użytkowania.
- Usunięcie 30 wycieków pamięci w całym kliencie. To był szczególnie trudny obszar, który wykryliśmy dopiero pod koniec roku, więc jesteśmy wyjątkowo zadowoleni, że udało się nam wprowadzić ulepszenia przed przerwą świąteczną.
- Wycieki pamięci powstają, gdy część oprogramowania nie zwalnia zajmowanej pamięci po wykonaniu swoich zadań. W efekcie dla innych programów działających w systemie pozostaje mniej pamięci. Nakładanie się takich efektów zawsze prowadzi do problemów, a przyczyny są, jak łatwo zgadnąć, trudne do wykrycia, szczególnie w dużych aplikacjach.
- Przed pierwszym uszczelnieniem wycieków pamięci w patchu 10.23 gracze w regionach Riot doświadczali w każdym patchu 193 000 awarii spowodowanych brakiem pamięci. W ostatnim patchu w 2020 roku, czyli patchu 10.25, odnotowaliśmy 55% spadek tego rodzaju awarii.
Zamiast usunięcia mało używanych opcji w oknie wyboru bohatera, zdecydowano się je zoptymalizować.
Naprawiliśmy już problem związany z emotkami i obecnie pracujemy nad upewnieniem się, że ulubione i misje działają zgodnie z założeniami.
ZOBACZ – Dopa, legenda LoLa o graczach wybierających supporty: “Są najsłabsi ze wszystkich”
Prace w planach
Pomimo tego, że Riot aktualnie realizuje jeszcze plan na pierwszy kwartał tego roku, poinformowano o przyszły pracach. Lista kolejnych problemów do rozwiązania:
- Problemy z łącznością panelu społeczności.
- Problemy z wczytywaniem listy znajomych, wyświetlaniem niewłaściwego statusu, zapełnianiem listy znajomych.
- Gdy lista znajomych jest pełna, gracze nie otrzymują próśb o przyjęcie do znajomych.
- Podczas normalnej gry informacje rankingowe znikają z karty gracza.
- Czat zacina się podczas szybkiego wpisywania i wysyłania wiadomości.
- Foldery same zmieniają ustawienie pomiędzy sesjami gry.
- Foldery LoR i Valorant znikają podczas sortowania według grup i serwerów.
- Kliknięcie opcji „Pokaż daty” w polu czatu powoduje nachodzenie na siebie pól tekstowych.
- Powiadomienia o zaproszeniach do znajomych pojawiają się, gdy opcja jest wyłączona i odwrotnie.
Zamierzamy też zrezygnować ze struktury Javascript (więcej na ten temat za chwilę) i całkowicie przenieść panel społeczności na ember. Ta zmiana jest dobrą okazją, aby przejrzeć i oczyścić problematyczne miejsca w kodzie, co poprawi niezawodność działania i usunie kilka błędów.
Przedstawiono również dwa nowe priorytetowe obszary ulepszenia stabilności klienta League:
- Redukcja awarii ― w patchu 10.25 gracze z 16 regionów Riot doświadczyli 2,2 miliona awarii. Po wstępnym rozpoznaniu wydaje się, że najlepszym sposobem rozwiązania większości z tych problemów jest aktualizacja Chromium do wyższej wersji. Ta przeglądarka stanowi serce architektury klienta League.
- Redukcja błędów Javascript ― w patchu 10.25 gracze z 16 regionów Riot doświadczyli 36 milionów błędów Javascript w kliencie. Chociaż nie wszystkie z tych błędów skutkują awarią lub pogorszeniem wydajności, pamiętajmy, że nawet nieodczuwalne błędy mogą się kumulować, prowadząc w efekcie do jakichś problemów. Zredukowanie tej liczby doprowadzi do poprawy działania wielu elementów klienta.
- Kontynuowanie uszczelniania wycieków pamięci ― naprawa części z nich była w zeszłym roku naszym dużym sukcesem. W tym roku też chcemy odnosić duże sukcesy.
- Dalsza praca nad architekturą w celu oczyszczania kodu ― aby zaktualizować Chromium, o czym wspomnieliśmy powyżej, musimy ukończyć wiele prac wstępnych, które same w sobie usprawnią działanie klienta. Zamierzamy ukończyć te prace i rozpocząć aktualizację Chromium mniej więcej do końca pierwszego półrocza.
- Ostatnio aktualizowaliśmy Chromium w grudniu 2019 roku, kilka miesięcy przed rozpoczęciem kampanii oczyszczania klienta. Wówczas aktualizacja przyniosła dobre wyniki (CTRL + F Chromium). Listę oczekiwanych usprawnień podamy, gdy będziemy bliżej rozpoczęcia tego wydarzenia.