CLIENT: Recapitulare 2020 și planuri de viitor
Ne-am angajat să publicăm actualizări regulate despre lucrările pe care le facem pentru îmbunătățirea performanțelor și a fiabilității clientului LoL.
Actualizarea de astăzi este cea de-a șasea din serie. (Consultați primul, al doilea, al treilea, al patrulea și al cincilea articol aici.)
Pe scurt: în 2020 ne-am axat pe îmbunătățirea timpului de încărcare a clientului, a arhitecturii, a selecției campionilor, a finalului meciului, a scurgerilor de memorie/închiderii forțate a clientului și pe eliminarea bug-urilor. Lucrăm la planificarea primului trimestru din 2021, axându-ne pe îmbunătățirea panoului social și pe continuarea îmbunătățirii stabilității generale a clientului.
Recapitulare 2020
Echipa noastră a fost formată la sfârșitul anului 2019 și o mare parte a activității incipiente a reprezentat-o înțelegea stării clientul LoL. Ca parte a acelui proces, am decis sa ne concentrăm pe părțile clientului de care jucătorii la nivel global (voi toți!) se plângeau cel mai mult, astfel încât clientul să funcționeze mai bine. Mai sunt multe de făcut, dar reflectând asupra anului 2020, am reușit să aducem îmbunătățiri semnificative clientului.
- Am lansat sondajul global pentru jucători privind clientul, pe care l-am folosit pentru a stabili la ce trebuie să lucrăm. Majoritatea realizărilor pe care le vedeți mai jos reprezintă un rezultat a ceea ce jucătorii vor să vadă îmbunătățit.
- Am redus durata secvenței de inițializare (pornirea) la 16 secunde pentru 90% dintre jucătorii la nivel global (de la 29,5 secunde la începutul lui 2020).
- Am reușit să facem asta prin muncă arhitecturală, inclusiv o reducere de 63% a duratei secvenței de inițializare a aplicațiilor Ember (cele care se încarcă la pornirea clientului) și o reducere de 57% a plugin-urilor din client. Altfel spus, am curățat o cantitate mare de cod.
- Am îmbunătățit rapiditatea și fiabilitatea selecției campionilor la confirmarea și blocarea campionilor.
- Am rezolvat problemele privind performanța în timpul filtrării campionilor și am adus îmbunătățiri grilei de selecție a campionilor.
- Am investigat utilizarea anumitor caracteristici din selecția campionilor. Vom discuta mai multe despre asta mai jos.
- Am îmbunătățit durata de confirmare și blocare a campionilor.
- Am remediat scurgerile de memorie din selecția campionilor (evidențiate mai jos).
- Am remediat blocarea completă a clientului și apariția ecranului negru când jucătorii revin la acesta folosind fluxul Sfârșitul jocului după ce un meci se încheie.
- Am remediat blocarea clientului la butonul ''Reconectare'' la sfârșitul jocului, când acesta nu ar trebui să apară.
- Am eliminat 175 de bug-uri în 2020, de la probleme mici la cele care au fost prezente dintotdeauna:
- numele jucătorilor afișate ca ''...'' în chat;
- bara de activități care nu clipește la primirea unui mesaj în chat;
- jucători noi care ratează panoul social;
- restabiliri ale setărilor când un jucător se conectează de pe un alt computer;
- apariția repetată a notificărilor despre cadouri la conectare;
- jucători care sunt redirecționați la un ecran negru după mai multe acțiuni în client.
- Am îmbunătățit timpul de răspuns al tab-ului ''Colecții'' și al fiecărei secțiuni secundare ale acestuia.
- Am redus durata de încărcare a tab-ului ''Rune'' cu 40% și am transformat interfața acestuia într-una mai plăcută și mai fiabilă.
- Am remediat 30 de scurgeri de memorie din client. Aceasta este o zonă deosebit de dificilă pe care am descoperit-o la sfârșitul anului și suntem extrem de mulțumiți că am putut să aducem îmbunătățiri înainte de perioada sărbătorilor.
- Scurgerile de memorie apar când o parte a programului nu-și mai poate elibera memoria după finalizarea unei sarcini. Astfel, va rămâne mai puțină memorie pentru alte programe care rulează în sistem. Rezultatele combinate sunt întotdeauna rele, dar cauzele sunt extrem de dificil de stabilit, în special în aplicațiile mari.
- Înainte de remedierea primei scurgeri de memorie în patch-ul 10.23, jucătorii din regiunile Riot s-au confruntat cu 193.000 de închideri forțate din cauza epuizării memoriei în fiecare patch. La momentul ultimului patch din 2020, patch-ul 10.25, am văzut o scădere cu 55% a acestor închideri forțate!
Așa cum am menționat, am folosit răspunsurile voastre de la sondajul global pentru client pentru a lua decizii privind lucrurile pe care să ne concentrăm. Îmbunătățirile de mai sus reprezintă progresul privind părțile la care ați făcut referire cel mai mult, dar în cele din urmă, acestea contează doar dacă simțiți că lucrurile se îndreaptă în direcția potrivită. De aceea, ne bucurăm să vă anunțam că, pe lângă valorile bazate pe joc, am văzut tendințe pozitive privind sondajele de la jucători din toate regiunile, ceea ce înseamnă că din ce în ce mai puțini jucători întâmpină o experiență mai puțin frustrantă în client!
...Mai puțin frustrantă. Încă mai avem multe de realizat anul acesta și vom continua să oferim actualizări.
Caracteristici folosite rar ale selecției campionilor
Dacă ați citit articolul nostru anterior, am menționat că investigăm eliminarea unor caracteristici folosite rar ale selecției campionilor pentru a îmbunătăți performanța generală. După ce am evaluat campionii favoriți, misiunile și animațiile, am decis să nu le eliminăm și în schimb să lucrăm la optimizarea acestora. Am rezolvat deja problemele cu animațiile, iar momentan ne străduim să ne asigurăm că misiunile și campionii favoriți funcționează conform așteptărilor.
Ce urmează
Momentan, finalizăm planificarea primului trimestru al acestui an, dar iată ce dorim să îmbunătățim în continuare la clientul LoL:
Panoul social
Am văzut o creștere a problemelor privind panoul social pe tot parcursul anului trecut. În decembrie, am rezolvat o problemă privind cardurile de profil pentru prietenii din joc, care nu afișau tipul de joc sau campionul. Iată problemele pe care vrem să le rezolvăm în continuare:
- panoul social nu se conectează;
- lista de prieteni nu se încarcă, este afișată o stare greșită, prietenii nu sunt afișați;
- jucătorul nu primește cereri de prietenie dacă lista de prieteni este plină;
- informațiile despre ranked dispar din cardul de profil când un jucător este într-un meci normal;
- chat-ul merge sacadat la scrierea de mesaje într-o succesiune rapidă;
- folderele se reordonează singure între sesiuni;
- folderele pentru LoR și Valorant dispar la sortarea după ''Grupează jocurile și serverele'';
- clicul pe ''Afișează datele'' în fereastra de chat va duce la suprapunerea căsuțelor de text;
- notificările pentru cererile de prietenie apar doar când opțiunea este dezactivată și invers.
Vom renunța și la un vechi framework Javascript (vom discuta imediat mai multe despre JS) și vom muta panoul social în totalitate în Ember. Tranziția este o oportunitate bună de a revizui și a curăța părțile dificile din cod, ceea ce va duce la o fiabilitate crescută și mai puține bug-uri.
Stabilitatea clientului
Vom introduce două zone noi de interes pentru îmbunătățirea stabilității clientului LoL: închiderile forțate ale clientului și erorile Javascript, care pot avea o mulțime de efecte, inclusiv... închideri forțate ale clientului. În loc să ne axăm pe o anumită parte a clientului pentru această îmbunătățire (de ex., selecția campionilor, durata secvenței de inițializare), adoptăm o abordare mai amplă la nivel de client. Alături de munca depusă pentru stabilitate, care era deja prioritară pentru noi, iată cele patru elemente pe care ne concentrăm:
- Reducerea închiderilor forțate: în patch-ul 10.25, jucătorii din 16 regiuni Riot s-au confruntat cu 2,2 milioane de închideri forțate ale clientului. După investigația inițială, se pare că cea mai bună opțiune pentru a remedia majoritatea închiderilor forțate este să facem upgrade versiunii noastre de Chromium. Acesta este browserul de la baza arhitecturii clientului LoL.
- Reducerea erorilor Javascript: în patch-ul 10.25, jucătorii din 16 regiuni Riot s-au confruntat cu 36 de milioane de erori Javascript (JS) ale clientului. Deși nu toate erorile JS au dus la o închidere forțată sau la o scădere a performanței, chiar și erorile invizibile se pot cumula, ducând la acele tipuri mari de impacturi. Scăderea acestui număr va duce la o varietate de beneficii pentru client.
- Continuarea remedierii scurgerilor de memorie: remedierea unora dintre aceste probleme a reprezentat un șir considerabil de victorii pentru noi anul trecut. Vrem să continuăm să avem victorii mari în acest an.
- Muncă arhitecturală continuă pentru a curăța baza de cod: pentru a face upgrade versiunii de Chromium, conform mențiunii de mai sus, trebuie să finalizăm o mulțime de lucrări necesare care vor îmbunătăți și mai mult performanța clientului. Planificăm să finalizăm această lucrare și să lansăm un upgrade al versiunii de Chromium cam pe la mijlocul anului.
- Ultima dată am actualizat Chromium în decembrie 2019, cu câteva luni înainte de lansarea campaniei de curățare a clientului. Am văzut rezultate bune în urma acelei actualizări (CTRL+F ''Chromium'') și vom evidenția îmbunătățirile care vor fi aduse odată cu această actualizare viitoare pe care o vom lansa în curând.
Apreciem feedback-ul pe care îl primim în continuu referitor la client și ținem cont de părerile voastre! Anul 2020 a fost un an bun și vom continua cu impulsul de a îmbunătăți clientul pentru jucătorii noștri!