Oczyszczanie klienta trwa
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ę działania klienta League of Legends.
Dzisiejsza porcja treści jest trzecim wpisem z tej serii. (Tutaj przeczytacie pierwszy blog, a tutaj — drugi).
W skrócie: robimy dalsze postępy na drodze do celu, jakim jest uporządkowanie kodu umożliwiającego działanie klienta. Przy okazji rozprawiamy się z kłopotliwymi błędami, które prezentujemy poniżej. Mimo dotychczasowych osiągnięć nadal mamy sporo do zrobienia. Kampania oczyszczania trwa.
NAJNOWSZE POSTĘPY
Jak już wspomnieliśmy w naszym pierwszym wpisie na temat klienta, uważamy, że najlepsza metoda służąca ulepszeniu jego działania polega na konsolidacji i zmniejszeniu liczby wtyczek i aplikacji opartych na Ember używanych w kliencie.
Jakby ktoś nie wiedział: wtyczki są narzędziami, które pozwalają dzielić kod klienta na łatwiejsze w obsłudze fragmenty. Aplikacje oparte na Ember wspomagają działanie interfejsu użytkownika klienta.
Czynimy dalsze postępy w realizacji tego celu. Poniższy wykres prezentuje łączną liczbę wtyczek i aplikacji Ember zmieniającą się z upływem czasu.
Patrząc na powyższy wykres, myślicie być może: — No dobrze, ale jaki wpływ mają te liczby na sprawność klienta? Odpowiedź na to pytanie nie jest łatwa, ale w dużym uproszczeniu brzmi następująco: mniej wtyczek i aplikacji Ember przekłada się na większą wydajność kodu klienta. Mniej „treściwy” kod oznacza lepsze działanie klienta, który staje się jednocześnie prostszy w obsłudze dla deweloperów.
Jednym z przyjętych przez nas wskaźników mierzących efekty naszych wysiłków jest czas potrzebny na uruchomienie klienta. Poniżej widać wykres wartości tego wskaźnika wraz z upływem czasu:
Jak zdążyliście są zorientować, od kilku miesięcy czas bootstrapu pozostaje na stosunkowo stałym poziomie. Biorąc pod uwagę niebezpieczeństwa towarzyszące naszej pracy, uznajemy taką sytuację za względny sukces. Roszady czynione wokół pokaźnych fragmentów kodu i gmeranie przy wtyczkach może prowadzić do nieprzewidzianych problemów, jeżeli będziemy nieostrożni, ale póki co chyba nic takiego się nie dzieje.
Mamy nadzieję, że na przestrzeni kilku kolejnych patchów czasy bootstrapu zaczną być nieco krótsze, zwłaszcza obecnie, gdy już mamy nowe rozwiązanie, dzięki któremu możemy inteligentniej określić, które wtyczki wczytują się za każdym razem, gdy odpalacie klienta. (Zajrzyjcie do najnowszego wpisu o kliencie, który szerzej omawia tę kwestię w części zatytułowanej „Problem z pokrewieństwem”).
Przez co najmniej kilka kolejnych miesięcy zamierzamy utrwalać dotychczas uzyskane rezultaty, ponieważ jesteśmy zdania, że ograniczanie liczby wtyczek i aplikacji Ember przynosi pokaźne i długofalowe korzyści. Robiąc generalne porządki w ekosystemie kodu, ułatwiamy sobie realizację zadań polegających na usuwaniu błędów, zapobieganiu utratom pamięci i awariom.
A skoro o błędach i awariach mowa, zajmijmy się niedawno wprowadzonymi poprawkami.
OSTATNIO NAPRAWIONE BŁĘDY
Przez kilka ostatnich miesięcy zespół pracujący nad klientem zmagał się z mnóstwem błędów, kombinując na prawo i lewo. Począwszy od patcha 10.13 błędy naprawione w kliencie będą mieć swój osobny dział w opisach patchów League.
Tymczasem poniżej prezentujemy listę niektórych błędów w kliencie, z którymi od początku roku uporał się nasz zespół w kolejnych patchach:
- 10.1 — Miejsce położenia klienta nie będzie już resetowane po zakończeniu gry.
- 10.1 — Naprawiono błąd powodujący, że logo League obok przycisku Graj czasem znikało.
- 10.1 — [MAC] Naprawiono błąd powodujący, że klient czasem ulegał awarii, gdy ponownie nawiązał połączenie z Internetem po braku łączności trwającym ponad minutę.
- 10.1 — Od teraz zmiany tła profilu są poprawnie widoczne dla innych graczy.
- 10.3 — Klikanie linków rolką nie powoduje już awarii klienta.
- 10.3 — Od teraz ikona sklepu będzie prawidłowo wyróżniona, jeśli zostanie naciśnięta po użyciu skrzyni hextech w łupach.
- 10.3 — Sortowanie Kolekcji nie będzie już domyślnie przełączać na odwrotny porządek alfabetyczny po zmianie filtrów sortowania.
- 10.3 — Sortowanie Kolekcji według wartości „Osiągnięte kamienie milowe” działa już poprawnie.
- 10.4 — Usunięto problem, wskutek którego panel społeczności i okno czatu przestawały działać prawidłowo podczas wyboru bohaterów w następstwie niektórych czynności (usunięcie znajomego, zostanie usuniętym przez kogoś innego lub zostanie zablokowanym przez kogoś).
- 10.4 — Znowu można wyszukiwać bohaterów w Kolekcji za pomocą alternatywnych metod wpisywania fraz.
- 10.4 — Wyszukiwanie bohaterów w Kolekcji nie uwzględnia już wielkości liter.
- 10.4 — Sortowanie bohaterów w Kolekcji według kolejności alfabetycznej jest już dokładne.
- 10.4 — Klient nie wyświetla już czarnego ekranu po kliknięciu „Zagraj ponownie”, jeśli gracz rozpoczął grę podczas przeglądania spersonalizowanych ofert.
- 10.5 — Usunięto niepotrzebny pasek przewijania u dołu listy bohaterów w Kolekcji.
- 10.7 — Naprawiono błąd powodujący, że przycisk umożliwiający wysłanie zaproszenia do znajomych przestawał działać w niestandardowych poczekalniach.
- 10.7 — Ekran informacyjny „Wyświetl harmonogram” nie jest już rozmyty podczas przeglądania nadchodzących turniejów w centrum Clash.
- 10.8 — Od teraz po wyjściu z zakładki emotek z niezapisanymi zmianami powiadomienie o zapisaniu będzie wyświetlane prawidłowo.
- 10.8 — Zamknięcie ekranu podsumowania rozgrywki nie przenosi już gracza na stronę profilu.
- 10.8 — Ikona przywoływacza jest już wyświetlana prawidłowo podczas logowania do klienta.
- 10.9 — Naprawiono błąd powodujący, że nie można było wybrać ikony przywoływacza Niebieskiego Stwora Walczącego w Zwarciu.
- 10.9 — Gracze nie będą już otrzymywać nieprawidłowej wiadomości o błędzie po próbie zalogowania do League, gdy gra będzie niedostępna z powodu przerwy technicznej.
- 10.9 — Naprawiono błąd powodujący, że nazwy zablokowanych graczy pozostawały niewidoczne na liście zablokowanych.
- 10.9 — Rozmaite poprawki mające na celu usunięcie przypadków utraty pamięci spowodowanych starszą wersją Ember.
- 10.10 — Naprawiono błąd powodujący, że po zalogowaniu strony na runy nieprawidłowo wyświetlały się jako brakujące lub usunięte.
- 10.10 — Od teraz strony na runy automatycznie się zamykają po kliknięciu przycisku Graj.
- 10.10 — Zmiana układu stron na runy nie powoduje już powstawania duplikatów ani awarii.
- 10.10 — Usunięto błąd powodujący, że niektórzy gracze nie mogli edytować stron na runy.
- 10.11 — Ustawienia „Włącz tryb niskich wymagań” i „Zamknij klienta podczas gry” są teraz prawidłowo zapisywane po zamknięciu okna ustawień.
- 10.11 — Naprawiono błąd powodujący, że przycisk rzadkości skórek w Kolekcji stawał się częściowo pusty.
- 10.11 — Usunięto błąd powodujący, że czasem gracze nie mogli włączyć trybu obserwatora.
- 10.12 — Usunięto błędy w działaniu stron na runy podczas wyboru bohatera.
Na tym na razie kończy się nasza lista. Jeżeli znaleźliście błąd, który chcielibyście zgłosić, śmiało poinformujcie nas o nim w tym formularzu. Możecie również przesłać uwagi, używając przycisku zgłoszenia błędu w prawym dolnym rogu klienta.
NASTĘPNE KROKI
W toku prac nad klientem zadajemy sobie absolutnie podstawowe pytanie: czy klient League jest godzien naszych graczy?
Odpowiedź jest oczywista: nie. Przynajmniej na razie.
Jest jeszcze dużo błędów do naprawienia, awarii do uniknięcia i problemów w głębokiej architekturze, z którymi trzeba się uporać. Podejmowany od początku tego roku wysiłek będzie trwać do czasu, gdy na postawione pytanie: „Czy klient jest godzien was, graczy?” padnie zdecydowana odpowiedź: „Tak”.
Minie trochę czasu, nim osiągniemy ten cel. Będziemy stale informować was o czynionych postępach. W ciągu kilku kolejnych patchów zamierzamy redukować liczbę wtyczek i aplikacji opartych na Ember, eliminując jednocześnie napotykane błędy. Zależy nam, aby do chwili opublikowania kolejnej aktualizacji rozpocząć kolejną fazę naszej kampanii, w trakcie której skupimy się na poprawie płynności wyboru bohaterów.
Tradycyjnie już dziękujemy wam za czas poświęcony na grę. Za kilka miesięcy zaserwujemy kolejny wpis poświęcony klientowi.