Multiplayer Online – Sotto la Scocca

scocca-multiplaye-online-1280x720

Multiplayer Online – Sotto la Scocca

Il mondo del gaming moderno sta facendo di tutto per inserire termini tecnici che confondono sempre più le acque. Risoluzione, FPS, HDR, PBR, GI e chi più ne ha, più ne metta. Non trovo fondamentalmente sbagliato usare la corretta terminologia, ma c’è bisogno di filtrare l’informazione nel modo giusto, altrimenti si crea solo confusione. Prendendo spunto da questa news su Splatoon 2 dove si parlava del tick rate, ho ritenuto opportuno fare una panoramica sull’argomento, così da evitare confusioni future.

Partiamo dalle basi. Quando un gioco viene eseguito in un ambiente multiplayer online, c’è bisogno di scambiare informazioni con l’esterno. Offline, in Mario Kart 8 la distanza tra le auto è una quantità nota aggiornata di continuo localmente. Online invece, se chi mi sta davanti si muove a destra, questa informazione deve essere passata dalla sua console alla mia. Tutto il codice che gestisce queste interazioni è chiamato genericamente netcode. Ci sono in genere tre strutture di rete per scambiare informazioni: Peer to Peer, Listen Server e Client/Server.

server vs p2p

Il Server ha autorità suprema. I Client inviano richieste e ricevono un servizio. Nel P2P, tutti possono inviare richieste e rispondere.

Il Peer to Peer o P2P è un sistema a ragnatela dove tutti i device sono connessi tra di loro e si scambiano informazioni. In ambito gaming oramai non è molto usato. Il modo migliore per immaginare un sistema P2P è quello di pensare a tanti computer in un ufficio con tante stampanti. Spesso il termine P2P si usa impropriamente per indicare il “Listen Server” in ambito gaming. Praticamente quando si crea un match online si sceglie un giocatore e questo diventa il “Server” del gioco, tutti gli altri sono connessi a lui. Questo ha il vantaggio di non richiedere un’infrastruttura per funzionare, ma è molto dipendente dalla qualità delle proprie linee. Se un gioco va a 60fps, l’host ha 16ms di tempo per inviare i dati a tutti gli altri, presupposto ideale non sempre raggiungibile.  Il sistema Client/Server invece si basa sull’avere un sistema esterno a massima autorità, il server, al quale si connettono i giocatori, che sono i client. Il server ha lo scopo di aggiornare lo stato del gioco e inviare i dati a tutti i client.

Quando si gioca online, lo scopo dell’infrastruttura è quella di minimizzare i ritardi nel ricevere le informazioni. Perché se è vero che qualche millisecondo di ritardo non è notabile, gli elementi in gioco sono molti ed i ritardi si sommano, fino ad arrivare a valori percettibili. E in un gioco dove è richiesta una certa precisione, dove è necessario saper studiare le posizioni degli avversari e gli effetti delle loro armi, il lag può inficiare enormemente sull’abilità personale. Ci sono molti valori e termini usati per indicare questi ritardi. Ping, RTT ed Tick Rate sono tra i principali.

Splatoon 2, presentata la nuova arena Starfish Mainstage-3

Splatoon ha un ritmo più lento di shooter arena, ma è pieno di armi con proiettili “lenti” e corpi fisici.

Il Ping indica il tempo necessario per un pacchetto di dati a viaggiare dal vostro client al server e tornare indietro. È un valore di controllo, asettico, fatto in ambiente controllato e dipende dalla qualità della vostra connessione e dalla distanza con il server. Il Round Trip Time o RTT è invece il valore che indica il tempo di risposta dal server dopo che si esegue un comando nel gioco. Il valore è una stima ed è più alto del Ping, ma è più vicino alla realtà. In queste metriche si inseriscono il Tick Rate del server e l’interpolazione. Il Tick rate rappresenta la frequenza di aggiornamento del server. Lo stato globale del gioco viene aggiornato un certo numero di volte al secondo. Per il testfire di Splatoon 2 questo valore era 12,5Hz. Un gioco come Overwatch lavora a 64Hz ovvero: i suoi server possono inviare pacchetti ai client 64 volte al secondo. Quindi il mio gioco si aggiorna ogni 15ms? Non proprio, per via dell’interpolazione. Questa è una tecnologia che permette di rendere fluido il movimento degli oggetti. Se un server ha l’informazione di un giocatore in due punti, il movimento tra i due punti viene creato dal client. Per fare ciò è necessario avere l’informazione dei due punti, quindi in genere si introduce un ritardo pari al doppio del tick rate.

Tutto questo va messo in fila. Io nel mio gioco mi muovo. Il gioco aggiorna il mio movimento in base al mio framerate. Nello stesso tempo invia l’informazione al server in base alla mia latenza. Il server riceve l’informazione e si aggiorna. A questo punto invia l’informazione ai client, tenendo conto di tutte le loro latenze e il client si aggiornerà un po’ in ritardo per l’interpolazione. A questo si aggiunge anche l’aggiornamento del framerate del gioco. Quindi un mio avversario non vede il me di adesso, ma vede un me nel passato, sempre. Ci sono ovviamente numerose tecniche per minimizzare errori dovuti a questi ritardi e la qualità di alcuni giochi dipende proprio da come sono gestiti questi accorgimenti da parte degli sviluppatori.

CS_GO

Counter Strike è così tanto pro che ha server a 128hz di tick rate.

