PULIZIA CLIENT: Riepilogo 2020 e cosa ci aspetta

Facciamo un riepilogo dei progressi del 2020 e spieghiamo i programmi per il 2021

Ci siamo impegnati a pubblicare aggiornamenti periodici sullo stato dei lavori di miglioramento delle prestazioni e dell'affidabilità del client di LoL.

Quello di oggi è il sesto post di questa serie. (Potete trovare il primo post qui, il secondo qui, il terzo qui, il quarto qui e il quinto qui.)

In breve: abbiamo passato il 2020 a migliorare tempi di avvio, architettura, selezione campioni, fine partita, perdite di memoria/blocchi e a risolvere bug del client. Stiamo programmando gli interventi per il primo trimestre del 2021, con l'intenzione di concentrarci principalmente sui miglioramenti al pannello social e alla stabilità generale del client.


Riepilogo 2020

Abbiamo formato il nostro team verso la fine del 2019 e gran parte del nostro lavoro iniziale è consistito nel cercare di capire lo stato in cui versava il client di LoL. Come parte di questo processo, per stabilire su cosa intervenire per migliorare il client, abbiamo deciso di concentrarci su quegli aspetti di cui i giocatori in generale (tutti voi!) si lamentavano più apertamente C'è ancora del lavoro da fare, ma guardando indietro al 2020, riteniamo di essere riusciti a introdurre dei miglioramenti significativi.

  • Abbiamo lanciato un sondaggio globale sul client per i giocatori, che abbiamo utilizzato per decidere su quali aspetti lavorare. La maggior parte dei risultati elencati qui sotto sono il risultato delle indicazioni dei giocatori
  • Abbiamo ridotto il tempo di bootstrap (cioè di avvio) del client a 16 secondi per il 90% dei giocatori in tutto il mondo (da 29,5 all'inizio del 2020)
    • Ciò è stato possibile grazie a degli interventi sull'architettura, tra cui una riduzione del 63% delle applicazioni ember di bootstrap (quelle che vengono caricate all'avvio del client) e un taglio del 57% dei plugin all'interno del client. In altre parole, abbiamo fatto un po' di pulizia nel codice
  • Abbiamo migliorato la reattività e la stabilità della schermata di selezione del campione durante la scelta e il ban dei personaggi
    • Abbiamo risolto dei problemi di prestazioni che si verificavano filtrando i campioni e migliorato la griglia di selezione del campione
    • Abbiamo indagato sull'utilizzo di alcune funzionalità nella Selezione del campione, ma di questo parleremo meglio tra un po'
    • Abbiamo migliorato i tempi per confermare le scelte e i ban dei campioni
    • Abbiamo risolto delle perdite di memoria collegate alla Selezione del campione (evidenziate più sotto)
  • Siamo intervenuti sui blocchi completi del client e sulla comparsa di schermate nere quando i giocatori vi tornavano tramite la schermata di Fine partita (EOG)
  • Abbiamo risolto il problema del client che restava fermo sul pulsante "Riconnettiti" durante la schermata di Fine partita, in situazioni in cui non sarebbe dovuto nemmeno apparire
  • Abbiamo risolto 175 bug nel 2020, da problemi più piccoli ad alcuni che esistevano da sempre
    • I nomi dei giocatori che comparivano come "..." nella chat
    • La barra delle applicazioni che non si illuminava dopo aver ricevuto un messaggio in chat
    • I nuovi giocatori assenti dal pannello Social
    • Le impostazioni che si azzeravano quando un giocatore effettuava l'accesso da un computer diverso
    • Le notifiche dei regali che si ripetevano all'accesso
    • I giocatori che venivano riportati a una schermata principale nera dopo diverse azioni nel client
  • Miglioramenti alla reattività della scheda Collezioni e di ciascuna delle sue sotto-sezioni
  • Riduzione del tempo di caricamento della scheda Rune del 40%, rendendo anche l'interfaccia delle Rune più fluida e stabile da usare
  • Risolti 30 casi di perdita di memoria in tutto il client. Questo è un aspetto particolarmente complesso di cui ci siamo accorti in un secondo momento e, per questo, siamo molto soddisfatti di essere riusciti a implementare i miglioramenti prima delle vacanze
    • Le perdite di memoria si verificano quando una parte del programma non riesce a liberare la memoria che ha utilizzato dopo aver completato un'operazione, lasciando così meno memoria totale per gli altri programmi del sistema. Il risultato finale di questi problemi è sempre negativo, ma le cause sono notoriamente difficili da individuare, specialmente nelle applicazioni più grandi
    • Fino alla prima risoluzione delle perdite di memoria introdotta nella 10.23, i giocatori nelle regioni Riot incontravano 193.000 blocchi causati da memoria insufficiente ogni patch. Nell'ultima patch del 2020, la 10.25, abbiamo osservato una riduzione del 55% di questi blocchi!

