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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

vi CAPITOLO 0. INTRODUZIONE<br />

portabile e scalabile. Il Server inoltre rappresenta <strong>un</strong>o SPOF 1 .<br />

Con “consistenza” si intende la necessità <strong>di</strong> avere <strong>un</strong>o sta<strong>to</strong> <strong>di</strong> gioco defini<strong>to</strong><br />

da dati integri e valorizzati allo stesso modo <strong>su</strong> ogni singolo client, dove con<br />

“sta<strong>to</strong> <strong>di</strong> gioco” si intende <strong>un</strong>a rappresentazione, <strong>un</strong>a sorta <strong>di</strong> “istantanea”,<br />

dello sta<strong>to</strong> (posizione, rotazione, azioni, eventi, variabili, etc.) <strong>di</strong> ogni singolo<br />

elemen<strong>to</strong> presente nell’ambiente <strong>di</strong> gioco.<br />

In <strong>un</strong> sistema decentralizza<strong>to</strong> <strong>Peer</strong>-To-<strong>Peer</strong>, ogni nodo è paritetico e può<br />

f<strong>un</strong>gere quin<strong>di</strong> contemporaneamente sia da Client che da Server.<br />

Su ogni <strong>Peer</strong> è presente <strong>un</strong>a copia dello sta<strong>to</strong> <strong>di</strong> gioco, e nel caso <strong>di</strong> sistemi<br />

<strong>Peer</strong>-To-<strong>Peer</strong> “puri”, ogni <strong>Peer</strong> porterà avanti la logica <strong>di</strong> gioco basandosi<br />

<strong>su</strong>l proprio Data Layer, introducendo quin<strong>di</strong> problematiche <strong>di</strong> consistenza e<br />

sincronizzazione temporale.<br />

Senza ness<strong>un</strong> sistema <strong>di</strong> controllo, infatti, ogni <strong>Peer</strong>, specie in quelle situazioni<br />

ed in quegli eventi soggetti a processi alea<strong>to</strong>ri o notevolmente sensibili<br />

alla sincronizzazione temporale, può presentare <strong>un</strong>o sta<strong>to</strong> <strong>di</strong> gioco <strong>di</strong>fferente<br />

rispet<strong>to</strong> agli altri, e tale errore è destina<strong>to</strong> a propagarsi aggiornamen<strong>to</strong> dopo<br />

aggiornamen<strong>to</strong>, portando ad <strong>un</strong>a <strong>di</strong>vergenza dei ri<strong>su</strong>ltati potenzialmente<br />

mol<strong>to</strong> elevata (i.e. in <strong>un</strong> <strong>Peer</strong> la vit<strong>to</strong>ria è assegnata al Player A, mentre in<br />

<strong>un</strong> altro <strong>Peer</strong> la vit<strong>to</strong>ria è assegnata al Player B).<br />

Obiettivi <strong>di</strong> proget<strong>to</strong><br />

In questa tesi <strong>di</strong> proget<strong>to</strong> si é deciso <strong>di</strong> affrontare lo sviluppo <strong>di</strong> <strong>un</strong> videogioco<br />

<strong>Multiplayer</strong> basa<strong>to</strong> <strong>su</strong>ll’architettura <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong>. La soluzione adottata,<br />

però, non è riconducibile al modello <strong>Peer</strong>-<strong>to</strong>-<strong>Peer</strong> “Puro”, in quan<strong>to</strong> i no<strong>di</strong><br />

non sono propriamente paritetici: ogni <strong>Peer</strong> infatti, pur conoscendo lo sta<strong>to</strong><br />

<strong>di</strong> gioco globale, ne gestirà <strong>di</strong>rettamente solo <strong>un</strong>a partizione, aggiornando <strong>di</strong><br />

1 Single point of failure, <strong>un</strong> generico elemen<strong>to</strong> il cui malf<strong>un</strong>zionamen<strong>to</strong> compromette<br />

l’intero sistema del quale fa parte.

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

Saved successfully!

Ooh no, something went wrong!