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