Relay Pong, a Pong-inspired web application

   page       attach   
Jahrim Gabriele Cesario
abstract

Questo progetto verte sullo sviluppo di un’applicazione web basata su una comunicazione di tipo real-time. In particolare, si vuole realizzare una variante del videogioco Pong sotto forma di servizio web, quindi accessibile tramite browser, che permetta a più giocatori di competere tra di loro.  Il gioco è una simulazione del ping pong. In ogni partita competono due giocatori, a cui viene assegnata una barra ciascuno, utilizzata per colpire una pallina. Quando la pallina oltrepassa la barra dell’avversario, si guadagna un punto. Lo scopo del gioco è di ottenere un certo numero di punti, prima del proprio avversario. Nella variante proposta, chiamata Relay Pong oppure Pong a staffetta, il gioco non è più limitato a due giocatori. In ogni partita competono infatti due squadre, composte da almeno un giocatore, ognuna delle quali controlla una barra. I giocatori della stessa squadra si alternano a controllare la barra della squadra durante lo sviluppo della partita. Le condizioni per vincere una partita rimangono le medesime. Lo scopo iniziale di questo progetto è quello di realizzare una proof of concept del servizio descritto, quindi un prototipo che mostri la fattibilità della sua realizzazione.  Il servizio si baserà su un’architettura di tipo client-server, in cui il server mantiene l’originale dello stato della partita e lo condivide con i client, mentre i client inviano al server degli eventi, che rappresentano le intenzioni dei giocatori, da cui dipenderanno gli aggiornamenti sullo stato della partita. Per la comunicazione di tipo real-time, si sperimenterà con l’uso del protocollo WebSocket, che, rispetto ad altri protocolli supportati dai browser, privilegia una comunicazione bidirezionale con basso overhead dei pacchetti. Altri punti interessanti saranno la progettazione del modello logico usato per rappresentare il gioco, la progettazione delle dinamiche che regolano lo svol- gimento di una partita e la gestione della sincronizzazione dei giocatori con il server.

outcomes