Soltar Pipa — soltarpipa.online
Projet personnel · multijoueur en temps réel
- Serveur autoritatif en Go : toute la physique de vol et le duel entre les fils tournent sur le serveur, le navigateur ne fait que dessiner et transmettre les commandes, ce qui supprime la surface de triche côté client.
- Protocole binaire maison sur WebSocket, en petit-boutiste, avec une trame de référence écrite par le Go et décodée par le test du client en TypeScript : modifier un côté sans l'autre casse la compilation.
- Zone d'intérêt traitant chaque joueur comme un segment de droite, de la main au cerf-volant, sur une grille spatiale de 48 m avec un rayon de 120 m et de l'hystérésis — 12 µs par joueur, sans allocation.
- Optimisation guidée par le profilage : balayage trié à la place de la comparaison de toutes les paires (de 28 ms à ~1 ms par tick) et quickselect à la place du tri lors de la sélection des cerfs-volants par envoi (de 16 % à 2,4 % du temps CPU du tick).
- Test de charge maison avec 5 000 WebSockets simultanés, sans échec de connexion ni éviction ; en production la salle tourne avec 140 joueurs à 15 images par seconde, limite imposée par la bande passante de 10 Mbps du répartiteur, et non par le processeur.
- Production sur Knative au-dessus de Kubernetes, avec deux services et deux domaines, des images sur GHCR et un versionnement automatisé par release-please.
- Go
- TypeScript
- Three.js
- WebSocket
- Vite
- Docker
- Kubernetes
- Knative