Backend: - StatsManager.js: JSON persistence, leaderboard, rate-limit 1/5s - ChatManager.js: 200-msg buffer, JSON persistence - index.js: routes GET/POST /stats, /chat/history, /chat/send (Zod validation) - ArenaRoom.js: chat handler broadcasts to room + persists via ChatManager Unity: - StatsTracker.cs: distance, maxSpeed, jumps, bumps, checkpoints, raceTime tracking - ChatUI.cs: F3 toggle, bottom-right panel, polling 3s, unread badge - NetworkManager.cs: SendChatMessage() + OnMessage<ChatUI.ChatMessage>(chat) - CheckpointSystem.cs: RegisterCheckpoint/Finish hooks - PlayerController.cs: RegisterJump/Bump hooks, physics rebalance, billboard fix - GameHUD.cs: LocalRaceTimer, SetTotalRounds, OnRoundStart signature fix - GameManager.cs: spectator cam reconnect fix Frontend: - NavBar.jsx: fixed top nav, Accueil/Stats/Chat/Jouer - App.jsx: page state (home/play/stats/chat) + NavBar - StatsPage.jsx: 6-tab leaderboard, auto-refresh 30s - ChatPage.jsx: polling 3s, localStorage name, Enter to send Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ROLL'D — Frontend
Client web pour le jeu ROLL'D. Héberge le build Unity WebGL dans une interface moderne.
Stack
- React 18 + Vite 5 — build rapide, HMR
- Tailwind CSS 3 — styling utility-first
- Unity WebGL Loader — intégration du build Unity
Quickstart
npm install
npm run dev # http://localhost:5173
npm run build # production build → dist/
Unity WebGL Build
Placer le build Unity dans public/unity-build/ :
public/unity-build/
├── Build/
│ ├── build.data.gz
│ ├── build.framework.js.gz
│ ├── build.loader.js
│ └── build.wasm.gz
└── TemplateData/ (optionnel)
Docker
docker build -t rolld-frontend .
docker run -p 80:80 rolld-frontend
Structure
├── public/
│ ├── unity-build/ # Build WebGL (non versionné)
│ └── favicon.svg
├── src/
│ ├── components/ # Composants React
│ ├── assets/ # Images, fonts
│ ├── App.jsx
│ └── main.jsx
├── index.html
├── tailwind.config.js
├── vite.config.js
└── Dockerfile