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 55<br />

Figura 2.25: Box-Box<br />

utilizzate dall’Engine fisico, come il tipo <strong>di</strong> materiale colpi<strong>to</strong>, la “Bo<strong>un</strong>ciness”,<br />

la <strong>su</strong>a “Densità’ e la massa degli oggetti coinvolti nella collisione.<br />

Ci sono poi <strong>un</strong>a serie <strong>di</strong> ottimizzazioni che operano <strong>su</strong>i dati presenti nello<br />

“SceneGraph”, atte ad evitare che vengano eseguiti test <strong>di</strong> “Collision Detection”<br />

inutilmente e tra tutti gli oggetti, anche quando la <strong>di</strong>stanza tra questi è<br />

notevole: spesso infatti viene esegui<strong>to</strong> <strong>un</strong> test mol<strong>to</strong> approssima<strong>to</strong> me<strong>di</strong>ante<br />

<strong>un</strong> “Sphere-Sphere” massimizza<strong>to</strong>, che “filtra” e raggruppa quegli oggetti che<br />

si trovano in prossimità reciproca, applicando quin<strong>di</strong> “Collision Detections”<br />

più precise solo a quest’ultimi.<br />

Nel caso <strong>di</strong> gran<strong>di</strong> spazi, inoltre, si tende a razionalizzare preventivamente la<br />

scena <strong>di</strong> gioco in strutture apposite come il “QuadTree”, che partizionano lo<br />

spazio in quadranti ricorsivi.<br />

Dal p<strong>un</strong><strong>to</strong> <strong>di</strong> vista implementativo, entrambe le fasi verranno gestite dall’“Engine<br />

fisico” presente nel Layer View. Ciò significa che, così come avviene per il<br />

movimen<strong>to</strong>, chi controlla ed eventualmente mo<strong>di</strong>fica la posizione dei singoli<br />

oggetti 3D risidede nel Layer View dei loro rispettivi <strong>Peer</strong> “Owner”.<br />

Siano due oggetti tri<strong>di</strong>mensionali, “Ogget<strong>to</strong> A” ed “Ogget<strong>to</strong> B” in collisione,<br />

appartenenti rispettivamente al <strong>Peer</strong> “A” e al <strong>Peer</strong> “B”, la “Collision<br />

Detection” verrà eseguita allo stesso modo in entrambi i <strong>Peer</strong>, ma il “Colli-

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

Saved successfully!

Ooh no, something went wrong!