MARK MANDEL: Hi and welcome to Managing
Multiplayer Game Servers.
My name is Mark Mandel, and I'm a developer advocate
for Google Cloud for games.
Today I want to talk about large-scale, multiplayer,
online games and how Google Cloud's products can support
these types of workloads for a player base
that spans the world.
At the foundational level, we have
Kubernetes and Google Kubernetes Engine, or GKE.
The combination of having both a managed platform of GKE
as well as the open-source nature of Kubernetes
means that we can place our game infrastructure anywhere
in the world that players show up,
ensuring a low-latency, real-time experience
for everyone.
But Kubernetes is just the beginning.
Another open source project you may
be familiar with from Google Cloud is Agones.
Agones is designed as a batteries-included,
open-source, dedicated game server hosting and scaling
project built on top of Kubernetes,
with the flexibility you need to tailor it
to the needs of your multiplayer game.
Since going 1.0 in September 2019,
Agones continues to grow its suite of tools specifically
tailored to running multiplayer game servers on top
of Kubernetes cluster.
The relatively new offering in this suite
of multiplayer game hosting tools
is Google Cloud Game Servers, which is in public beta
right now.
Agones is a fantastic project that
excels at writing dedicated game servers
within a single Kubernetes cluster.
Cloud Game Servers is a management layer
that sits on top of Agones to power
your global, multi-clustered game server workloads.
It provides you with the ability to connect Kubernetes clusters
from Google Cloud as well as hybrid and multi-cloud,
not locking you into a single cloud provider.
It also gives you a high degree of flexibility and control
since you still have access to your underlying Kubernetes
clusters.
On top of that, powerful features
provide visibility and simplicity
in running, scaling, and orchestrating your game servers
for your global player base.
Cloud Game Servers has several concepts at its core.
First, a Game Server cluster, which
is a Kubernetes cluster that has Agones
installed and is registered with Cloud Game Servers.
Secondly, you also need a way to logically group together
your Game Server clusters in a way
that makes sense for the latency requirements for your game.
We call this concept realms.
And it gives you the ability to group clusters
as you see fit for retrieving ready Game
Servers from across a realm via multi-cluster game server
allocation.
It can also be used as a target for all
or some of your Game Server fleet deployments and updates.
Finally, we have Game Server configurations and deployments.
These are Agones-based configurations
that are able to be deployed across some or all
of your clusters around the globe,
defining both your fleets of ready Game Servers
as well as autoscaling capabilities.
For example, if we had a project called Game X,
we could split it across three separate realms,
such as US, Europe, and Japan.
Within each realm, we can have a series of Game Server clusters
hosted on Google Cloud, On-prem, or potentially other clouds
as well.
Finally, we would roll out our fleets
of ready Game Servers across our realms
using Game Server deployments and configurations.
Getting started with Cloud Game Servers
is relatively straightforward.
First, install Agones on your Kubernetes clusters
and register them with Google Cloud Game Servers.
Second, decide on how you want to organize your Game Server
clusters into realms.
Finally, write and roll out your Game Server configurations
and deployments to host and scale
your Game Servers across all your Agones clusters
around the world.
Let me show you a quick demo of how easy it
is to roll out Game Server fleets across four
different Kubernetes clusters.
As you can see here, I previously
set up four Game Server clusters,
split between two realms--
Europe and the United States.
To roll out my global fleet, I'm first
going to create my deployment and name
it stk for the awesome open-source game Super Tax Cut
that we're going to deploy.
Next, we will create a configuration
for this deployment, and we'll call it v1.
If we have a look at the config I pasted here,
we can see our configuration for our Cloud Game Servers fleet.
We'll create two replicas of our Super Tax Cut game server.
This may look familiar if you've used Agones before.
We could also create our autoscaling rules at this point
if we so desired.
The config and deployment have been created,
but it has not yet been rolled out to all our clusters.
So let's do that.
I click Manage Rollout and then select
the config I want to roll out to all my clusters and hit Save.
Let's now look at one of the clusters
we've already connected to.
And we can see our Game Server fleet has
been spread across the clusters, and they're ready to go.
To recap, we saw that we had a previously
configured, global, multi-cluster, Agones
deployment, which was already organized into two realms.
From there, we were able to use the power of Google Cloud Game
Servers to roll out our dedicated game
servers across our global infrastructure.
This is just the tip of the iceberg of features
for Google Cloud Game Servers.
There is much more to explore--
including multi-cluster allocation, aggregated metrics,
and more.
If you're interested in getting started
with any of these projects, including Google Cloud Game
Servers, the URLs to do so are on the screen right now.
[MUSIC PLAYING]