← Ecosistema

JoeQuiz

quiz.giorgiopalermo.com in produzione

Quiz multiplayer da salotto: i telefoni come pulsantiera, una TV come schermo comune, quattordici minigiochi. Si comporta come se fosse in tempo reale su un hosting condiviso qualsiasi.

Il problema

L'idea era una serata alla Buzz! su PlayStation, non una gara di riflessi: dieci persone nella stessa stanza, ognuna col proprio telefono. Il vincolo era l'hosting: niente WebSocket, niente processi sempre accesi, un normale server condiviso accanto ad altri siti.

Le piattaforme esistenti o chiedono un'infrastruttura dedicata o riducono tutto a chi preme per primo. JoeQuiz doveva essere giusto sui tempi anche con le oscillazioni di un WiFi di casa.

Come funziona

Struttura

Tre schermate, una per ruolo: regia per chi conduce, gioco per chi ha il telefono, schermo per la TV. Ognuna riceve una vista dello stato costruita apposta, e quella dei giocatori la risposta giusta non la contiene proprio. Un solo motore di round, quattordici configurazioni.

Flusso d'uso

Si apre una stanza dal computer, gli altri entrano dal telefono con un codice di sei lettere, senza app né registrazione. Un giocatore sceglie argomento e difficoltà, il sistema estrae il minigioco. I round decidono il tempo di partenza del finale, che si gioca a oltranza.

Scelte tecniche

Polling HTTP ogni mezzo secondo con lo stato su MySQL, una sincronizzazione degli orologi in stile NTP per stabilire chi ha premuto davvero per primo, domande consegnate coperte e rivelate a tutti nello stesso istante. Il gioco avanza grazie alle richieste dei giocatori; un cron copre il caso in cui non chiede più nessuno.

Limiti noti

I punteggi stanno in configurazione e vanno ritarati sulle serate vere: il valore più delicato è la soglia di tempo del finale. La banca domande copre cinque argomenti; musica, serie TV, sport e videogiochi sono ancora in bozza.

Numeri

Domande in banca, oltre 6.400
Minigiochi, più il round finale 14
Verifiche automatiche, oltre 850
Tabelle dello schema 35
Righe di codice applicativo, circa 30.000

Stack

  • PHP 8
  • MariaDB
  • JoeCMS
  • JavaScript
  • Polling HTTP
  • Python
Schermata di JoeQuiz