08.09.2019 Views

Progettazione e Sviluppo di un Multiplayer Online Game su Reti Peer-to-Peer

Alma Mater Studiorum Universit`a degli Studi di Bologna Facolta` di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze di Internet Tesi di Laurea in Laboratorio di Programmazione Internet

Alma Mater Studiorum Universit`a degli Studi di Bologna
Facolta` di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Scienze di Internet
Tesi di Laurea in Laboratorio di Programmazione Internet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

112 CAPITOLO 5. SVILUPPI FUTURI<br />

stema <strong>di</strong> sincronizzazione temporale, perché se è vero che il modulo Shared-<br />

Components limita l’impat<strong>to</strong> <strong>di</strong> problemi legati alla latenza <strong>su</strong>lla consistenza<br />

dello sta<strong>to</strong> <strong>di</strong> gioco, utilizzando il pro<strong>to</strong>collo UDP la sicurezza <strong>di</strong> ricevere i<br />

messaggi nello stesso or<strong>di</strong>ne con il quale sono stati inviati viene meno.<br />

Un’ulteriore possibilità <strong>di</strong> ottimizzazione da vagliare è rappresentata dall’utilizzo<br />

<strong>di</strong> <strong>un</strong> sistema <strong>di</strong> compressione dati: attualmente i Commands vengono<br />

scritti <strong>su</strong>llo Stream sot<strong>to</strong>forma <strong>di</strong> stringhe UTF-8 (ogni carattere occupa<br />

da 1 a 4 byte), e l’utilizzo <strong>di</strong> <strong>un</strong>a libreria <strong>di</strong> compressione come Zlib 3 o<br />

GZip 4 , entrambe <strong>su</strong>pportate nativamente da .NET, può ridurre la richiesta<br />

<strong>di</strong> banda. L’efficacia <strong>di</strong> ques<strong>to</strong> tipo <strong>di</strong> compressione può però ri<strong>su</strong>ltare relativamente<br />

bassa, dal momen<strong>to</strong> che le stringhe scambiate tra i <strong>di</strong>versi <strong>Peer</strong><br />

sono piut<strong>to</strong>s<strong>to</strong> corte.<br />

5.3 Gestione utenti e MatchMaking<br />

Nell’attuale implementazione non sono presenti macrostrutture a<strong>di</strong>bite<br />

alla gestione del concet<strong>to</strong> <strong>di</strong> “partita” ed ai sot<strong>to</strong>-concetti ad esso connessi,<br />

come l’inizio e la fine <strong>di</strong> <strong>un</strong> match, la vit<strong>to</strong>ria e la sconfitta.<br />

Attualmente infatti non c’è ness<strong>un</strong> tipo <strong>di</strong> limitazione alla formazione au<strong>to</strong>noma<br />

<strong>di</strong> <strong>un</strong>a Membership, né tan<strong>to</strong> meno <strong>un</strong> sistema <strong>di</strong> controllo <strong>su</strong>l numero<br />

<strong>di</strong> partecipanti: ogni <strong>Peer</strong> può decidere <strong>di</strong> entrare in <strong>un</strong>a Membership<br />

in qualsiasi momen<strong>to</strong>, semplicemente connettendosi ad <strong>un</strong>o dei <strong>su</strong>oi no<strong>di</strong><br />

(Figura 5.8).<br />

Il primo problema da affrontare è il <strong>Peer</strong> Discovery e, nella fattispecie l’in<strong>di</strong>viduazione<br />

<strong>di</strong> <strong>un</strong> sistema in grado <strong>di</strong> notificare ai <strong>Peer</strong> non ancora connessi<br />

l’esistenza <strong>di</strong> Membership attive, e le informazioni necessarie che consentano<br />

<strong>di</strong> effettuarne il join.<br />

Tipicamente ques<strong>to</strong> viene realizza<strong>to</strong> attraverso <strong>un</strong> approccio centralizza<strong>to</strong>,<br />

3 http://www.zlib.net/<br />

4 http://www.gzip.org/

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!