Dedicated game servers for multiplayer games serve a lot of purposes. They keep the speeds in multiplayer matches high, reducing interaction delays, or latency. They stop cheating and produce an overall better experience for players. But they aren’t easy to build or maintain, and so Google is addressing that with a new open-source platform in a partnership with French game giant Ubisoft.
Google Cloud is introducing Agones, an open-source dedicated multiplayer game server hosting built on top of the Kubernetes platform. It’s a solution for running software across thousands of machines, said Mark Mandel, developer advocate for games at Google Cloud, in an interview with GamesBeat. After working closely with Ubisoft on a cloud solution that combines public and private clouds, Google is seeking more partners now for Agones.
Mandel said that over the past few years, Kubernetes has replaced proprietary solutions and emerged as an open-source, common standard for building complex workloads and distributed systems across multiple clouds and servers. Niantic Labs uses Kubernetes to scale up its Pokémon Go mobile game so that it can handle huge changes in the game’s player base on the fly.
The Agones (Greek for “contest” or “gathering”) open-source project uses Kubernetes to host and scale dedicated game servers. Ubisoft is the first collaborator, but the platform is flexible enough to fit the needs of just about any multiplayer game, Mandel said.
“This enables you to have access to the core building blocks for game servers,” said Mandel. It means that multiplayer games will be easier to scale, especially around launch time. Gamers should have a better experience.”
Many of the popular fast-paced online multiplayer games such as competitive first-person shooters, massively mobile online games, and multiplayer online battle arenas require a dedicated game server — a full simulation of the game world — for players to connect to as they play within it. This dedicated game server is usually hosted somewhere on the internet to facilitate the state of the game between players, but it can also to be the arbiter of truth for each client playing the game, which safeguards against players cheating.
Rather than running for months or years, a dedicated game server runs for a few minutes or hours. Dedicated game servers also need a direct connection to a running game server process hosting IP and port, rather than relying on load balancers. These fast-paced games are extremely sensitive to latency, which a load balancer only adds more of. Also, because all the players connected to a single game server share the in-memory game simulation state at the same time, it’s just easier to connect them to the same machine.
In a typical game server, players connect to some kind of matchmaker service, which groups them (often by skill level) to play a match. Once players are matched for a game session, the matchmaker tells a game server manager to provide a dedicated game server process on a cluster of machines. The players connect directly to the dedicated game server process and play the multiplayer game against one another.
Agones replaces the custom cluster management and game server scaling solution we discussed above, with a Kubernetes cluster that is able to provision a dedicated game server, as needed. Kubernetes simplifies operations, and it runs supporting services such as account management and inventory.
Since the software is open source, companies can adopt it and run it in their own data centers or with outside third-party companies, as needed.