13
Architettura e Architettura e protocolli di protocolli di distribuzione dello distribuzione dello stato in stato in videogiochi videogiochi Multiplayer Multiplayer distribuiti distribuiti Michele Pace Michele Pace Esame di Reti di Calcolatori LS Esame di Reti di Calcolatori LS Aa 2004-2005 Aa 2004-2005

Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Embed Size (px)

Citation preview

Page 1: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Architettura e Architettura e protocolli di protocolli di

distribuzione dello distribuzione dello stato in videogiochi stato in videogiochi

Multiplayer Multiplayer distribuitidistribuiti

Michele PaceMichele Pace

Esame di Reti di Calcolatori LS Esame di Reti di Calcolatori LS

Aa 2004-2005Aa 2004-2005

Page 2: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

MMOGMMOG Il principale ostacolo nell’ interazione real-time è Il principale ostacolo nell’ interazione real-time è

l’impossibilità intrinseca di Internet di fornire l’impossibilità intrinseca di Internet di fornire garanzie sulla bassa latenza della trasmissione di garanzie sulla bassa latenza della trasmissione di informazioni.informazioni.

I messaggi possono essere ritardati I messaggi possono essere ritardati indefinitamente dalla rete o possono anche indefinitamente dalla rete o possono anche essere persi.essere persi.

Page 3: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

C\S vs P2P vs Mirrored C\S vs P2P vs Mirrored ServerServer

I videogiochi commerciali I videogiochi commerciali sono costruiti prinipalmente sono costruiti prinipalmente con architetture C\S, o, con architetture C\S, o, meno frequentemente con meno frequentemente con architetture Peer-to-Peer. architetture Peer-to-Peer.

Le architetture C\S Le architetture C\S permettono alle compagnie permettono alle compagnie di videogiochi di avere un di videogiochi di avere un forte controllo sullo stato forte controllo sullo stato del gioco del gioco

Architetture Peer-to-Peer Architetture Peer-to-Peer permettono di ottenere permettono di ottenere minori latenze e di minori latenze e di eliminare i colli di bottiglia eliminare i colli di bottiglia sui server.sui server.

Tipologia di gioco Analisi dei ritardi

Simulazione corsa auto

50 ms Non si nota

100 ms Si nota ma accettabile

oltre Non accettabile

Gioco di strategia Da 0 a 500 ms Accettabile

Oltre Non accettabile

Sparatutto in prima persona

Oltre 150 Non accettabile

Qualità della sensazione di immersione nella simulazione - architettura best-effort di Internet

Page 4: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Architettura Client Architettura Client Server Server

Server

Forte controllo centralizzato dello stato del gioco.Forte controllo centralizzato dello stato del gioco.

I giocatori inviano informazioni sulle loro azioni, il server calcola e aggiorna lo statoI giocatori inviano informazioni sulle loro azioni, il server calcola e aggiorna lo statodel gioco e invia le informazioni ai clients.del gioco e invia le informazioni ai clients.

Page 5: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Partizionamento del mondo Partizionamento del mondo di giocodi gioco

Organizzazione del giocoOrganizzazione del giocopiù diffusa attualmente.più diffusa attualmente.

Al crescere della complessità del mondoAl crescere della complessità del mondo virtuale l’ architetturavirtuale l’ architetturaclient server “pura” si sposta verso client server “pura” si sposta verso un’ architettura Client\Server Clusterun’ architettura Client\Server Clusterin cui lo stato del gioco èin cui lo stato del gioco ècondiviso tra una serie di computercondiviso tra una serie di computerinterconnessi.interconnessi.

Page 6: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Architettura Peer to PeerArchitettura Peer to Peer

Ogni client calcola lo Ogni client calcola lo stato del gioco stato del gioco attraverso i messaggi attraverso i messaggi che riceve dagli altri che riceve dagli altri client.client.Minor latenza dei messaggi, nessun colloMinor latenza dei messaggi, nessun collo

di bottiglia sul server ma problemi neldi bottiglia sul server ma problemi nelMantenimento della consistenza. Mantenimento della consistenza.

Page 7: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Architettura Mirrored Architettura Mirrored ServerServer

ServerServerMirror 1

Mirror 2

Connessione ad alta velocità

Page 8: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

ProgettoProgettoRealizzazione di uno strato software basato sulle API di basso livello DirectPlayRealizzazione di uno strato software basato sulle API di basso livello DirectPlay

•Servizi di QoS Servizi di QoS (qualità della (qualità della simulazione)simulazione)

•Mantenimento Mantenimento dello stato dello stato distribuito della distribuito della simulazionesimulazione

•Tolleranza ai Tolleranza ai guasti e guasti e replicazione.replicazione.

•Meccanismi per l’ Meccanismi per l’ implementazione di implementazione di politichepolitiche

•Coordinamento dei Coordinamento dei server server

Page 9: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Gestione C\SGestione C\S

Page 10: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Il modello scelto è quello Client-Server con server collaborativi, Il modello scelto è quello Client-Server con server collaborativi, ognuno dei quali si occupa di una parte del mondo di gioco.ognuno dei quali si occupa di una parte del mondo di gioco.