Come già detto, abbiamo usato le vostre risposte al sondaggio globale sul client per indirizzare le nostre decisioni riguardo agli elementi su cui concentrare i nostri sforzi. I miglioramenti indicati rappresentano i progressi nelle aree di cui vi siete lamentati di più, ma in fin dei conti, i risultati raggiunti sono soddisfacenti solo se i giocatori hanno la sensazione che stiamo andando nella direzione giusta. È per questo che siamo felici di segnalarvi che, oltre ai parametri basati sul gioco, abbiamo visto una tendenza positiva generale nei sondaggi, a indicare che un numero sempre maggiore di giocatori riscontra un'esperienza meno frustrante con il client!

...Meno frustrante, appunto. Ci sono ancora molti obiettivi che vogliamo raggiungere quest'anno e continueremo a tenervi aggiornati.


Funzionalità poco utilizzate della Selezione del campione

Se avete avuto occasione di leggere il nostro ultimo post, avevamo detto che stavamo considerando l'ipotesi di rimuovere alcune funzionalità poco utilizzate della Selezione del campione per migliorare le prestazioni generali. Dopo aver valutato "preferiti", "missioni" ed "emote", abbiamo deciso di non eliminarne nessuna e cercheremo invece di ottimizzarle. Abbiamo già risolto un problema con le emote e stiamo attualmente lavorando per fare in modo che "preferiti" e "missioni" funzionino come previsto.


Cosa ci aspetta

Al momento, stiamo ancora finendo di programmare il primo trimestre dell'anno, ma questi sono gli aspetti su cui abbiamo intenzione di intervenire nel Client di LoL:

Pannello Social

Nel corso dell'ultimo anno, abbiamo osservato un aumento dei problemi relativi al Pannello social. A dicembre, abbiamo risolto un problema per cui il tabellone degli amici nel gioco non mostrava il tipo di partita o il campione. Questi sono i prossimi problemi che vogliamo risolvere:

  1. Mancata connessione del Pannello Social
  2. Mancato caricamento della Lista amici, visualizzazione di stati non corretti, mancato riempimento della lista amici
  3. I giocatori non riceveranno richieste di amicizia se la loro lista amici è completa
  4. Le informazioni delle classificate scompaiono dal tabellone quando un giocatore è in una partita normale
  5. La chat si inceppa quando si scrivono messaggi in rapida successione
  6. Le cartelle si riordinano da sole tra una sessione e l'altra
  7. Le cartelle di LoR e Valorant spariscono quando si seleziona "Raggruppa partite e server"
  8. Cliccare "Mostra date" nella chat causa la sovrapposizione delle caselle di testo
  9. Le notifiche per le Richieste di amicizia appaiono solo quando l'opzione è disattivata e viceversa

Abbiamo anche intenzione di abbandonare una vecchia struttura di Javascript (ne parleremo meglio tra poco) e di spostare il Pannello Social interamente su ember. Questa transizione sarà una buona occasione per esaminare e ripulire le parti problematiche del codice, ottenendo più stabilità e meno bug.

Stabilità del client

Ora vi parleremo di due nuove aree di intervento su cui lavoreremo per migliorare la stabilità del Client di LoL: i blocchi del client e gli errori di Javascript, che a loro volta possono avere vari effetti, tra cui... i blocchi del client. Per questa operazione, invece di concentrarci su una parte specifica del client (per es. la selezione del campione o il bootstrap), adotteremo un approccio più ampio che lo coinvolgerà per intero. Oltre agli interventi sulla stabilità su cui già ci stiamo concentrando, queste sono le quattro diverse aree di obiettivi:

  • Ridurre i blocchi: nella patch 10.25, i giocatori di 16 regioni Riot hanno incontrato 2,2 milioni di blocchi. Dopo le nostre indagini iniziali, riteniamo che l'opzione migliore per risolvere la maggior parte di questi blocchi sia aggiornare la nostra versione di Chromium, il browser che sta al centro dell'architettura del Client di LoL
  • Ridurre gli errori di Javascript: nella patch 10.25, i giocatori di 16 regioni Riot hanno incontrato 36 milioni di errori di Javascript (JS) nel client. Anche se non tutti gli errori di JS provocano un blocco o un calo di prestazioni, perfino quelli invisibili possono accumularsi e portare a effetti più gravi. Ridurre questo numero porterà diversi benefici in tutto il client
  • Continuare a risolvere le perdite di memoria: questo è stato un grande risultato raggiunto l'anno scorso. Vogliamo continuare su questa strada
  • Continuare gli interventi sull'architettura per ripulire il codice base: per migliorare Chromium, dobbiamo prima completare delle operazioni preliminari che, a loro volta, già miglioreranno ulteriormente le prestazioni del client. Abbiamo intenzione di completare questi interventi e di iniziare l'aggiornamento di Chromium intorno alla metà di quest'anno
    • L'ultima volta che abbiamo fatto un aggiornamento del genere è stato a dicembre 2019, qualche mese prima della partenza della Campagna di pulizia del client. Quell'aggiornamento ha portato dei buoni risultati (CTRL+F "Chromium") e vi parleremo dei miglioramenti che porterà il prossimo quando saremo più vicini al lancio



Apprezziamo il feedback che ci inviate continuamente riguardo al client e restiamo in ascolto delle vostre idee! Vi auguriamo un buon 2021, in cui continueremo sulla strada per migliorare il client per i nostri giocatori!