Nel caso del testfire di Splatoon 2, avevamo il gioco che si aggiornava localmente ogni 16ms per i suoi 60fps. Se però il server mi manda informazioni ogni 80ms (12,5Hz) si perde molta della precisione dei comandi. Questi lunghi tempi di risposta rendono meglio con connessioni scarse. Un server a tick rate maggiori porta ad un gioco più reattivo e con meno ritardi, ma se si ha una connessione lenta si perdono più tick e quindi il lag fa più male. È la classica coperta corta. Nei titoli estremamente competitivi si tendono a favorire tick rate molto elevati. Per questo ci sono state lamentele per i 20Hz di Overwatch e per i 12,5Hz per Splatoon 2. Se il giocatore medio potrebbe non darci peso, la sfera competitiva è abbastanza fissata su questi aspetti. E non sono “futili”, hanno un impatto percettibile sul gameplay a certi livelli.

Gestire un gioco online non è semplice. Maggiore è la complessità dello stato del gioco, maggiore sarà il lavoro da fare per rendere l’esperienza utente reattiva e robusta. Per dubbi, domane e curiosità, sfruttate i commenti. E rilancio la solita domanda: quale argomento vorreste vedere trattato in futuro?

  • gaingi

    Interessante come al solito.
    Per la prossima volta puoi parlare dell’intelligenza artificiale.
    Quella dei “picchiaduro” dove hai un confronto 1:1 con la IA (o 4:1 nel caso di SSB).

    • Mauro

      Quoto.

  • Sumiwake

    Grazie per le delucidazioni Cap, anch’io chiedo un nell’articolo sull’IA, sempre se non lo hai già fatto prima.

  • Mooolto interessante! Forse ho capito perchè non sono mai riuscito a giocare bene con la mia connessione Fastweb ADSL con Splatoon per Wii U :/! Ps: Voto anch’io per un prossimo articolo sulla IA, magari anche con qualche approfondimento su quella usata nell’ultimo Zelda! 😍

  • Hyper L

    Il primo splatoon a quanto era per curiosità? Che la mia ADSL non lo riusciva a reggere quasi mai online purtroppo, si sconnetteva quasi sempre (solo nel primo periodo sono riuscito a giocarci anche benino)

    Comunque in generale un tick rate impostato così basso favorisce una buona giocabilità a tutti, compresi quelli che hanno connessioni meno buone, ma di contro un peggior competitivo, corretto?

    • Il primo splatoon era a 25Hz.

      Corretto nella seconda.

      Però con Splatoon da quel che so era anche una generale inadeguatezza del numero di Server, da noi in Italia (ed EU) in generale la situazione era un po’ penosa. In US andava molto meglio. Almeno da quello che si sente in giro.

      • Massimo8

        Arrivo tardi, ma forse vale la pena dire qualcosa della mia esperienza.
        Ho passato un mese in America in compagnia della mia fidata ragazza e della (ancora più fidata) Switch.
        Abbiamo giocato molto a Mario Kart 8 Deluxe online, la situazione era abbastanza brutta i primi giorni dopo il lancio, qualche errore di connessione, e lag più o meno presente in tutte le partite.
        La situazione è andata avanti migliorando, fino all’arrivo della patch, dopo la quale, il lag mi è sembrato ridotto al minimo (ancora presente, ma mai ingiocabile, o fastidioso) ed errori di connessione quasi inesistenti.

        Tornato in patria..passa qualche giorno e decido di avviare MK8D per farlo provare ad un amico…
        Una decina di errori di connessione prima di riuscire ad ENTRARE nella prima lobby.
        Lag onnipresente e incredibilmente sentito (vedi gli altri che rimangono fermi per 20 secondi, per poi teletrasportarsi un giro avanti; arrivi 3°, e dopo 30 secondi di “assestamento post gara” ti dice che sei arrivato 6°).
        E con la connessione che ho a casa mia (in fibra ottica) gioco benissimo ad un sacco di altri giochi (Rocket League, Gears Of War 4)..

        A questo punto mi chiedo perché con le Global Testdemo di Splatoon 2 e ARMS non ho avuto quasi NIENTE lag, se non giusto in 2 partite con ARMS e 1 con Splatoon 2…

        Ho paura per quando comprerò questi giochi speranzoso di giocare decentemente online.

  • usodabada

    Scusa una cosa, ma tralasciando le sessioni client-server che in genere si fanno a casa oppure nei gamesparty. Nei tornei ufficiali competitivi in genere non si gioca via LAN?

    • Si, ma LAN non è online! (quindi esula da quello che spiego qui)

      • usodabada

        Sì, intendevo che non si pone il problema del competitivo. Dal momento che Splatoon funzionava con internet anche in locale. Mentre il 2 fortunatamente gira direttamente con la LAN, certo può essere una seccatura per quando si fanno ranking online quel tempo di risposta, ma almeno a sto giro si possono fare i LAN party.

        • Il problema del competitivo si pone sempre perché la certezza di avere una LAN c’è praticamente solo nei tornei ufficiali, per la stragrande maggioranza delle persone si combatte online ed il competitivo si sente principalmente in quell’ambito, visto che chi partecipa ai tornei è sempre una % irrisoria dei giocatori totali.
          Anche perché da qualche parte si dovranno pure allenare!

          • usodabada

            Hai ragione anche tu, colpa mia.

            Vedo l’ottica del competitivo quasi solo esclusivamente nell’ambito dei tornei ufficiali, trascurando la parte “allenamento”.

            Associavo la cosa del competitivo di splatoon paragonandolo alla pessima esperienza del primo capitolo che funzionava senza LAN.

logo-bianco

NINTENDON EVENTI

Per la tua pubblicità su NINTENDON.IT

Regolamento Forum - Contatti - Nicer Design

Privacy Policy

Informativa estesa sui Cookie

©2017 NintendOn Tutti i diritti riservati. Tutti i marchi appartengono ai rispettivi proprietari.

Log in with your credentials

or    

Forgot your details?

Create Account