← Écosystème

JoeQuiz

quiz.giorgiopalermo.com en production

Un quiz multijoueur de salon : les téléphones comme buzzers, une télé comme écran commun, quatorze mini-jeux. Il se comporte comme en temps réel sur n'importe quel hébergement mutualisé.

Le problème

L'idée était une soirée façon Buzz! sur PlayStation, pas un concours de réflexes : dix personnes dans la même pièce, chacune avec son téléphone. La contrainte, c'était l'hébergement : pas de WebSocket, pas de processus toujours actifs, un serveur mutualisé ordinaire à côté d'autres sites.

Les plateformes existantes demandent une infrastructure dédiée ou réduisent tout à celui qui appuie le premier. JoeQuiz devait être juste sur les temps, même avec les variations d'un WiFi domestique.

Comment ça marche

Structure

Trois écrans, un par rôle : la régie pour l'animateur, le jeu pour qui tient un téléphone, la scène pour la télé. Chacun reçoit une vue de l'état construite exprès, et celle des joueurs ne contient même pas la bonne réponse. Un seul moteur de manches, quatorze configurations.

Parcours d'usage

On ouvre une salle depuis l'ordinateur, les autres entrent depuis leur téléphone avec un code de six lettres, sans application ni inscription. Un joueur choisit le thème et la difficulté, le système tire le mini-jeu au sort. Les manches déterminent le temps de départ de la finale, qui se joue jusqu'au dernier.

Choix techniques

Du polling HTTP toutes les demi-secondes avec l'état dans MySQL, une synchronisation d'horloge façon NTP pour savoir qui a vraiment appuyé le premier, des questions livrées masquées et révélées à tous au même instant. Le jeu avance grâce aux requêtes des joueurs eux-mêmes ; une tâche cron couvre le cas où plus personne ne demande rien.

Limites connues

Les scores sont dans la configuration et doivent être réajustés sur de vraies soirées : la valeur la plus délicate est le temps minimum de la finale. La banque de questions couvre cinq thèmes ; musique, séries, sport et jeux vidéo sont encore à l'état de brouillon.

Chiffres

Questions dans la banque, plus de 6 400
Mini-jeux, plus la manche finale 14
Vérifications automatiques, plus de 850
Tables du schéma 35
Lignes de code applicatif, environ 30 000

Stack

  • PHP 8
  • MariaDB
  • JoeCMS
  • JavaScript
  • Polling HTTP
  • Python
Capture d'écran de JoeQuiz