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.

2.7. ESEMPI PRATICI 63<br />

Component” e “DestroyComponent”. Se il tipo <strong>di</strong> componente è <strong>un</strong> aggrega<strong>to</strong><br />

<strong>di</strong> sot<strong>to</strong>-componenti, allora saranno inoltrati tanti coman<strong>di</strong> “CreateComponent”<br />

e “DestroyComponent” quanti sono i sot<strong>to</strong>-componenti.<br />

Gli elementi presenti nell’ambiente tri<strong>di</strong>mensionale con<strong>di</strong>viso, a seconda delle<br />

loro caratteristiche e della loro f<strong>un</strong>zione, si possono raggruppare nei seguenti<br />

insiemi:<br />

• Elementi <strong>di</strong> scena: sono quegli elementi “statici” che non apportano informazione<br />

a livello <strong>di</strong> sta<strong>to</strong> <strong>di</strong> gioco. Tipicamente Arene (o mappe) 14 ,<br />

stanze, corridoi, o altri oggetti prettamente decorativi rientrano in questa<br />

tipologia <strong>di</strong> elementi, che non vengono istanziati conseguentemente<br />

ad <strong>un</strong> even<strong>to</strong> contestualizza<strong>to</strong> a livello logico o <strong>di</strong> rete, ma son presenti<br />

<strong>di</strong>rettamente nel Layer View, in<strong>di</strong>pendentemente dallo sta<strong>to</strong> del <strong>Peer</strong><br />

sot<strong>to</strong>stante.<br />

• Elementi attivi: sono quegli elementi “<strong>di</strong>namici” che, con la loro presenza<br />

alterano lo sta<strong>to</strong> <strong>di</strong> gioco: characters, Bullets, HealthPacks, ad<br />

esempio, rientrano in questa tipologia.<br />

Tra gli elementi attivi si può operare <strong>un</strong>’ulteriore <strong>di</strong>stinzione. Alc<strong>un</strong>i <strong>di</strong> questi<br />

elementi, infatti, “appartengono” in modo naturale ad <strong>un</strong> <strong>Peer</strong>: il Character<br />

del Player A è chiaramente <strong>di</strong> proprietà del rispettivo <strong>Peer</strong>. Analogamente<br />

<strong>un</strong> Bullet spara<strong>to</strong> da <strong>un</strong> Character del Player B apparterrà al <strong>Peer</strong> B. Altri<br />

elementi però sfuggono a questa regola. Si pensi agli HealthPack: a quale<br />

<strong>Peer</strong> appartengono? O, in altre parole, a quale Fac<strong>to</strong>ry è delegata la loro<br />

creazione?<br />

Per ques<strong>to</strong> tipo <strong>di</strong> elementi si è pensa<strong>to</strong> <strong>di</strong> agire nel seguente modo: <strong>su</strong>lla<br />

mappa “statica” (appartenente quin<strong>di</strong> alla categoria degli elementi <strong>di</strong> scena)<br />

vengono inseriti N PlaceHolder, cioè p<strong>un</strong>ti astratti che al momen<strong>to</strong> della<br />

realizzazione della mappa non contengono ness<strong>un</strong> ogget<strong>to</strong> in particoare, ma<br />

identificano com<strong>un</strong>que <strong>un</strong>a posizione eventualmente occupabile in r<strong>un</strong>time.<br />

14 Gli ambienti nei quali si svolgono le partite <strong>di</strong> <strong>un</strong> FPS

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

Saved successfully!

Ooh no, something went wrong!