Case history

Web App “Il Gioco del Paroliere.it”

Per cliente privato abbiamo realizzato una Web App che consente a più utenti di giocare online al famoso Gioco del Paroliere (Boggle in inglese) in diverse varianti, con chat, classifiche e statistiche personali.

Immagini#

Problematiche affrontate#

La problematica maggiore legata all'implementazione di un gioco multiplayer come Il Gioco del Paroliere.it è la corretta gestione della sincronia tra gli utenti connessi. Questo problema si divide in 3 sotto problemi che sono:

  1. La possibile sfasatura degli orologi coinvolti: l'orologio dei dispositivi di gioco (PC o smartphone) può essere avanti o indietro rispetto a quello del server.
  2. La latenza della rete: non è facile calcolare il tempo che impiegano i dati per andare e tornare dal server. Se il server mi dice che mancano 10 secondi alla fine della partita, ma questa informazione impiega 1 secondo per arrivare al giocatore è chiaro che il gioco dovrà mostrare che mancano in realtà 9 secondi (erano 10 quando l'informazione è partita).
  3. L'autonomia dei client: i client (i dispositivi dei giocatori) non possono continuamente chiedere al server l'ora per evitare un sovraccarico di richieste e pertanto ogni client deve gestire correttamente lo scorrere del tempo tra una richiesta e la successiva. Ad esempio se i client chiedono lo stato della partita ogni 6 secondi e dopo 3 secondi dall'ultima richiesta la partita termina, il client deve essere in grado di gestire in autonomia questa situazione.

Altre problematiche che abbiamo affrontato sono:

  • La generazione delle griglie di gioco: sulla base della frequenza delle lettere che compaiono in un dizionario dato.
  • La risoluzione delle griglie generate: per poter sapere se una parola trovata da un utente è valida oppure no abbiamo dovuto implementare un algoritmo risolutore delle griglie capace, dato un dizionario, di trovare tutte le parole possibili in una griglia rispettando le regole di gioco.
  • La continuità delle partite: le partite si susseguono una dopo l'altra ininterrottamente e poiché la risoluzione di una griglia, nel caso di grosse dimensioni (es. 9x9), può impiegare qualche decina di secondi, per evitare di far aspettare gli utenti abbiamo deciso di generare le prossime partite in anticipo in modo che ci sia sempre, per ogni stanza, una partita pronta per essere giocata.

Principali funzionalità implementate#

  • Registrazione/Login/Logout/Password dimenticata: gli utenti si registrano da soli.
  • Statistiche personali: ogni utente registrato può vedere le proprie statistiche di gioco.
  • Classifiche generali: divise per vari parametri (punteggio ELO , numero di partite giocate/vinte, parola più lunga trovata, tempo minore, punteggio massimo in una partita, ecc.). Maggiori informazioni sulla pagina delle classifiche .
  • Diverse modalità di gioco: Standard, Quiz, Fantasiosa, Fantasiosa con votazione. Maggiori informazioni sulla pagina delle modalità di gioco .
  • Chat: per i giocatori iscritti.
  • Responsive: il gioco si adatta alla dimensione dello schermo modificando la disposizione degli elementi di gioco, mostrandone alcuni e nascondendone altri a seconda del caso, per cui è possibile giocare sia da PC che da tablet che da smartphone.
  • Gestione di più livelli di accesso: giocatore, moderatore, amministratore.
  • Gestione stanze: l'amministratore può creare nuove stanze in cui definisce la dimensione (4x4,5x5,...9x9), il tempo di gioco, la lunghezza minima accettata (es. 4 lettere), la modalità di gioco e tutti gli altri parametri. Maggiori informazioni sulla pagina delle stanze .
  • Moderazione dei giocatori molesti: avvertimenti, ban temporanei dalla chat, ban temporanei dal gioco, ban definitivi. Maggiori informazioni sulla pagina delle regole di buona condotta .

Quanto costa?#

Per farti un'idea rapida di tempi e costi per realizzare una soluzione simile, puoi utilizzare il nostro Calcolatore Online.

Autore: Lorenzo Chiodi
Senior software developer con più di 10 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Giovanni.

Promemoria sui Cookie e sulla Privacy

Leggi l'informativa
closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharelinkIcona linkarrow upwardIcona arrow upward