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
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.