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.

104 CAPITOLO 5. SVILUPPI FUTURI<br />

senza <strong>un</strong> <strong>su</strong>ppor<strong>to</strong> la<strong>to</strong> Client (come l’Integrity Check esegui<strong>to</strong> da AntiTCC )<br />

ed <strong>un</strong> <strong>su</strong>ppor<strong>to</strong> la<strong>to</strong> server (come gestione e tracciamen<strong>to</strong> degli utenti malevoli),<br />

e dal momen<strong>to</strong> che alc<strong>un</strong>i comportamenti sospetti potrebbero essere<br />

causati dalla latenza, dalla <strong>su</strong>a variazione, e dalla congestione <strong>di</strong> rete, tali<br />

sistemi non possono mirare all’eliminazione del problema <strong>di</strong> Cheating, ma<br />

rappresentano solo <strong>un</strong> tentativo at<strong>to</strong> ad arginarne gli effetti.<br />

5.1.1 Time Based Cheating<br />

Come illustra<strong>to</strong> nel capi<strong>to</strong>lo 2.3.1, perio<strong>di</strong>camente ogni <strong>Peer</strong>, tramite il<br />

comando TimeSync, richiede agli altri <strong>Peer</strong> appartenenti alla Membership<br />

<strong>di</strong> notificare il valore del proprio TimeStamp, cosicché vi si possa possa<br />

calcolare, e memorizzare, il delta relativo.<br />

Quando viene memorizza<strong>to</strong> il nuovo valore <strong>di</strong> tale delta, ques<strong>to</strong> teoricamente<br />

non dovrebbe <strong>di</strong>scostarsi troppo dal valore memorizza<strong>to</strong> precedentemente.<br />

Se questa <strong>di</strong>fferenza è maggiore <strong>di</strong> <strong>un</strong>a certa soglia (che tiene con<strong>to</strong><br />

<strong>di</strong> eventuali oscillazioni dovute al Lag e Jitter), allora viene <strong>di</strong>minu<strong>to</strong> il<br />

p<strong>un</strong>teggio <strong>di</strong> Fairness relativo al <strong>Peer</strong> “sospetta<strong>to</strong>” <strong>di</strong> cheating.<br />

La soglia <strong>di</strong> <strong>to</strong>lleranza, sot<strong>to</strong> ques<strong>to</strong> aspet<strong>to</strong>, può anche essere relativamente<br />

alta, poiché a ques<strong>to</strong> livello, il sistema <strong>di</strong> Timing deve semplicemente<br />

garantire <strong>un</strong>a velocità <strong>di</strong> esecuzione “simile” <strong>su</strong> ogni <strong>Peer</strong>. Non deve essere<br />

possibile, quin<strong>di</strong>, avere <strong>un</strong> <strong>Peer</strong> A il cui tempo avanza a velocità N ed <strong>un</strong>’altro<br />

<strong>Peer</strong> B il cui tempo invece avanza a velocità 2N. Dal momen<strong>to</strong> che ogni<br />

singolo comando in grado <strong>di</strong> apportare mo<strong>di</strong>fiche allo sta<strong>to</strong> <strong>di</strong> gioco in<strong>di</strong>vidua<strong>to</strong><br />

nel modulo SharedComponents è accompagna<strong>to</strong> dal Timestamp, sarà<br />

possibile valutare, dal p<strong>un</strong><strong>to</strong> <strong>di</strong> vista temporale, la <strong>su</strong>a coerenza.<br />

Se si prende come riferimen<strong>to</strong> il Player A in Figura 5.2 e si analizza il<br />

<strong>su</strong>o delta time rispet<strong>to</strong> agli altri Player ogni 5 secon<strong>di</strong>, emergono i seguenti<br />

comportamenti:<br />

Il delta rispet<strong>to</strong> a B è costante per i primi due istanti <strong>di</strong> tempo, mentre al<br />

terzo ques<strong>to</strong> <strong>su</strong>bisce <strong>un</strong> decremen<strong>to</strong> <strong>di</strong> 5 secon<strong>di</strong>, per poi ristabilizzarsi al<br />

delta originale all’istante T4.

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

Saved successfully!

Ooh no, something went wrong!