Aggiornamento sull'uniformità del gameplay di VALORANT - Parte 2

Il team di gameplay di VALORANT torna a parlare della sua recente indagine sull'uniformità tra una partita e l'altra

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

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.