W naszym najnowszym wpisie na blogu omawiamy postępy w procesie ulepszania klienta League.
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.
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.
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:
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.
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.