Jeu de cartes 5 Hundred multijoueur en réseau.
- Client : C11 + SDL2, compilable nativement (macOS / Linux / Windows) et en WebAssembly via Emscripten.
- Serveur : Go — autorité sur les règles, WebSocket, signalisation WebRTC.
- Variantes : 4 joueurs (2 équipes) et 2 joueurs (avec tableaux face cachée).
- Fonctionnalités : chat texte, chat vocal et webcam (WebRTC).
- CMake ≥ 3.20
- SDL2, SDL2_image, SDL2_ttf, SDL2_mixer
- libwebsockets ≥ 4.x (transport WebSocket natif)
- cJSON (embarqué automatiquement via CMake FetchContent — aucune installation requise)
# macOS
brew install cmake sdl2 sdl2_image sdl2_ttf sdl2_mixer libwebsockets# Ubuntu / Debian
apt install cmake libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev \
libsdl2-mixer-dev libwebsockets-dev- emsdk
source <emsdk_dir>/emsdk_env.sh- SDL2, cJSON et WebSocket sont gérés nativement par Emscripten (pas d'installation supplémentaire)
- Go ≥ 1.22
- Les dépendances Go sont téléchargées automatiquement par
go mod download:nhooyr.io/websocketv1.8.17 — WebSocket pur Go (fonctionne natif et WASM)
# Client natif
./scripts/build-native.sh
# Client WebAssembly
./scripts/build-wasm.sh
# Serveur (compile puis démarre sur :8080)
./scripts/run-server.sh
# Changer le port
PORT=9000 ./scripts/run-server.shLe serveur expose :
GET /health— état JSON{"status":"ok","clients":N}GET /ws— endpoint WebSocket (protocolefive-hundred)
Voir PLAN.md.