lakeback
Matchmaking and server infrastructure for 2v2 Counter-Strike 2 on de_lake.
Valve removed de_lake from CS2. I did not take it well.
lakeback is a third-party matchmaking service for 2v2 wingman on the map, built the way I would want to build it at work: a Kotlin backend and the whole platform underneath it, declared in one repo.
- Backend. Ktor services for the queue, the matchmaker, Elo ratings, a ready-check store and a match state machine. Steam OpenID for sign-in. MatchZy webhooks feed results back in.
- Servers. Agones fleets on GKE run a custom CS2 image with MetaMod, CounterStrikeSharp and MatchZy. The image handles Agones readiness and health itself and leases a game server login token from a pool.
- Infrastructure. Terraform for GCP: a control plane module (GKE, Cloud SQL, Memorystore, buckets, DNS, IAM, Secret Manager) and a per-region module, so a new region is one more block.
- Checks. Unit tests for Elo, the matchmaker, the state machine and the webhook parser, plus one integration test that runs a whole match from queue to result.
The backend and infrastructure are done. The bot, the updater and the website are stubs, so nothing is live yet.