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).