Client di LoL: arriva il nuovo chromium embedded framework

Condividi su WhatsApp  WhatsApp

In un recente dev blog, pubblicato sul sito di League Of Legends, gli sviluppatori hanno parlato del nuovo aggiornamento del client di LoL. Il Chromium Embedded Framework aggiornato, che sarà introdotto a breve, dovrebbe stabilizzare le prestazioni e rendere il tutto più fruibile.

Insomma, Riot sta svolgendo il lavoro che aveva annunciato qualche tempo fa, andando ad intervenire sulle criticità segnalate dai giocatori. Ancora non è finita però, in quanto arriveranno altri aggiornamenti più frequenti anche in futuro.

Andiamo a vedere quali sono questi cambiamenti, e come verranno implementati all’interno del gioco per migliorare l’esperienza di tutti i giocatori.

Il nuovo aggiornamento del client di LoL

Chromium Embedded Framework

È un momento di svolta per la nostra Campagna di pulizia del client! All’inizio dell’anno avevamo stabilito che aggiornare la versione del client del Chromium Embedded Framework (CEF), ovvero il browser che sta al centro dell’architettura del client di LoL, alla versione 91 sarebbe stato l’intervento di maggiore impatto. I benefici di un CEF aggiornato sono due. Innanzitutto migliora immediatamente il consumo di memoria, l’utilizzo della CPU e la stabilità.

In secondo luogo apre la porta a numerosi interventi futuri, dato che ci fornisce nuovi strumenti e funzionalità (di cui parleremo tra poco). Per questi motivi abbiamo deciso di dare la priorità al CEF quest’anno, e ora siamo felicissimi di annunciarvi che la versione 91 è stata implementata nella patch 11.17 con risultati eccellenti!

Riduzione dei freeze

Aggiornare il CEF ci ha permesso di risolvere moltissimi blocchi del client, e ora il nostro obiettivo è sistemare quelli che più influenzano i giocatori. Siamo entusiasti di aver riscontrato un calo del 61% dei blocchi rispetto alla 11.16 e del 38% della media del 2021 registrata finora, ma vogliamo far calare ulteriormente queste cifre. Anzi, a dirla tutta i primi dati sulla patch 11.18 mostrano un ulteriore crollo dei blocchi! È un successo straordinario, dato che ad ogni patch il numero di avvii del client aumenta (e nelle regioni Riot potrebbe addirittura superare i 240 milioni!).

Patch Numero di blocchi
11.14 2.349.865
11.15* 3.686.442
11.16 3.161.145
11.17 1.214.155

Il principale colpevole dei blocchi residui sembra essere la mancanza di memoria del sistema. Un’indagine più approfondita rivela che quasi la metà di questi blocchi legati alla memoria si è verificato su vecchi PC con Windows 7. Anche se ci sono ancora giocatori in tutto il mondo che avviano LoL su Windows 7 (il sistema operativo richiesto nelle specifiche minime), stiamo cercando di capire quanti di questi casi sono provocati da bot, copie di Windows scadute o senza licenza, o altre circostanze non assimilabili all’uso regolare e legittimo di LoL.

Utilizzo della memoria

Abbiamo riscontrato una riduzione significativa della memoria front-end del client nel corso di una singola sessione. Con “front-end del client” ci riferiamo agli elementi grafici con cui interagiscono i giocatori, come pulsanti, caselle di testo e in pratica tutto ciò che potete cliccare. Ecco un’analisi schematica nelle regioni Riot:

Versione del CEF Giocatori nel ventesimo percentile (sistemi di fascia alta) nel cinquantesimo percentile (sistemi di fascia media) Giocatori nel novantesimo percentile (sistemi di fascia bassa)
74 (prima della patch 11.17) 359 MB 597 MB 1016 MB
91 (dalla patch 11.17 in poi) 74 MB 275 MB 598 MB
Miglioramento 285 MB (79%) 322 MB (54%) 418 MB (41%)

In questo contesto, la memoria è equiparabile alla soglia dell’attenzione: meno se ne utilizza, più il computer riesce a svolgere compiti in parallelo o a concentrarsi su ciò che sta già facendo. Questo si traduce in una minor frequenza di blocchi e in una maggiore quantità di memoria disponibile, che vi permette per esempio di guardare le partite della LCS mentre entrate nella coda classificata!

Minor utilizzo della CPU

Abbiamo anche notato un calo della potenza della CPU richiesta dal client. Ecco un’analisi schematica nelle regioni Riot:

Versione del CEF Giocatori nel ventesimo percentile (sistemi di fascia alta) nel cinquantesimo percentile (sistemi di fascia media) Giocatori nel novantesimo percentile (sistemi di fascia bassa)
74 (prima della patch 11.17) 13% 34% 83%
91 (dalla patch 11.17 in poi) 10% 22% 72%
Riduzione percentuale 23% 35% 15%

