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.

5.1. ANTI-CHEATING 105<br />

Il Player C ha <strong>un</strong> timing due volte più veloce rispet<strong>to</strong> ad A: il delta infatti<br />

decrementa costantemente fino a invertire il segno.<br />

Il Player D Invece ha <strong>un</strong> delta più o meno costante, ma nell’istante T3 ques<strong>to</strong><br />

invia <strong>un</strong> comando riportante <strong>un</strong> TimeStamp valorizza<strong>to</strong> come se fosse sta<strong>to</strong><br />

invia<strong>to</strong> in T4.<br />

E’ <strong>di</strong>fficile valutare con sicurezza se l’alterazione del delta del Player B sia<br />

dovuta a problemi <strong>di</strong> latenza o sia stata causata dall’utilizzo <strong>di</strong> <strong>un</strong> Cheat.<br />

Anche nel caso del Player D la valutazione ri<strong>su</strong>lta delicata, poichè può<br />

capitare che in <strong>un</strong> momen<strong>to</strong> <strong>di</strong> congestione il TimeSync invia<strong>to</strong> dal Player<br />

D al Player Player A, venga ricevu<strong>to</strong> da quest’ultimo con <strong>un</strong> ritardo tale da<br />

giustificare il TimeStamp riporta<strong>to</strong> <strong>su</strong>l comando invia<strong>to</strong> <strong>su</strong>ccessivamente.<br />

Nel caso del Player C, invece, il timing è palesemente accelera<strong>to</strong> (2X), e<br />

per tan<strong>to</strong> deve essere escluso dalla Membership in ogni caso.<br />

5.1.2 Space Based Cheating<br />

Un primo sistema in grado <strong>di</strong> scremare quelle situazioni palesemente sospette,<br />

come la velocità del Character raddoppiata, è relativamente semplice<br />

da implementare: in CheatDetection() <strong>di</strong> <strong>un</strong> MovingObjectScript è infatti<br />

possibile controllare, da <strong>un</strong>a parte che i valori dei componenti NextPosition e<br />

NextTimeStamp siano coerenti rispet<strong>to</strong> alle velocità <strong>di</strong> movimen<strong>to</strong> specificata<br />

all’interno della classe stessa (ovvero il valore <strong>su</strong>l quale, in Update Writer()<br />

verrà calcola<strong>to</strong> il vet<strong>to</strong>re <strong>di</strong> spostamen<strong>to</strong>), e dall’altra verificare che, salvo<br />

casi particolari (ed opport<strong>un</strong>amente gestiti) come il Respawn 2 , la <strong>di</strong>stanza<br />

tra il valore del componente Position appena aggiorna<strong>to</strong> ed il valore ass<strong>un</strong><strong>to</strong><br />

precedentemente stia entro i limiti imposti dalla velocità <strong>di</strong> spostamen<strong>to</strong><br />

(Figura 5.3).<br />

Da ques<strong>to</strong> p<strong>un</strong><strong>to</strong> <strong>di</strong> vista Cheats come lo Speed-Hack sono facilmente in<strong>di</strong>viduabili.<br />

2 Azione <strong>di</strong> riposizionamen<strong>to</strong>, all’interno della mappa <strong>di</strong> gioco, del Character quando<br />

quest’ultimo muore o viene <strong>di</strong>strut<strong>to</strong>

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

Saved successfully!

Ooh no, something went wrong!