PULIZIA CLIENT: Selezione campioni e fine partita
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 quinto post di questa serie. (Potete trovare il primo post qui, il secondo qui, il terzo qui e il quarto qui).
In breve: ora che abbiamo completato il miglioramento dell'architettura e i tempi di avvio del client, possiamo occuparci della selezione del campione. Inoltre, la nostra nuova priorità è il fine partita.
Inizio dei lavori sulla selezione del campione
A marzo, quando abbiamo dato il via a questa serie di articoli, abbiamo parlato di due grandi obiettivi: miglioramento dei tempi di bootstrap del client e della reattività della selezione del campione, in quest'ordine. A settembre siamo finalmente riusciti a ridurre i tempi di bootstrap (ovvero il tempo di avvio del client) fino a 15,5 secondi per il 90% dei giocatori e abbiamo annunciato che avremmo iniziato a lavorare sulla selezione del campione.
Ecco i primi aggiornamenti sull'argomento.
Utilizzo della memoria da parte della selezione del campione
Sapevamo da tempo che la selezione del campione necessitava di interventi simili a quelli del resto del client (consolidare applicazioni Ember, ottimizzare il codice, risolvere errori eccetera). Nel corso della nostra analisi approfondita abbiamo però scoperto anche un problema inatteso: la memoria usata dalla selezione del campione (e dal client) aumenta ogni volta che il processo si ripete in una singola sessione di gioco.
Questa è la situazione per il 90% dei giocatori:
- Al primo avvio della selezione del campione, il consumo di memoria balza a 481 MB
- La seconda volta il consumo aumenta di altri 56 MB
- Dalla terza volta in poi si verificano balzelli più piccoli che vanno da 15 a 25 MB circa
![graphcomms.jpg](https://cmsassets.rgpub.io/sanity/images/dsfx7636/news_live/bcc8ec8de7c189f48df3e74d7088fd26058b45ae-1542x624.jpg)
In pratica, più partite giocate durante una sessione più il client diventa lento, fino a quando diventa necessario un riavvio.
La presenza di perdite di memoria nel client non è una novità, e avevamo localizzato alcune di esse proprio nell'area della selezione del campione, ma le dimensioni e la portata che abbiamo riscontrato richiedono un cambiamento nel nostro approccio. Parallelamente ai nostri interventi già pianificati, ora stiamo lavorando per implementare strumenti di sviluppo specifici che ci permettano di identificare e riparare le perdite di memoria in tutto il client con una maggiore efficienza, riducendo il tempo necessario per applicare i miglioramenti.
Come abbiamo detto, questo lavoro si svolge parallelamente agli altri, e nonostante i progressi siano ancora ridotti prevediamo di inserire le prime piccole migliorie alle prestazioni della selezione del campione già nella patch 10.23. Abbiamo perfezionato la selezione degli incantesimi dell'evocatore e dell'aspetto dei lumi in modo che non generino ulteriori app Ember quando vengono aperti: questo porta a una piccola ma non insignificante riduzione nell'uso della memoria (1,6 MB circa) nel momento in cui i giocatori impostano incantesimi e aspetti lume durante la selezione del campione. Queste erano due delle prime perdite di memoria che abbiamo identificato, e ripararle è stato un ottimo modo per testare le pratiche migliori con cui argineremo le perdite più grandi nel prossimo futuro! Pensiamo di implementare miglioramenti più consistenti entro la fine dell'anno.
Revisione UX/UI della selezione del campione
Oltre a riparare gli errori, il miglioramento della selezione del campione passa anche dall'identificazione delle parti fondamentali dell'esperienza utente e di quelle che possiamo ridurre o persino rimuovere (perché i giocatori non le ritengono importanti). La logica di fondo sta nel fatto che l'esperienza della selezione del campione è cruciale per l'intero ciclo di gioco, quindi una minore complessità si traduce in meno possibilità che qualcosa vada storto. Abbiamo analizzato i dati dei sondaggi per capire quali sono gli aspetti più importanti dell'esperienza utente (UX) e dell'interfaccia utente (UI), aggiungendo anche informazioni interne al client per supportare i risultati con i dati delle attività dei giocatori.
Ecco alcuni dei primi risultati ottenuti, insieme agli interventi già implementati o pianificati:
- I giocatori vogliono un riscontro più chiaro e rapido dei propri clic, specialmente quando si tratta di scegliere e bannare i campioni. Per accontentarli, miglioreremo la velocità e l'affidabilità dei feedback grafici e sonori forniti dall'interfaccia
- I giocatori non considerano importanti le formalità che accompagnano la selezione degli incantesimi dell'evocatore e dell'aspetto dei lumi. Rimuoveremo quindi le animazioni associate (oltre a riparare la perdita di memoria sopracitata)
- Aggiungeremo un sistema di telemetria per capire con quale frequenza i giocatori usano specifiche funzionalità della selezione del campione meno essenziali alla preparazione della partita. Se queste si dimostrassero superflue, potremmo
rimuoverle in nome dell'ottimizzazione delle prestazioni:
- Pannello emote
- Campioni preferiti
- Missioni
Accesso alla selezione del campione
Uno dei punti critici più segnalati dai giocatori è il fatto che l'accesso alla selezione del campione può generare tutta una serie di problemi. L'affidabilità del processo di selezione è fondamentale per aiutare i giocatori a sentirsi pronti e concentrati sulla partita che li attende, e per noi è altrettanto fondamentale risolvere qualsiasi errore che potrebbe interferire con la scelta o il ban dei campioni. Non vogliamo altresì vedervi preoccupati che l'aspetto, gli incantesimi dell'evocatore o le rune che avete usato per centinaia di partite possano cambiare senza preavviso.
Ora che inizieremo a intervenire su questa sezione, l'obiettivo principale del nostro approccio sarà far accedere i giocatori alla selezione del campione con un tempo adeguato a prendere decisioni importanti, assicurare a tutti una fase di ban e selezione affidabile e far entrare tutti i giocatori in partita senza problemi.
Fine partita (EOG)
Anche se all'inizio della nostra campagna di pulizia del client non rientrava tra le nostre aree di interesse, il fine partita (ovvero tutto ciò che accade da quando premete il pulsante "Continua" nella schermata di Vittoria/Sconfitta a quando potete interagire con la lobby post-partita) è diventato un punto dolente alla pari dei tempi di caricamento del client e all'affidabilità della selezione del campione. CI riferiamo soprattutto alle frustrazioni generate da due elementi:
- I giocatori hanno segnalato occasioni in cui il client si blocca sul pulsante "Riconnetti" per un breve periodo dopo il termine della partita, invece di passare immediatamente alla schermata dell'Onore. Stiamo ancora indagando su questo problema
- A volte il client si blocca quando i giocatori tornano dalla schermata di Vittoria/Sconfitta, rendendo impossibile vedere o interagire con la schermata dell'Onore o la lobby post-partita. Abbiamo già in serbo alcune possibili soluzioni che potrebbero vedere la luce nella patch 10.23
Bug delle impostazioni e dei pop-up
Mentre eravamo al lavoro su selezione del campione e fine partita, abbiamo anche notato un incremento delle segnalazioni di bug delle impostazioni nelle ultime patch. Questi includono, tra gli altri, il fatto che la selezione del campione non ricordasse gli incantesimi dell'evocatore o vecchi pop-up che apparivano di nuovo (e poi ancora, ancora e ancora). Riuscire a individuarne l'origine è stata un'impresa, quasi titanica oserei dire. In quel periodo, alcuni team stavano lavorando per conto proprio all'aggiornamento dei propri sistemi di backend, finendo per creare alcuni casi limite che si sono uniti in una valanga di situazioni in cui i giocatori riscontravano almeno uno di questi problemi. Dopo l'ultimo articolo di questa serie abbiamo introdotto tre soluzioni indipendenti per alleviare la maggior parte di questi errori, la più recente delle quali è stata inserita nella patch 10.21.
Mentre proseguiamo nel nostro intento di apportare miglioramenti significativi alla selezione del campione e al fine partite, continueremo a collaborare con i team interni per rintracciare ed eliminare i bug più fastidiosi segnalati dai giocatori.
Per questo aggiornamento è tutto! Abbiamo ancora parecchio lavoro da fare prima della fine dell'anno, e desideriamo ringraziarvi per la vostra pazienza. Continueremo a impegnarci al massimo per migliorare il client per voi a ogni patch!