Un puzzle collaboratif en temps réel. Plusieurs joueurs assemblent ensemble un puzzle à partir d'une image choisie. Pas de compte : on rejoint une partie avec un code et un pseudo, et on voit les curseurs et les pièces bouger en direct.
- Concept : CONCEPT.md
- Gameplay : docs/GAMEPLAY.md
- Architecture : docs/ARCHITECTURE.md
- Feuille de route : docs/ROADMAP.md
- Client : React + TypeScript (Vite), rendu DOM des pièces, glisser-déposer.
- Serveur : Node.js + Express + Socket.IO, état de partie en mémoire (source de vérité, pas de base de données).
- Partagé : types et géométrie communs dans
shared/.
npm install # installe client + serveur (workspaces)
npm run serve # build le client puis lance le serveurPuis ouvre http://localhost:3000.
Pour tester à plusieurs : ouvre l'URL dans plusieurs onglets/fenêtres. Crée une partie dans le premier, copie le code, et rejoins-le depuis les autres.
Dans deux terminaux :
npm run dev:server # serveur Socket.IO sur :3000
npm run dev:client # client Vite sur :5173 (proxy /socket.io -> :3000)Puis ouvre http://localhost:5173.
- Saisis un pseudo et crée une partie (ou rejoins avec un code).
- L'hôte choisit une image et un niveau (Facile 25 / Moyen 100 / Difficile 400 pièces), puis démarre.
- Glisse les pièces : une pièce bien placée s'aimante et se verrouille.
- Vous voyez en temps réel les curseurs des autres et les pièces qu'ils déplacent (entourées de leur couleur).
- Quand toutes les pièces sont posées, l'écran de fin s'affiche pour tous.
Le MVP couvre les phases 0 à 3 de la feuille de route : lobby, puzzle jouable, temps réel complet et finitions. Les idées « hors MVP » (pièces jigsaw, rotation, chat, zoom, persistance…) ne sont pas incluses.