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.

10 CAPITOLO 1. STATO DELL’ARTE<br />

Un approccio “ottimistico”, implementa<strong>to</strong> ad esempio della Time-Warp<br />

Synchronization, prevede invece <strong>un</strong>’ esecuzione degli eventi imme<strong>di</strong>ata: questi<br />

infatti saranno processati appena gi<strong>un</strong>ti a destinazione. Il vincolo temporale<br />

at<strong>to</strong> a garantire la consistenza, che nell’approccio “conservativo” è realizza<strong>to</strong><br />

me<strong>di</strong>ante fasi ed intervalli <strong>di</strong> tempo “bloccanti”, è qui invece rappresenta<strong>to</strong><br />

dal processo <strong>di</strong> “Roll-back”. Ad ogni even<strong>to</strong> viene infatti assegna<strong>to</strong> <strong>un</strong> Time-<br />

Stamp: quando <strong>un</strong> <strong>Peer</strong> riceve <strong>un</strong> even<strong>to</strong> contrassegna<strong>to</strong> da <strong>un</strong> TimeStamp<br />

meno recente rispet<strong>to</strong> a quello attuale, vengono prima cancellati tutti gli effetti<br />

scaturiti da eventi già processati riportanti <strong>un</strong> TimeStamp più recente,<br />

poi esegui<strong>to</strong> l’even<strong>to</strong> in questione, ed infine ri-processati quest’ultimi. Alc<strong>un</strong>i<br />

eventi possono però essere “correlati” tra loro: l’esistenza -o la non esistenza<strong>di</strong><br />

<strong>un</strong> even<strong>to</strong> “chiave” all’interno <strong>di</strong> <strong>un</strong>a “Correlation chain” può alterare o<br />

compromettere il significa<strong>to</strong> e la vali<strong>di</strong>tà degli eventi ad esso correlati: in<br />

altre parole, compromettere la consistenza dello sta<strong>to</strong> <strong>di</strong> gioco (Figura 1.6).<br />

Ques<strong>to</strong> tipo <strong>di</strong> sincronizzazioni permette <strong>di</strong> avere <strong>un</strong>a maggiore reattività <strong>di</strong><br />

interazione rispet<strong>to</strong> a quelle basate <strong>su</strong>ll’approccio “conservativo”, ma, per<br />

garantire l’esistenza <strong>di</strong> <strong>un</strong>a base dati <strong>su</strong>fficientemente ampia da permettere<br />

il recovery degli stati precedenti in fase <strong>di</strong> rollback, richiede tendenzialmente<br />

<strong>un</strong>a quantità <strong>di</strong> memoria più elevata.<br />

Per limitare ques<strong>to</strong> problema, si può intervenire eliminando gli eventi obsoleti,<br />

cioè quegli eventi, non correlati, ridondanti e sostituibili quin<strong>di</strong> da eventi<br />

più recenti che, partendo dal medesimo sta<strong>to</strong> iniziale, portano al medesimo<br />

sta<strong>to</strong> finale.

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

Saved successfully!

Ooh no, something went wrong!