Questo significa che il vostro computer deve faticare meno per avviare il client, riducendo il riscaldamento del processore e il consumo di energia. Per fare un esempio, i video sono molto pesanti per la CPU, ma il client di LoL non deve esserlo. Così potrete guardare Netflix mentre distribuite pentakill.

App basate su Chromium

Attualmente, le app basate su Chromium sono tra gli strumenti e i programmi di sviluppo con il maggior tasso di crescita esistente. Probabilmente state usando una di queste app per leggere questo articolo, per chattare su Discord con gli amici o per ascoltare per la 100esima volta le 10 canzoni della vostra playlist preferita. Ognuna di queste applicazioni usa Chromium, così come il nostro client. Aggiornare la versione del CEF ci dà accesso a tutte le migliorie e alle nuove funzionalità di Chromium.

WebAssembly

Parliamo un po’ di WebAssembly, un formato di codice in grado di eseguire istruzioni complesse molto più velocemente di JavaScript base, che attualmente rappresenta il pilastro di molte app del client (ricordate le applicazioni Ember di cui abbiamo parlato negli articoli precedenti?). In pratica, il CEF emula all’interno del client un “mini-computer” specializzato che usa WebAssembly per elaborare il codice con maggiore efficienza.

Dato che WebAssembly supporta una vasta gamma di linguaggi di programmazione, rende più facile riutilizzare il codice preesistente fornendoci però un vantaggio nelle prestazioni dato dalla possibilità di eseguire processi in quel “mini-computer” specializzato (invece di dover avviare un’applicazione separata).

L’uso di WebAssembly è sempre più diffuso su tutto il web, e il supporto in Chromium migliora ad ogni nuova versione. Avere accesso a WebAssembly renderà il client più veloce e ci permetterà di fare cose in precedenza impossibili.

Web Workers

In secondo luogo, abbiamo Web Workers. Da sempre le app basate su Chromium lavorano simultaneamente, quindi elaborano una linea di codice alla volta. È un po’ come avere un solo operaio a gestire l’intera linea di produzione: invece Web Workers (plurale) dà vita a un “team” che può processare più linee di codice in parallelo. Per esempio, una Chat Web Worker può occuparsi di tutti gli aspetti che riguardano le chat mentre il client principale si concentra sul farvi accedere alle partite.

Così, se avete un amico che vi assilla per avere consigli sulla configurazione di Teemo, perlomeno le sue chiacchiere non rallenteranno il resto della vostra esperienza nel client. Anche Web Workers permetterà al client di lavorare più velocemente.

Anche senza compilare nuovo codice per sfruttare queste funzionalità, il semplice aggiornamento del CEF ha già reso il client più agile grazie alla gestione migliorata di JavaScript già compilato all’interno. Potenziando altre aree del client potremo concentrarci su metodi che funzionino adeguatamente con le migliorie alle prestazioni native.

Nuovi aggiornamenti

Dopo l’ultimo articolo del blog abbiamo anche fatto passi avanti nell’esperienza di fine partita. Innanzitutto, abbiamo aggiunto un codice per raccogliere dati su cosa si verifica quando il gioco si blocca sulla schermata “In attesa delle statistiche”, fenomeno che ancora coinvolge molti giocatori: questo ci ha permesso di capire e ridurre il tempo d’attesa, che non dovrebbe essere così esteso.

Nella patch 11.17 abbiamo anche inserito una contromisura che riduce le probabilità di blocco totale della pagina. Nella 11.19 sono state implementate ulteriori migliorie per accelerare ancora di più il fine partita. Dulcis in fundo, siamo entusiasti di poter integrare le Sfide, e stiamo prendendo tutti gli accorgimenti per garantire che questa nuova funzionalità non intacchi prestazioni e affidabilità del client.

Futuro

L’aggiornamento del CEF si è dimostrato preziosissimo per il miglioramento del client, quindi stabiliremo un programma di aggiornamenti più frequente (invece di svegliarci una volta ogni anno e mezzo). Per quanto riguarda il resto del 2021, le priorità restano quelle di aumentare l’affidabilità del client, sistemare il fine partita con il team Sfide, correggere dei bug altamente frustranti e continuare a migliorare il nostro codice e, di conseguenza, la vostra esperienza. Grazie mille per aver festeggiato con noi questo importantissimo traguardo della Campagna di pulizia del client! Ci vediamo la prossima volta.


Client di LoL: arriva il nuovo chromium embedded framework
Mario "Rios" Cristofalo

Sono un appassionato di videogiochi sin da quando ne ho memoria. La mia crescita è stata caratterizzata delle console Nintendo (grazie ai Pokèmon), e poi dall'esplosione di Xbox anche in Italia. Nel 2018, però, mi sono avvicinato al mondo di League Of Legends di cui mi sono perdutamente innamorato. Ad oggi mi occupo di LoL, ma anche di tutto ciò che è interessante nel mondo videoludico e tech in generale. Per info e collaborazioni: [email protected]

Asus Rog
Gli articoli di questo sito sono stati realizzati utilizzando Asus ROG G701