Aggiornamento sull'uniformità del gameplay di VALORANT - Parte 2
Bentrovati! Siamo il
team della tecnologia delle meccaniche di gioco di VALORANT, e siamo
tornati a parlarvi del nostro lavoro sull'uniformità del gameplay.
Se
avete bisogno di un riepilogo sulla percezione generale della
community, leggete il nostro articolo
dello scorso mese. Lì abbiamo affrontato i temi generali di quello
che ci hanno comunicato i giocatori e abbiamo fatto una panoramica di
ciò a cui stavamo lavorando (latenza, correttezza e prestazioni dei
giocatori con un ping alto).
Visto
che nell'articolo precedente abbiamo trattato gran parte dei "cosa"
e dei "perché", oggi
vogliamo parlarvi di una delle aree principali che abbiamo
migliorato: latenza e buffering.
Vi illustreremo l'importanza di latenza e buffering in relazione a
VALORANT, alcune nostre scoperte, le correzioni e i miglioramenti che
abbiamo implementato e le azioni a lungo termine che abbiamo deciso
di intraprendere.
Ecco
in breve cos'abbiamo inserito nella patch 4.10:
- Abbiamo
individuato e corretto alcuni problemi che si verificavano in caso
di picchi improvvisi di instabilità della rete, framerate basso,
uso di Alt+Tab o periodi prolungati di jittering elevato
- I giocatori colpiti da questi problemi percepivano un ritardo nell'elaborazione dei propri comandi da parte del server e nei movimenti dei nemici
- Nella patch 4.10 abbiamo inserito delle modifiche che dovrebbero migliorare il buffering di rete in queste situazioni, e rese disponibili ai giocatori delle statistiche che mostrano cosa avviene dietro le quinte
- Queste
modifiche agiscono sulla causa principale che abbiamo scoperto
dietro alla percezione di tempi di reazione e latenza di rete
incostanti tra una partita e l'altra, ma continueremo a monitorare
la situazione e a implementare altre migliorie
- Se avete ancora problemi nelle vostre partite, speriamo che i nuovi grafici vi aiutino a quantificare e misurare quello che state percependo
- Continuate a inviarci segnalazioni con video, se possibile, di quello che vedete tramite il nostro canale del Supporto giocatori
LATENZA E BUFFERING
Nel
nostro
articolo precedente,
abbiamo parlato del fatto che stavamo ancora indagando sulla latenza
e sulle prestazioni del buffering di rete in VALORANT. Da allora,
abbiamo concluso quell'indagine, e nella patch 4.10 abbiamo risolto
alcuni problemi che sono emersi.
Prima
di approfondire la questione, è utile avere qualche informazione di
base su cosa intendiamo quando ci riferiamo a "buffering di
rete" o "ritardi nell'elaborazione".
Nei
giochi online come VALORANT, ogni
giocatore invia i propri comandi al server affinché vengano
elaborati per la sua simulazione del gioco, dal momento che solo
quella del server è corretta.
Ogni volta che il server aggiorna la simulazione del gioco (128 volte
al secondo), deve eseguire i comandi arrivati dai client dei
giocatori per far agire gli agenti. Se
i comandi di un client subiscono un ritardo mentre viaggiano su
Internet, il server non attenderà il loro arrivo ed estrapolerà una
mossa per quel client.
Questo
movimento estrapolato dal server è spesso diverso da quello ancora
in viaggio. Queste discordanze provocano correzioni di movimento; il
risultato è che il giocatore interessato si vede teletrasportare a
brevissima distanza nella posizione giusta. Troppe
di queste correzioni rendono il gioco "scattoso" e, nei
casi peggiori, ingiocabile.
Per
mitigare i casi di estrapolazione di questo tipo, il server non
esegue immediatamente i comandi che riceve, ma aspetta di averne
raccolti abbastanza in un buffer e poi li elabora con un leggero
ritardo. Si tratta di una strategia molto comune quando si effettua
lo streaming di dati su Internet, e aiuta a fare in modo che il
server possa eseguire con fluidità i movimenti del vostro agente a
ogni frame. Questo buffering però aggiunge un ritardo prima che il
server elabori i vostri movimenti, e troppo buffering può dare
l'impressione di stare giocando con un ping molto più elevato di
quello che mostrerebbe il vostro tempo andata/ritorno di rete (RTT
rete).
Fornire
la quantità corretta di buffering è un importante operazione di
bilanciamento.
Troppo poco buffering e riscontrereste molti movimenti estrapolati
dal server e correzioni da parte del client, troppo buffering e
avreste latenza alta e l'aggravarsi di problematiche come il
vantaggio dell'attaccante. Con
il giusto bilanciamento, VALORANT è fluido e reattivo.
In
modo simile a come il server effettua il buffering dei vostri comandi
prima di eseguirli, il vostro client deve fare il buffering delle
informazioni sui movimenti dei nemici prima di mostrarli sul vostro
schermo. Questo impedisce che i giocatori nemici sembrino
teletrasportarsi in giro quando avete una connessione scadente,
dandovi una visuale fluida e chiara degli altri giocatori.
L'indagine
Come
parte della nostra indagine, dovevamo capire meglio le esatte
prestazioni di questi due sistemi di buffering.
Abbiamo creato alcuni nuovi strumenti di debug per tenere traccia del
tempo impiegato da ogni comando per essere elaborato da ciascuno dei
sistemi di buffering. Utilizzando
questo strumento, abbiamo iniziato a condurre dei test per capire se
c'erano scenari nei quali i buffering di movimento potevano
comportarsi in modi imprevisti.
Uno
dei problemi segnalati dai giocatori che abbiamo analizzato durante
questa indagine è stato il ritardo nell'elaborazione dei colpi che
insorgeva dopo aver utilizzato il comando Alt+Tab. Limitare gli fps
quando la finestra del gioco è in background emula un problema delle
prestazioni del client causato da un framerate basso. Dopo aver
riportato il gioco in primo piano, il framerate aumentava di colpo,
cosa che andava a ingrandire di molto la coda di comandi del server.
Sul client, questo dava l'impressione di giocare con un ping molto
elevato, che non si rifletteva negli attuali grafici dell'RTT rete.
Un
altro modo per ottenere un effetto simile era simulare un improvviso
picco di ping nel client. Un picco improvviso di ping discendente
faceva aumentare la coda di comandi del server per quel client. Un
picco improvviso di ping ascendente faceva invece aumentare la coda
di movimento del client per gli altri giocatori. In entrambi i casi,
questo aumento nella coda provocava una latenza artificialmente più
alta finché la coda non tornava alle sue consuete dimensioni.
In
entrambi questi scenari, il sistema attuale alla fine risolveva il
problema e riportava i buffer alle dimensioni previste, ma abbiamo
scoperto che un recupero completo poteva impiegare più tempo del
dovuto, portando a un periodo esteso di latenza di rete
effettivamente aumentata.
Abbiamo
inserito due
nuove correzioni
che dovrebbero risolvere molto più rapidamente questi problemi di
buffering, in modo che riscontriate una latenza extra solo per breve
tempo, quando è necessario rendere l'esperienza più fluida.
Correzioni
e miglioramenti
La
prima correzione che abbiamo implementato regola la velocità con la
quale riportiamo i buffer alle dimensioni consuete quando qualcosa
provoca un aumento della coda. Abbiamo
aggiunto al sistema di elaborazione dei comandi la possibilità di
intervenire in modo più aggressivo all'aumento delle dimensioni del
buffer.
Con
questa modifica, l'accumulo di comandi in buffering viene gestito più
velocemente di prima. Per esempio, prima di questa modifica, se
c'erano 5 comandi extra in buffering, potevano servire fino a 5
secondi per tornare alla dimensione ideale della coda. Con questi
nuovi miglioramenti, abbiamo ridotto il tempo a meno di 1 secondo.
Ciò vuol dire che i giocatori che si imbattono in problemi come
instabilità di rete o picchi di ping subiranno per molto meno tempo
la latenza causata dal buffering extra.
Tuttavia,
nei casi più gravi l'accumulo di comandi in buffering rischierebbe
comunque di crescere a tal punto che l'elaborazione richiederebbe
comunque dei secondi, anche con la correzione di cui sopra. Pertanto,
quando questo avviene, ora azzeriamo forzatamente il buffer
eliminando tutti i comandi tranne il più recente. Questo ha il
vantaggio di rimuovere immediatamente la latenza aggiunta, al prezzo
di una correzione di movimento garantita.
Abbiamo
riscontrato che, in caso di gravi problemi di framerate o picchi di
latenza, era preferibile avere una correzione di movimento piuttosto
che dover aspettare anche un paio di secondi affinché la coda dei
comandi da elaborare tornasse alle dimensioni normali.
Il compromesso di ricevere una correzione in questi casi era
solitamente meno problematico del periodo esteso di latenza aumentata
che i giocatori subivano prima di questa modifica correttiva. Uno dei
casi in cui potreste ricevere questa correzione è riportare il gioco
in primo piano dopo aver usato il comando Alt+Tab con Limita FPS in
background impostato a un valore basso. Questo provoca un cambiamento
estremo di framerate che può portare all'aumento problematico del
buffer, che ora dovrebbe essere risolto rapidamente da questa
modifica.
Un
altro problema collegato che abbiamo individuato indagando sul
buffering è che i giocatori con jittering di rete sempre elevato
passano regolarmente da buffer grandi a piccoli e viceversa, perché
il sistema prova ad equilibrare la loro latenza con il numero di
comandi estrapolati dal server. Stiamo
lavorando a una soluzione per regolare meglio le dimensioni del
buffer, tenendo in considerazione questa sorta di jittering di rete a
lungo termine.
Guardare
avanti
Insieme
alle modifiche di cui sopra, abbiamo capito che i giocatori non hanno
un buon modo per visualizzare gli attuali ritardi dell'elaborazione
dei comandi. Dal
momento che i grafici che abbiamo realizzato internamente sono stati
molto utili per individuare questo problema, abbiamo aggiunto un
nuovo grafico delle prestazioni chiamato Ritardi RTT rete +
elaborazione che raffigura il vostro tempo di andata/ritorno rete
insieme ai ritardi dei movimenti di server e client.
Questo
tempo misurato sul grafico dovrebbe essere relativamente equivalente
al ritardo che si poteva riscontrare con il vecchio "test del
coltello". Un buon valore per questo grafico quando le cose
funzionano bene dovrebbe essere all'incirca 20-30 ms superiore al
vostro RTT rete, anche se il valore ideale sarà diverso in base alle
condizioni esatte della vostra rete e del framerate.
Inoltre,
abbiamo
aggiunto anche un grafico del jittering RTT rete che mostra come
l'RTT rete cambia da un pacchetto al successivo.
Picchi di ping e jittering di rete elevato sono spesso le cause di
buffering aggiuntivo, così abbiamo aggiunto questi elementi come
grafico per aiutare a diagnosticare potenziali condizioni di rete
avverse che non apparirebbero nel normale grafico dell'RTT rete.
Abbiamo
anche
implementato alcuni ulteriori sistemi di raccolta dati per avere più
statistiche su quali ritardi di elaborazione i giocatori sperimentano
nelle varie partite.
Analizzeremo
regolarmente questi dati per tenere d'occhio la salute del gioco e
capire se le modifiche di cui abbiamo parlato avranno gli effetti
sperati o se invece servono ulteriori correzioni e miglioramenti.
Infine, anche se leggiamo i post che appaiono su vari social network, vogliamo sfruttare meglio i nostri sondaggi di fine partita per avere ulteriori feedback approfonditi da parte dei giocatori relativamente alla qualità delle partite, per esempio rispetto alla qualità della connessione e del gunplay. Per tale motivo, modificheremo e aggiungeremo delle domande su questi temi.
PROSSIMO AGGIORNAMENTO
Speriamo
che questi miglioramenti al buffering dell'elaborazione dei comandi
aiuteranno a ridurre alcuni problemi che i giocatori sperimentavano
anche quando il ping sembrava a posto. Se riscontrate ancora problemi
nelle vostre partite, speriamo che avere le nuove informazioni su
ritardi di elaborazione e jittering in forma grafica vi tornerà
utile per inquadrare cosa succede e individuare potenziali cause. Se
avete problemi di mancanza di uniformità nel gioco e state
registrando la partita, avere questi grafici visibili vi fornirà
informazioni extra che possono aiutare a capire dove indagare.
Vogliamo
chiudere questo aggiornamento con un enorme grazie a tutti quelli che
hanno postato video e analisi dei problemi che hanno visto o
riscontrato. Apprezziamo il vostro amore per il gioco e lo sforzo che
fate per aiutarci a migliorarlo. Come sempre, prendiamo molto
seriamente i vostri feedback.
Preparatevi a un altro aggiornamento in cui parleremo della selezione del server e di come si rapporta alle prestazioni dei giocatori con ping elevato.