Pulizia client: in arrivo selezione del campione
Qualche mese fa, ci siamo impegnati a pubblicare aggiornamenti bimestrali sullo stato dei lavori di miglioramento delle prestazioni e dell'affidabilità del client di League of Legends.
Quello di oggi è il quarto post di questa serie. (Potete trovare il primo post qui, il secondo qui e il terzo qui).
In breve: siamo riusciti a migliorare il tempo di bootstrap del client e ora siamo pronti a concentrarci meglio sulle aree più problematiche, come la selezione del campione. Vogliamo anche condividere dei nuovi dati riguardo al client e ai suoi problemi che abbiamo raccolto tramite un sondaggio tra i giocatori.
TEMPO DI BOOTSTRAP DEL CLIENT
All'inizio dell'anno, avevamo detto di voler ridurre il tempo di bootstrap del client (ovvero il tempo che il client impiega ad avviarsi) a 15 secondi, anche per i giocatori con computer particolarmente lenti.
Da allora, abbiamo passato molto tempo a scavare nella sua architettura, individuando i problemi principali che riguardano i plugin e le app che lo fanno funzionare. Nelle ultime settimane, abbiamo fatto dei grandi passi avanti e siamo arrivati molto vicini al nostro obiettivo.
Il tempo di bootstrap è ora di soli 18,5 secondi circa per i giocatori nel 90° percentile: ciò implica che, per circa il 90% di voi, in realtà è ancora più veloce (anche se i miglioramenti delle prestazioni verranno avvertiti in modo più significativo dai giocatori con computer più lenti).
In un altro blog abbiamo parlato di alcuni degli ostacoli al tempo di boostrap causati in parti dall'aumento del traffico dei giocatori dovuto alla pandemia di COVID-19. Nel grafico qui sopra, potete notare questo picco intorno a marzo di quest'anno.
Nei mesi successivi al picco, abbiamo fatto progressi costanti nel miglioramento dei tempi di boostrap, ma il nostro passo avanti più significativo è avvenuto di recente, con la patch 10.16, ed è dovuto ad alcune scelte fatte dal team.
Per prima cosa, nella patch 10.14 abbiamo introdotto una tecnologia che ci ha permesso di scoprire quanto ciascuno dei 68 plugin del client contribuiva al tempo di bootstrap ed è emerso che alcuni causavano molti più problemi di altri. Abbiamo individuato che solo otto di questi plugin erano responsabili del 75% del tempo di caricamento, mentre dagli altri 60 dipendeva soltanto il restante 25%.
Armati di queste informazioni, è diventato molto più facile capire su quali plugin intervenire. Inoltre, abbiamo deciso di provare dei nuovi approcci insieme a quelli tradizionali: nella patch 10.16, abbiamo iniziato a implementare in modo più completo una soluzione che ci permette di ritardare il caricamento di alcuni plugin e applicazioni Ember finché non diventano necessari.
Ora che ci siamo molto avvicinati al nostro obiettivo iniziale per il tempo di bootstrap, crediamo di essere pronti per iniziare finalmente a concentrarci sulla seconda fase della nostra campagna: migliorare la reattività e l'affidabilità della selezione del campione e di altre sezioni chiave del client.
Prima di entrare nei dettagli di questo programma, vogliamo condividere con voi alcuni dati riguardo al client che abbiamo raccolto tramite un sondaggio tra i giocatori di tutto il mondo.
DATI DEL SONDAGGIO SULLA PERCEZIONE DEL CLIENT
Starete forse pensando:" Rito, noob che non sei altro, perché avete bisogno di fare un sondaggio riguardo al client? Sapete già che non funziona bene!"
E beh... sì, avete ragione. Ma volevamo un'opinione un po' più approfondita sulla questione. Quanto sono frequenti i problemi? Quali sono i più gravi? Trovando le risposte a queste domande, possiamo organizzare meglio le priorità dei nostri prossimi interventi. Inoltre, raccogliendo opinioni misurabili riguardo al client, possiamo renderci conto di come i vostri pareri sull'argomento cambino nel tempo.
La nostra prima serie di sondaggi ha coinvolto solo alcune regioni, ma abbiamo intenzione di farne altri in futuro, aggiungendo, modificando e rimuovendo domande se necessario, in modo da tenere traccia dei nostri progressi nel tempo.
Detto questo, abbiamo dei fantastici grafici per voi.
Per cominciare, una delle cose che vogliamo monitorare è la variazione della percezione del client tra un mese e l'altro.
Questo risultato non ci stupisce, ma si tratta di dati di partenza importanti: continuando a fare questi sondaggi nel tempo, potremo ottenere una panoramica più completa dei nostri progressi. Nei prossimi mesi, condivideremo con voi i dati raccolti.
Con la successiva domanda del sondaggio, abbiamo iniziato ad affrontare i singoli problemi del client:
Benché alcuni siano più comuni di altri, quasi il 50% dei giocatori esaminati ha segnalato di averne incontrato almeno uno.
Poi, abbiamo chiesto ai giocatori che hanno dichiarato di aver avuto problemi tecnici di valutare quanto frustranti fossero su una scala da 1 a 5, da "per niente frustrante" a "estremamente frustrante". Qui sotto potete vedere la percentuale dei giocatori che hanno risposto "molto" o "estremamente" frustrante.
Ecco un'altra tabella che mostra la frequenza di ciascun problema segnalato rispetto a quanto frustranti sono stati definiti:
Risulta evidente in questi grafici che ci sono due situazioni in particolare che costituiscono dei chiari casi limite.
Il primo è che i problemi che impediscono di scegliere o bannare un personaggio durante la selezione del campione sono di gran lunga i più frustranti; il secondo è che i tempi di caricamento prolungati per la schermata di fine partita sono estremamente comuni. Grazie a queste informazioni, sappiamo meglio dove concentrare gli sforzi nella fase successiva del nostro lavoro.
FASI SUCCESSIVE
Nei prossimi mesi, vogliamo focalizzarci sulla risoluzione dei problemi del client più comuni e frustranti per i giocatori. Per questo, la prossima fase della nostra Campagna di pulizia del client si concentrerà sul miglioramento della selezione del campione e sulla transizione dalla schermata di fine partita a quella dell'onore e al client.
Innanzitutto, parliamo della selezione del campione.
A febbraio, avevamo dichiarato che il nostro obiettivo finale fosse il miglioramento della reattività dei pulsanti dell'interfaccia nella selezione del campione. In particolare, avevamo detto di voler ridurre a meno di 100 ms i tempi di risposta di elementi come il pulsante "conferma", anche per i giocatori nel 90° percentile.
Ora però, ci siamo resi conto di dover rivalutare delle componenti chiave della selezione del campione, se vogliamo soddisfare i nostri giocatori.
Gli interventi che faremo sulla selezione del campione possono essere suddivisi in base a tre obiettivi principali. Vogliamo:
- Rendere la selezione del campione più ottimizzata e affidabile. Da molto tempo, i giocatori ci chiedono una selezione del campione più reattiva e scattante. Vorremmo rivalutare alcune componenti esistenti per migliorare la reattività, ridurre il consumo di memoria, semplificare l'architettura e limitare le uscite non intenzionali
- Rivalutare l'esperienza utente (UX) e l'interfaccia utente (UI) della selezione del campione. Collaboreremo con il nostro team di progettazione per capire dove possiamo rimuovere od ottimizzare animazioni non efficienti e componenti che richiedono molte risorse
- Risolvere quanti più bug possibile, dando la priorità a quelli che causano più problemi
Mentre ci concentriamo sulla selezione del campione, dedicheremo delle risorse anche a ottimizzare la transizione dalla schermata dell'onore alla lobby di fine partita: fin troppi giocatori ci hanno segnalato di aver incontrato lag in questa fase del gioco e, per questo, stiamo già pianificando un intervento tecnico per risolvere il problema.
Questo procedimento richiederà sicuramente più tempo di quanto vorremmo, ma il nostro impegno durante questa campagna è di comunicare con voi come facciamo internamente tra di noi, con onestà e trasparenza.
Tra un paio di mesi, vi riferiremo i nostri progressi in altri post come questo. Nel frattempo, come sempre, grazie per il vostro interesse.