Game server orchestration

To me, game server orchestration is solving the problem of provisioning dedicated game servers in a scalable manner for a multiplayer game.

When I added dedicated server builds through PurrNet for Resonance, a cyberpunk-themed first person shooter, I did not realize the work I was giving myself later when it came to launching the game. Pre-rewrite, the vibe-coded prototype I created comes nowhere close to being production ready.

Previously the game used PurrLay, a peer-to-peer relay that clients connect to, where one of the clients becomes the host for a match. With the dedicated server architecture, all clients connect directly to the game server which can run game logic.12 Adding the game server orchestrator means knowing when to start and stop a server, and how to point players to the server with the correct match.

I decided to try and turn the aforementioned prototype into a custom backend for the orchestration. The basic flows look something like this:

Edgegap is currently planned as the dedicated server platform. But, hopefully, with the custom orchestrator, we retain some ability to switch to other providers.

Right now this system works fine in development when conditions are predictable, but there is still much work to be done. I am not a backend engineer by trade.

  1. I didn’t realize that I could drop PurrLay when adding the dedicated server until later. 

  2. With Unity, a dedicated server build generates a Linux executable that can be put into a Docker container.