Astraendo da quelli che sono gli aspetti generali e multidisciplinari che si possono individuare nel processo produttivo di un videogioco (si pensi agli elementi artistici, dalla grafica alla musica, o alla necessità di solidi sistemi economici e di marketing), dal punto di vista tecnico, tra le caratteristiche che contraddistinguono maggiormente un software videoludico, vi sono, da una parte, la necessità di un feedback pressochè immediato alle azioni eseguite dal giocatore, e, dall’altra, la forte interazione tra gli elementi che popolano l’ambiente di gioco. Questi aspetti implicano una serie di problematiche che, nell’ambito specifico dei giochi Multiplayer online, vengono in qualche modo amplificate: diventano quindi necessarie soluzioni che, a livello di architettura hardware e software, diffeeriscono da quelle richieste, ad esempio, da un videogioco Sin- gleplayer. Un primo aspetto da analizzare è individuato dalla scelta dell’architettura di rete, tipicamente tra il modello Client-Server ed il modello Peer-To-Peer. Entrambi hanno vantaggi e svantaggi e risultano preferibili l’uno all’altro a seconda del contesto, disponibilità hardware, tipologia e specifiche di gioco. Un sistema centralizzato Client-Server, da un lato sopperisce al problema di inconsistenza dei dati, dal momento che è il Server stesso a mantenere lo stato e a processare la logica di gioco, ma dall’altro risulta meno flessibile, portabile e scalabile. Il Server inoltre rappresenta uno SPOF. Con “consistenza” si intende la necessità di avere uno stato di gioco definito da dati integri e valorizzati allo stesso modo su ogni singolo client, dove con “stato di gioco” si intende una rappresentazione, una sorta di “istantanea”, dello stato (posizione, rotazione, azioni, eventi, variabili, etc.) di ogni singolo elemento presente nell’ambiente di gioco. In un sistema decentralizzato Peer-To-Peer, ogni nodo è paritetico e può fungere quindi contemporaneamente sia da Client che da Server. Su ogni Peer è presente una copia dello stato di gioco, e nel caso di siste- mi Peer-To-Peer “puri”, ogni Peer porterà avanti la logica di gioco basandosi sul proprio Data Layer, introducendo quindi problematiche di consistenza e sincronizzazione temporale. Senza nessun sistema di controllo, infatti, ogni Peer, specie in quelle situa- zioni ed in quegli eventi soggetti a processi aleatori o notevolmente sensibili alla sincronizzazione temporale, può presentare uno stato di gioco differente rispetto agli altri, e tale errore è destinato a propagarsi aggiornamento do- po aggiornamento, portando ad una divergenza dei risultati potenzialmente molto elevata (i.e. in un Peer la vittoria è assegnata al Player A, mentre in un altro Peer la vittoria è assegnata al Player B). Scarica la Tesi Completa [135 pag - 4,20 Mb]