Pracujemy nad ulepszeniami etapu wyboru bohaterów i etapu zakończenia gry.
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.
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.
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:
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ń.
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:
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.
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:
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!