Backend & temps réel

Ludosaic

Une plateforme de mini-jeux en développement avec des règles rejouables, des résultats vérifiés côté serveur et une reprise après interruption.

Ethan Brosselard · Projet personnel

← Tous les projets MVP en développement, sans déploiement externe.
Socle technique
  • Next.js
  • TypeScript
  • React
  • PostgreSQL
  • Colyseus
Catalogue Ludosaic présentant Grid Duel, Merge Forge et Reflex Rush.

Choix technique

Comment ça fonctionne

Règles séparées du rendu ; le serveur rejoue les parties pour vérifier les résultats connectés.
  1. Actions du joueur
  2. Règles de jeu rejouables
  3. Reconstitution côté serveur
  4. Résultat connecté vérifié
Dans cette étude

Ma contribution

Je développe seul Ludosaic, de l’application web aux règles des mini-jeux. Mon travail comprend notamment :

  • la séparation des jeux, de leurs interfaces et du serveur dans un monorepo ;
  • des règles rejouables à partir d’une graine et d’une suite d’actions pour vérifier les résultats côté serveur ;
  • la conservation locale des résultats en attente et leur renvoi après reconnexion, avec prévention des doublons ;
  • une fondation de salons privés avec Colyseus, testée localement avec deux navigateurs pour Grid Duel.

Les choix techniques et les limites présentés ci-dessous décrivent le travail en cours.

L’application en images

Ces captures montrent le catalogue et une partie de démonstration exécutés localement. La partie illustrée se joue à deux sur le même appareil.

Catalogue Ludosaic présentant Grid Duel, Merge Forge et Reflex Rush, avec les filtres de catégorie et de mode.
Le catalogue rassemble les trois mini-jeux et leurs modes de jeu. Agrandir la capture
Partie locale de Grid Duel montrant le plateau, les jetons joués et l’indication du joueur actif.
Voir un détail de l’interface
Détail du plateau de Grid Duel et du choix de colonne pendant la partie locale de démonstration.
Grid Duel pendant une partie locale de démonstration à deux joueurs. Agrandir la capture

Jouer rapidement, sans créer de compte

J’ai commencé Ludosaic parce que j’aime les jeux rapides, accessibles sans installation. Développer moi-même la plateforme et ses jeux me permet de travailler aussi bien les règles que les interfaces et le serveur.

Ludosaic rassemble plusieurs mini-jeux dans une même expérience web, pensée pour être accessible, installable et utilisable d’abord sur mobile. Le parcours recherché reste direct : choisir un jeu, sélectionner un mode et commencer une partie, sans imposer la création d’un compte.

Un profil invité est généré localement pour conserver le nom d’affichage, les préférences, la progression et les succès. Lorsque les services connectés sont disponibles, une session anonyme permet aussi de synchroniser certains réglages et résultats vérifiés, tout en gardant les modes compatibles utilisables hors ligne.

Trois jeux pour construire la plateforme

Reflex Rush propose des parties de réflexes en solo et des défis quotidiens déterministes. Merge Forge est un puzzle de fusion dont la partie peut être sauvegardée et reprise, avec un défi commun fondé sur la date. Grid Duel explore le jeu de stratégie à deux sur le même appareil, les bots et les salons privés en ligne.

Ces trois jeux ne servent pas seulement à remplir un catalogue. Chacun éprouve une contrainte différente : le cycle de vie d’un moteur Phaser, une logique de puzzle rejouable, puis une autorité multijoueur capable de contrôler les tours et de conserver les résultats.

Des choix qui structurent la plateforme

Séparer les jeux de leurs interfaces

Le monorepo sépare l’application Next.js, le serveur de jeu, chaque jeu et leurs contrats communs. React et Phaser portent les interfaces, PostgreSQL et Drizzle les données durables, Redis la coordination temporaire, et Colyseus l’autorité des salons privés.

Vérifier les résultats à partir des règles

Les règles restent indépendantes du rendu et peuvent être rejouées à partir d’une graine et d’une suite d’actions. Pour un résultat connecté, le serveur reconstitue la partie au lieu d’accepter directement le score annoncé par le navigateur. Les jeux sont chargés uniquement lorsqu’ils sont ouverts, et le service worker permet de relancer certains modes déjà chargés sans connexion.

Reprendre après une interruption

Par exemple, une connexion interrompue après une partie ne doit pas faire perdre son résultat, ni le compter deux fois lorsque l’envoi est retenté. La file locale et la prévention des doublons répondent à cette contrainte.

Les résultats en attente sont conservés localement puis renvoyés après reconnexion. Leur vérification côté serveur et la prévention des doublons permettent de traiter les nouvelles tentatives d’envoi sans compter plusieurs fois la même partie.

Les salons privés de Grid Duel comprennent également un mécanisme de reprise. Ces fonctionnalités font partie du travail sur la continuité des parties, dont la validation en environnement cible reste à compléter.

Validation et limites actuelles

Ludosaic est toujours en cours de développement. Le dépôt contient une fondation validée localement et des parcours jouables en bêta locale ou connectée, mais le MVP complet n’est pas encore livré. Les salons privés de Grid Duel disposent par exemple d’une fondation testée avec deux navigateurs, sans constituer encore une expérience multijoueur finalisée pour la production.

Aucun déploiement externe n’a été réalisé. Je prévois l’hébergement sur mon futur homelab, une fois le matériel et l’environnement cible prêts. Avant une ouverture publique, il reste notamment à terminer les critères du MVP, durcir l’exploitation du multijoueur, faire relire les textes juridiques et valider sur l’environnement cible les sauvegardes, la restauration, TLS/WSS, la supervision et les parcours essentiels. Les tests de règles, PostgreSQL et navigateur décrivent donc l’avancement technique du projet, pas les résultats d’un service en production.