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.

2.7. ESEMPI PRATICI 65<br />

Figura 2.29: Arena e PlaceHolder sono elementi <strong>di</strong> scena, mentre HealthPack-<br />

Genera<strong>to</strong>r, HealthPack e Character sono elementi attivi. Alc<strong>un</strong>i <strong>di</strong> questi<br />

appartengono al Player A ed altri al Player B.<br />

<strong>di</strong> componente: gli HealthPack e i Bullet, ad esempio, non possono essere<br />

<strong>di</strong>strutti, e devono continuare ad essere aggiornati. Il Character, invece, generalmente<br />

viene <strong>di</strong>strut<strong>to</strong>.<br />

Sorge quin<strong>di</strong> <strong>un</strong> problema lega<strong>to</strong> all’aggiornamen<strong>to</strong> <strong>di</strong> quei componenti<br />

il cui <strong>Peer</strong> non è più presente all’interno della Membership. Una soluzione<br />

potrebbe essere quella <strong>di</strong> forzare il cambio <strong>di</strong> proprietà dal <strong>Peer</strong> <strong>di</strong>sconnesso<br />

ad <strong>un</strong> <strong>Peer</strong> ancora connesso.<br />

Il Modulo SharedComponents, in casi eccezionali, permette <strong>di</strong> delegare la<br />

proprietà <strong>di</strong> <strong>un</strong> componente come se fosse sta<strong>to</strong> genera<strong>to</strong> da <strong>un</strong>’altro Fac<strong>to</strong>ry.<br />

Il <strong>Peer</strong> che ne acquisisce la proprietà <strong>di</strong>venta il <strong>su</strong>o nuovo “Owner” e<br />

deve notificare tale passaggio a tutti gli altri <strong>Peer</strong> ancora connessi.<br />

Per decidere a quale <strong>Peer</strong> cedere la proprietà, analagomente a quan<strong>to</strong> <strong>su</strong>ccede<br />

per la creazione degli HealthPack, l’utilizzo <strong>di</strong> <strong>un</strong>a f<strong>un</strong>zione alea<strong>to</strong>ria<br />

è sconsigliabile. Così come è sconsigliabile eseguire <strong>un</strong> Polling N-a-N: ogni<br />

<strong>Peer</strong> esegue <strong>un</strong> Polling <strong>di</strong> check <strong>su</strong>l <strong>Peer</strong> temporalmente connesso dopo <strong>di</strong>

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

Saved successfully!

Ooh no, something went wrong!