Online multiplayer can be one of the toughest hurdles to overcome when developing a game. There's more to getting things functioning than just purchasing some server space and letting people go at. For instance, players first get ranked by skill levels, then the game has to create a server within a cluster of hardware before a kid living halfway across the world can no-scope headshot you in a Call of Duty deathmatch. But soon the process of integrating scaleable online multiplayer features may be easier than ever thanks to a new joint venture between Ubisoft and Google's Cloud division.
The new software is known as "Agones" and it replaces the current cluster creation method with a new Google-incubated project called "Kubernetes." Instead of running everything on multiple pieces of hardware, the two products simplify the matchmaking and server process by running them in the same location. According to Games Industry, Kubernetes has become "common standard for distributed systems across multiple clouds and bare metal servers."
Agones also allows devs to run their server wherever they see fit, meaning they can maybe operate a small server on a home PC for a closed alpha before scaling up to a cloud-based or semi-cloud based set-up, or even an in-studio group cluster.
Ubisoft has been cited as being a founder of Agones and hopes to use the software on their triple-A series, such as Rainbow Six, For Honor or the upcoming Division 2. The development director of Ubisoft's online technology group, Carl Dionne explained how the tech is beneficial to the company:
"Agones helps by providing us with the flexibility to run dedicated game servers in optimal datacenters, and by giving our teams more control over the resources they need. This collaboration makes it possible to combine Google Cloud's expertise in deploying Kubernetes at scale with our deep knowledge of game development pipelines and technologies."
Google says that Kubernetes also benefits Agones since the software can draw upon the features that have already been integrated into its parent program by other developers.