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.

18 CAPITOLO 2. ARCHITETTURA SOFTWARE<br />

Riprendendo l’esempio precedente, e limitando il contes<strong>to</strong> ai soli giochi offline,<br />

al fine <strong>di</strong> realizzare <strong>un</strong> semplice gioco Arcade può non essere necessaria<br />

<strong>un</strong>a forte separazione tra il Layer logico (Business Layer) ed il Layer <strong>di</strong> vi<strong>su</strong>alizzazione<br />

(Presentation Layer): lo spostamen<strong>to</strong> <strong>di</strong> <strong>un</strong>o Sprite 7 che ne simula<br />

il movimen<strong>to</strong> <strong>su</strong> schermo, può essere realizza<strong>to</strong> mo<strong>di</strong>ficando <strong>di</strong>rettamente le<br />

variabili relative alla posizione <strong>di</strong> <strong>di</strong>segno dello stesso, come imme<strong>di</strong>ata conseguenza<br />

dell’input dell’utente.<br />

In <strong>un</strong> TBS, invece, i due Layer tendono ad essere <strong>di</strong>saccoppiati in modo<br />

naturale, portando il Layer <strong>di</strong> vi<strong>su</strong>alizzazione ad essere <strong>un</strong>a mera rappresentazione<br />

dei dati logici che, in ultima analisi, sono gli <strong>un</strong>ici deten<strong>to</strong>ri dello<br />

sta<strong>to</strong> attuale <strong>di</strong> gioco.<br />

Se però si estende l’esempio ampliandolo ai giochi online, allora anche per<br />

<strong>un</strong> gioco Arcade sarà opport<strong>un</strong>o seguire <strong>un</strong> pattern Three-tier 8 o MVC-like 9 ,<br />

dal momen<strong>to</strong> che avere <strong>un</strong> Layer logico separa<strong>to</strong> semplifica l’identificazione,<br />

la ricerca, l’accesso e quin<strong>di</strong> la sincronizzazione dello sta<strong>to</strong> <strong>di</strong> gioco. Non<br />

solo: In ques<strong>to</strong> contes<strong>to</strong> nascono problematiche relative alla latenza <strong>di</strong> rete,<br />

specialmente proprio in quelle tipologie <strong>di</strong> gioco che richiedono contemporaneamente<br />

massima reattività e massima consistenza.<br />

Idealmente, quin<strong>di</strong>, anche quelle azioni che normalmente, in architetture Singleplayer<br />

oriented, producono <strong>un</strong> feedback <strong>di</strong>ret<strong>to</strong>, come lo spostamen<strong>to</strong> <strong>di</strong><br />

<strong>un</strong> elemen<strong>to</strong> grafico in conseguenza ad <strong>un</strong>o specifico input, devono qui essere<br />

processate attraverso <strong>di</strong>versi Layer prima <strong>di</strong> essere eseguite, eventualmente<br />

anche con <strong>un</strong> apposi<strong>to</strong> ritardo introdot<strong>to</strong> volutamente da alc<strong>un</strong>i sistemi<br />

<strong>di</strong> sincronizzazione (si veda la sezione 4). Per alc<strong>un</strong>e tipologie <strong>di</strong> gameplay,<br />

però, tale ritardo finisce con l’impattare negativamente <strong>su</strong>ll’esperienza <strong>di</strong> gionetworking<br />

7 Un qualsiasi elemen<strong>to</strong> grafico, statico o <strong>di</strong>namico, che compone la scena <strong>di</strong> gioco<br />

8 Architettura software caratterizzata da tre moduli: Interfaccia Utente, Logica<br />

F<strong>un</strong>zionale e Dati<br />

9 Model-View-Controller, <strong>un</strong> pattern architetturale che vede separati i concetti <strong>di</strong> Model:<br />

il sistema <strong>di</strong> accesso ai dati, View: Il sistema <strong>di</strong> vi<strong>su</strong>alizzazione dati, ed il Controller: Il<br />

sistema <strong>di</strong> mo<strong>di</strong>fica dei dati

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

Saved successfully!

Ooh no, something went wrong!