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.

3.6. LAYER VIEW 87<br />

simo identificativo: l’attribu<strong>to</strong> NetID dell’istanza <strong>di</strong> <strong>Peer</strong> e l’attribu<strong>to</strong> Name<br />

dell’istanza <strong>di</strong> SharedComponentsManager hanno lo stesso valore.<br />

Tale vincolo ha l’effet<strong>to</strong> implici<strong>to</strong> <strong>di</strong> estendere la proprietà <strong>di</strong> <strong>un</strong>o SharedComponent,<br />

non più al solo Manager ma anche all’intero <strong>Peer</strong>.<br />

Sono inoltre implementati i Commands che permet<strong>to</strong>no la sincronizzazione<br />

au<strong>to</strong>matica del DataLayer tra i <strong>di</strong>versi <strong>Peer</strong> ( CreateComponent, Update-<br />

Component, ActivateComponent e SendToComponent) ed i componenti che<br />

consen<strong>to</strong>no <strong>di</strong> rappresentare le informazioni più com<strong>un</strong>i per l’identificazione<br />

si <strong>un</strong> elemen<strong>to</strong> grafico all’interno <strong>di</strong> <strong>un</strong> generico videogioco tri<strong>di</strong>mensionale<br />

(Object3D e MovingObject3D).<br />

La seconda regione è più <strong>Game</strong> Oriented, nel senso che da qui in poi iniziano<br />

a presentarsi classi che implementano logiche strettamente legate alle<br />

specifiche <strong>di</strong> gioco e alle relative <strong>di</strong>namiche <strong>di</strong> <strong>Game</strong>Play.<br />

Qui si trova la classe PlayerContext, ere<strong>di</strong>tata da <strong>Peer</strong>Context, che da <strong>un</strong>a<br />

parte astrae il contes<strong>to</strong> lega<strong>to</strong> al concet<strong>to</strong> <strong>di</strong> “<strong>Peer</strong>”, limitandolo a quello<br />

più specifico <strong>di</strong> Player, e dall’altra implementa <strong>un</strong>a serie <strong>di</strong> logiche che caratterizzano<br />

quest’ultimo: ad esempio viene esegui<strong>to</strong> <strong>un</strong> override <strong>su</strong>l me<strong>to</strong>do<br />

Join, nel quale viene istanzia<strong>to</strong> <strong>un</strong> componente <strong>di</strong> tipo Character; in ques<strong>to</strong><br />

modo, quando inizia la partita, ogni Player creerà au<strong>to</strong>maticamente nel proprio<br />

contes<strong>to</strong> logico <strong>un</strong>’istanza Character, la quale sarà quin<strong>di</strong> con<strong>di</strong>visa tra<br />

tutti i <strong>Peer</strong>.<br />

3.6 Layer View<br />

Come evidenzia<strong>to</strong> nel capi<strong>to</strong>lo 2.6, il Layer View è mol<strong>to</strong> vas<strong>to</strong>, e fa fronte<br />

ad <strong>un</strong> notevole numero <strong>di</strong> problematiche e f<strong>un</strong>zionalità, molte delle quali non<br />

sono strettamente connesse all’argomen<strong>to</strong> <strong>di</strong> tesi.<br />

Aspetti come il Rendering, la gestione degli Input, la gestione della riprodu-

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

Saved successfully!

Ooh no, something went wrong!