Soltar Pipa — soltarpipa.online
Personal project · real-time multiplayer
- Authoritative Go server: all flight physics and line-versus-line duelling run server-side, with the browser only rendering and sending inputs, which removes the client-side cheating surface.
- Custom binary WebSocket protocol, little endian, with a reference frame written by Go and decoded by the TypeScript client test: changing one side without the other breaks the build.
- Interest management that treats each player as a line segment, hand to kite, on a 48 m spatial grid with a 120 m radius and hysteresis — 12 µs per player, zero allocation.
- Profile-guided optimisation: a sorted sweep replacing all-pairs comparison (28 ms to ~1 ms per tick) and quickselect replacing sorting in per-send kite selection (16% to 2.4% of tick CPU).
- Purpose-built load test with 5,000 concurrent WebSockets, no connection failures or drops; production runs the room at 140 flyers and 15 frames per second, a limit set by the 10 Mbps load balancer rather than by CPU.
- Runs on Knative over Kubernetes with two services and two domains, images on GHCR and automated versioning through release-please.
- Go
- TypeScript
- Three.js
- WebSocket
- Vite
- Docker
- Kubernetes
- Knative