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.
72 CAPITOLO 3. IMPLEMENTAZIONE<br />
• ILink: identifica <strong>un</strong> canale <strong>di</strong> rete. Attraverso i me<strong>to</strong><strong>di</strong> Read() e Write()<br />
è possibile ascoltare ed inviare messaggi all’endpoint associa<strong>to</strong> all’ILink<br />
in questione.<br />
Figura 3.3: Interfacce NET<br />
Tali interfacce sono state concretizzate attraverso due classi: TCPNode e<br />
TPCLink. Il pro<strong>to</strong>collo <strong>di</strong> rete utilizza<strong>to</strong> come prima implementazione è infatti<br />
il TCP/IP. Applicazioni interattive come i videogiochi, spesso richiedono<br />
<strong>un</strong> frequente e rapido scambio <strong>di</strong> informazioni. Il pro<strong>to</strong>collo UDP potrebbe<br />
essere consigliabile in ques<strong>to</strong> senso, poiché è Message-Oriented invece che<br />
Stream-Oriented, e per ogni pacchet<strong>to</strong> invia<strong>to</strong> non deve aspettare <strong>un</strong> messaggio<br />
<strong>di</strong> ri<strong>to</strong>rno; d’altro can<strong>to</strong>, però, per evitare problemi <strong>di</strong> consistenza,<br />
ri<strong>su</strong>ltano necessari sistemi che garantiscono maggiore sicurezza e affidabilità<br />
in termini controllo <strong>di</strong> congestione, Ack <strong>di</strong> ricezione ed il mantenimen<strong>to</strong><br />
dell’or<strong>di</strong>ne <strong>di</strong> invio dei pacchetti. Inoltre per l’in<strong>di</strong>viduazione <strong>di</strong> <strong>un</strong>a Membership<br />
può ri<strong>su</strong>ltare più comodo <strong>un</strong> pro<strong>to</strong>collo Connection-oriented poiché<br />
la connessione e la <strong>di</strong>sconnessione <strong>di</strong> no<strong>di</strong> all’interno della rete vengono gestiti<br />
<strong>di</strong>rettamente dal sistema, rendendo <strong>su</strong>perflua <strong>un</strong>’emulazione logica la<strong>to</strong><br />
applicazione: esis<strong>to</strong>no infatti implementazioni UDP “Reliable”, anche appositamente<br />
mirate ai videogiochi (si veda Raknet 4 ), che, la<strong>to</strong> applicazione,<br />
4 http://www.jenkinssoftware.com