Allocazione statica delle risorse. (Server)Allocazione statica delle risorse. (Server)

Applicazione non elastica (Real time). Adattativa. (Maggiori latenze possono essere tollerate entro certi limiti con Applicazione non elastica (Real time). Adattativa. (Maggiori latenze possono essere tollerate entro certi limiti con interpolazioni più pesanti.)interpolazioni più pesanti.)

Alla connessione di un client e potenzialmente inAlla connessione di un client e potenzialmente in un qualsiasi altro momento durante la connessioneun qualsiasi altro momento durante la connessione il server invia un pacchetto contenente delleil server invia un pacchetto contenente delle direttive che il client dovrà osservare perdirettive che il client dovrà osservare per comunicare con il server. comunicare con il server. (Meccanismi, non politiche).(Meccanismi, non politiche).

ClientNetConfig{ DWORD dwThreadWait; WORD UpdateMessages_rate;WORD wTimeout; BYTE ubReliableRate;}

L’ utilizzo di ClientNetConfig costituisce un azione sia statica che dinamica (sia preventiva che adattativa) per ottenere L’ utilizzo di ClientNetConfig costituisce un azione sia statica che dinamica (sia preventiva che adattativa) per ottenere forme di bilanciamento.forme di bilanciamento.

Page 11: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

MasterServerMasterServer

MasterServer: MasterServer:

•Coordinamento dei serverCoordinamento dei server

•Punto di controllo centralizzatoPunto di controllo centralizzato

•Recupero di informazioni sul Recupero di informazioni sul carico e il funzionamento dei carico e il funzionamento dei server.server.

•Fail-Safe tolleratoFail-Safe tollerato (definizione mutuata da(definizione mutuata da ipotesi di guasto di processori),ipotesi di guasto di processori),Bizantine no.Bizantine no.

Page 12: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Modello di replicazione e Modello di replicazione e meccanismo di tolleranza ai meccanismo di tolleranza ai

guasti.guasti.Proprietà perseguita: Proprietà perseguita: AvaiabilityAvaiability.Si cerca di fornire sempre il servizio anche a fronte del degrado dei tempi di risposta.Si cerca di fornire sempre il servizio anche a fronte del degrado dei tempi di risposta.Si mira quindi a liveness del servizioSi mira quindi a liveness del servizio

Failover. Migrazione del servizio a fronte di un guasto.Failover. Migrazione del servizio a fronte di un guasto.

Crash del MasterServer tollerato entro Crash del MasterServer tollerato entro tempi ragionevoli. tempi ragionevoli.

Ricerca del rispetto del Ricerca del rispetto del Principio di minima intrusione.Principio di minima intrusione.L’ heartbeat contiene informazioniL’ heartbeat contiene informazionisul funzionamento di un server, ilsul funzionamento di un server, ilMasterserver comunica solo se necessario.Masterserver comunica solo se necessario.

Modello di replicazione è a copie fredde: lo stato non viene Modello di replicazione è a copie fredde: lo stato non viene mantenuto sincronizzato sulle copie. Quando si verifica un mantenuto sincronizzato sulle copie. Quando si verifica un guasto lo stato viene ricostruito sul nuovo server attraverso guasto lo stato viene ricostruito sul nuovo server attraverso una fase di inizializzazione di durata molto breve.una fase di inizializzazione di durata molto breve.

Page 13: Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa 2004-2005

Conclusioni e TestConclusioni e Test Il progetto è stato svolto nel tentativo di applicare Il progetto è stato svolto nel tentativo di applicare

considerazioni e metodi analizzati nel corso ai fini di considerazioni e metodi analizzati nel corso ai fini di costruire un sistema distribuito sufficientemente costruire un sistema distribuito sufficientemente funzionale.funzionale.

L’ accento è stato posto su aspetti di QoS e di tolleranza L’ accento è stato posto su aspetti di QoS e di tolleranza ai guasti.ai guasti.

L’ architettura utilizzata è quella client-server perché è L’ architettura utilizzata è quella client-server perché è stata ritenuta la più adatta al tipo di sistema che si stata ritenuta la più adatta al tipo di sistema che si voleva costruire.voleva costruire.

Il sistema è stato testato su una LAN in una sessione di 5 Il sistema è stato testato su una LAN in una sessione di 5 giocatori e non si sono riscontrati problemi di utilizzo o di giocatori e non si sono riscontrati problemi di utilizzo o di ritardi.ritardi.

Il sistema è stato testato su connessione Internet, con Il sistema è stato testato su connessione Internet, con due computer ognuno dei quali ospitava due sessioni di due computer ognuno dei quali ospitava due sessioni di gioco. Una linea a 56kb e una linea ADSL. Anche in gioco. Una linea a 56kb e una linea ADSL. Anche in quasto caso non si sono riscontrate latenze fastidiose per quasto caso non si sono riscontrate latenze fastidiose per la simulazione.la simulazione.