Playlab42 - Features MVP#
Liste complète des fonctionnalités à implémenter, organisées par phase.
Specs techniques : Voir
openspec/specs/pour les spécifications détaillées.
Phase 1 : Catalogue statique (sans backend) ✅#
F1. Tools (HTML standalone) ✅#
- Structure
tools/pour les outils - Premier tool exemple (JSON formatter)
- Convention : un fichier HTML = un outil
- Manifest
tool.jsonpour métadonnées
F2. Portail et catalogue ✅#
Specs : portal/spec.md (source Markdown), catalogue/spec.md (source Markdown)
- Page d'accueil listant Tools + Games
- Filtres par tags
- Recherche par nom, description
- Chargement en iframe sandboxé
- Section "Joué récemment"
- Script de build pour générer
data/catalogue.json - 100% statique, déployable sur GitHub Pages
F3. Préférences utilisateur ✅#
- Pseudo éditable
- Son on/off
- Persistence localStorage
- Écran Settings
Phase 2 : Games standalone ✅#
F4. Game Engine (isomorphe) ✅#
- Interface
GameEnginecommune à tous les jeux - TypeScript/JavaScript pur, zéro dépendance I/O
- Tourne côté client ET serveur
- État 100% sérialisable JSON
- Fonctions pures et déterministes
- Random seedé via
SeededRandom -
getValidActions()pour lister les coups (bots) -
getPlayerView()pour fog of war
F5. SeededRandom ✅#
- Implémentation Mulberry32
- Méthodes :
random(),int(),pick(),shuffle(),chance() - Clone et sérialisation de l'état
F6. GameKit SDK ✅#
-
GameKit.init(name) - Asset Loader (images, sons, JSON)
-
saveScore()/getHighScores() -
saveProgress()/loadProgress() - Hooks :
onGamePause,onGameResume,onSoundChange,onGameDispose - Communication postMessage avec le portail
F7. Bots (IA) ✅#
- Interface
Botabstraite - Configuration slots joueurs (humain/bot/disabled)
- Bot Random (par défaut)
- Bot Greedy (heuristique) → Blocker
- Bot Minimax (pour jeux 2 joueurs) → Perfect
- Game Runner pour orchestrer humains et bots
- Déclaration des bots dans
game.json
F8. Jeu exemple : Tic-Tac-Toe ✅#
- Moteur isomorphe complet
- Client UI standalone (grille cliquable)
- Jouable en solo (humain vs bot)
- Jouable en hot-seat (2 humains)
- 3 bots : Random, Blocker, Perfect
- Tests unitaires moteur
- Documentation règles
Phase 3 : Backend et multi-joueur (future)#
Ces features seront développées dans une version ultérieure.
F9. Backend API#
- Serveur Node.js (Hono)
- Auth : register, login, profil
- Scores et leaderboard partagés
- Persistence JSON files
F10. Communication WebSocket#
- Protocole temps réel
- Sessions de jeu multi-joueurs
- Gestion des tours et timeout
F11. PlayLabSDK#
-
window.playlabinjecté par la plateforme - Détection auto standalone vs plateforme
- Communication avec le backend
Phase 4 : Enrichissements (future)#
F12. Jeu exemple 2 : Snake (temps réel)#
- Moteur isomorphe avec tick
- Client canvas
- 1-4 joueurs
- Config : taille terrain, vitesse
F13. Historique & Records#
- Stockage : seed, joueurs, actions, résultat
- Replay déterministe
- Export pour ML
F14. Entraînement accéléré#
- API bot vs bot
- Runner CLI
- Datasets pour ML
Documentation#
Guides#
- Architecture générale
- Créer un outil (HTML tool)
- Créer un moteur de jeu
- Créer un client de jeu
- Créer un bot
Templates#
- Template outil HTML
- Template moteur tour par tour
- Template moteur temps réel
- Template bot
Qualité code#
- Code commenté en français
- Tests unitaires (moteurs, SDK)
- ESLint strict configuré
- Types TypeScript exhaustifs
- Nommage explicite
- README par module
- Docker-first (tout containerisé)