About the talk
Whether you’re building an orchestration platform for a brand new multiplayer game, or migrating existing workloads to a more modern architecture -- your games’ requirements, from development pipeline to coordination logic, is likely unique to your game play experience.
Learn how Google Cloud can meet your studio and infrastructure team where they are, running dedicated game servers - with everything from updates to our cloud infrastructure, new and updated open source tooling, as well as enhancements to our managed platforms.
Mark Mandel is a Developer Advocate for Games for Google Cloud Platform, founder of the open source, multiplayer dedicated game server scaling project Agones, and one part of the Google Cloud Platform Podcast. Hailing from Australia, Mark built his career developing backend systems for over 15 years and authoring and contributing to several widely adopted open source projects. When he’s not building infrastructure in the cloud for games, he’s constantly looking for new and interesting things he can do with Docker containers, playing with his dog and reading too much fantasy literature.View the profile
Hello everybody. I'm welcome to delivering seamless multiplayer experiences globally with Game servers. My name is Mark metal. I'm developer advocate of Google Cloud. Open source tools for multiplayer games. Before we get started. I want to give you a quick reminder. If you have any questions throughout the duration of this talk, please make sure to add them the key. When a section on this website, will try to get to them as soon as we possibly can get you an answer. What do I want to talk to you about today? So today, I will talk to you about dedicated Game servers for
basically, any kind of authoritative simulation server that all your clients, connect you, they can play a multiplayer game together. We see here Google Cloud as we often see that Studios want and need control over the orchestration and coordination play platform for those game servers, especially at a global scale so that they can tailor to the very specific needs of the game that they're making, what I want to come meet you where you're at, and be able to provide you with solutions that are going to be able to give you both to control and the scale that you need to be
able to build those kinds of experiences for your players that they're just going to love. To start, maybe you have an existing orchestration platform. Maybe have a game that you've been running for a while and you want to look at Google cloud and what we have and what we can provide for you. Some of this might already be familiar, but maybe not. So let's go over it again. So if you have very thick heavy, very to shoot heavy workloads. You want to be looking at our computer optimized vm's, if you were running a VM top workload, these are generally I see two instances and I really are
high performance, Computing, workloads vm's, but maybe you aren't running maybe say a strong physics. Simulation baby running Sage to General sort of lightweight game server. Workload, maybe even a real a server in that case are general-purpose beings such as they are in twos or n2ds would be a great fit for you here. When we look at the networking side, if you come to Google Cloud, we have a premium to your net working as well. That means that we try and get you as quickly as possible for your network traffic on to the Google Cloud fiber and we can transport you as quickly as possible
for your players. Going to have the greatest experience. I can now, it is a premium to your network product. So maybe you've already build out your system so that it works completely acceptably over the Internet. We got that. Barry Foster of fiber in between, in which case you can take some call savings as well as lots of options there. If that's something you want to use. Yeah, something that's new is something that something that people have been asking for for a long time regarding dwdp. We've heard you out loud and
clearly. I'm really love giving you all what you collectively. Vosk dwdp is coming soon, keep an ear out for announcement and more detail in the coming months. If you're interested in being part of the private preview. Please reach out to her account rep or customer engineer. And definitely let us know. I'm super excited for this feature personally. Now, maybe you've moved away from GM's and you're already running, some kind of container as workload with your own orchestration system. Google kubernetes engine is a fantastic. Kubernetes platform for you. Not only does it provide a series
of management tooling including scaling repair and upgrade capabilities, but it was super fast descale. You can bring up clusters in minutes as well as nose in minutes as well. So if you need to respond to your player workloads, you're able to do. So on top of that. It's hybrid ready. Maybe you have an on-premise investment that you want to take advantage of you able to do so with UK, as well as that there are a series of native security, tooling the debate scene as well for wonderful security. But maybe you're building a brand new experience. Maybe it's a whole new Greenfield project.
You're building a brand new game. So let's talk about what we can do to help you in that kind of environment. Usually when we're talking about building multiplayer games, especially with games Rivers. There are three things that game developers, make most an issue free launch day, right? Whether that's the initial launch day or maybe providing some new content be able to remove the oil from your operations and maintenance teams, right? Thursday to in day-to-day operations, trying to keep that as limited as possible. So that your engineers can spend time engineering But also I was
resolving that before control to fit the needs your game having an orchestration platform. If it doesn't specific things are optimized for your game. Now card options, often don't fit on one side. You might see things like virtual machines, like all the control in the world, but Halo to work, you have to take on yourself included, making sure things scale, as well as long-term operations on the other side there. A lot of rate we managed services, but they're not going to give you the control you possibly need as well. So we want to come somewhere in between. This is where we like to
talk about Google cloud game servers Google how Game servers is a management layer that sits on top of a garnet and kubernetes and allows you to power production-grade workloads for your game servers with your running to clusters or 200 clusters. And it delivers on those three things were talking about previously, right? We can scale up to your lunch date workloads. Weather is again your first day or as new content comes out. We have a variety of Toulon social, talk about Sanjay to reduce the amount of toil in your operations teams for day two, and a three. But I
think, actually, most importantly, we give you enough interfaces that enough control while taking away a little bit sooner like that oil, to be able to tailor it to the very specific needs of your games. You can build the game experience that you want for your players, but at multiplayer game that you're building. Through that look like, let's go in. So we have a series of foundations that we build on top of it at the bottom level. We have kubernetes. Yeah, the distributed systems platform that I think we've all grown to love. What's great about. This is there's a whole ecosystem of
tooling it already exists, and it may be something that you're already already familiar with. From there. We have the open-source games over scaling system of the teachers, a kubernetes cluster, how to run game servers, what games are a life cycle? Looks like, as well as a whole bunch of functionality that just makes life easier from for playing game servers, including integration is CK's as well as just being able to go. Cube CDL, get game server, which is kind of cool. And then from there we add another layer, which is Google cloud game servers. This is where we go. Okay, we're
great at one cluster with a gun is but now we want to be able to run it. Maybe two or more, maybe just for the insurance to say. Hey, maybe one day, we are going to need to be able to scale. But maybe we're also at a point where we know we have a global audience and we just need to be able to support them. This is where Google card game. Server comes into play. Well, it still gives you control because you still have access to all of the programmatic interfaces if it's gone, but now we can do things at a multiplexer level in it. A production level that enables us to react to our
players and be able to handle the kind of workload that we want to see her head games. Let's dig into some Concepts. We've already talked a little bit like about game server clusters. They're essentially just clusters that are kubernetes. Cluster is running a contest. That's it from there. We let you group clusters and what week old Realms. Usually. You're going to coordinate them basically by latency by where your players the best. As you can see, in this example, we have around for a u.s. Players around for Acura players and a room for a Japan player. From there we're able to Overlake on fees
and deployments that enable us to tell a series of Realms. And as well as our Global set overwhelms, what sort of games over fleets or Game servers? We want to distribute among that set. What games are before deploying. As well as may be any other order scaling our capabilities. We want to add as well, maybe some schedule for those as well. What kinds of all that good stuff? That what game servers are running where we can also do other fun stuff, like overrides and be able to run certain workloads and turn ROMs all kinds of other coordination abilities, but we can do it at a production
scale across multiple Game Cutters. Stop that stuff. You might necessarily saying before we want to also tell you about his stuff is coming soon. So we also want to remove toil for your operations team. We've definitely hard the people when they want to go in and stole the gun is on a cluster. They don't necessarily want to do that work themselves and sometimes the work of coordinating which organ is released goes with which kubernetes cluster. Coming soon. We're going to have it set up so that when you register your game server cluster with your realm, it can install
the gun is for you, the correct version and do all the right things. So it's something you don't have to worry about it is great when you first bring up a cluster, but also day-to-day three is you need to do upgrades a time goes on wearside, not going to get in your way. If there's extra software that you are my soulmate cluster as well. You're still going to be able to do so. Secondly, matchmaking immigration. So, currently sitting up that allocation in points. If you can request a game server from particular realm, a little bit, tricky management, bunch of
things you need to install. It's not the best experience. So, coming soon. It's going to be a simple alligator and point that it can be available and set up for you automatically. We do registration of clusters in your system. It means you don't have to do any of that work and you'll have a single endpoint that you can call to say. Hey, I would like to give me a game server from this particular room and marketed allocated so that we know we have players on it. On top of that. We're going to give you a bunch of tooling. If you need it for you to be able to control which cluster is allocated
Wolfhound, when you can do things like upgrades possible. So that control is also still available for you as well or some new features there. Finally in Freiburg preview. So if you're interested in this, please get in contact with it, would love too late. You have access to it is our monthly multi-cloud and hybrid Cloud setup. So maybe for example, you have an imprint investment that you want to take advantage of and you want to be able to burst into the cloud. This functionality is going to give you a single-pane-of-glass through Google card. Game servers
to the, you're able to do. So, would be able to give you basically one management interface to be able to coordinate and allocate across all your games, over his birth on friends, and in the cloud. And finally, I also just want to highlight that the open-source investment in the gontas continues to go forward. Here is some of my favorite features from the past year, as the Windows support in kubernetes continues to evolve. We have a half ounce of his Alpha support for Windows containers as well. So, if you want to run Windows containers for your game, servers, maybe in death, or maybe you
have some other windows at production work clothes, you want to run, we cannot do that as well. We also have Alpha support for player-tracking. Keeping track of what players are in which game server and for how long, for example that's available now too. If you want to play with that as well. We have a whole new revamped Unreal Engine plugin as well for integration so much nicer than the original. I definitely would check that out once more and even some smaller things that I think are really important like being able to allocate a port to any container. Previously could only choose one
container to expose how quickly you can choose anyone. You like, lots of little things and big things we continue to grow when they open source once more. Okay, so why don't we get stuck into a demo? So I can show you exactly how some of this stuff works and you can see it in real time. So let's do that. Here we have two Realms. I have already set up and ready to go. So I have one realm in Europe with two clusters already registered and I have one room in the United States with another two countries that are registered. I
haven't deployed anything here. So there's nothing here yet, that is already ready to go. So there's no game servers anywhere. I've already connected to one of these games servers, answer my questions. I should say. If I query them, I can also see there's nothing in this particular cluster. Fantastic. I'll show you another cute trick and we'll have a look at here. We kind of kubernetes engine. I love this. We have a look at our object browser. You can actually see we're close across multiple clusters. So here we can also stay right. There is no fleets. There's no games
Rivers. We haven't deployed anything's. Okay, Magic Hands. Okay, so let's actually deploy a game server Fleet across all of our clusters. So here I am going to take this example of Fleet specification here. I'm not going to do any order scaling in this instance, but I'm just going to deploy a instant soup with supertalk Scott. If you haven't played it. It is a great Mario clone with artists. And I'm just going to deploy two instances to every cluster across our entire set across all our Realms as well. So let me take this and I'm just
going to copy that, come over here and come into our game server. Deployments the first things first. I'm going to create an employment and employment is basically just a container of actually do anything other than stuff for the moment. What is an SDK for cheaper truck? Stop? Now we get to add contacts contacts are mutable and we can put as many inside a deployment as we'd like, so I'm going to create this configure, Nicole Envy one, we come to you, if you want me to get rid of that and we'll just paste that in here. So that's just out to replicas of our supertuxkart
example. Now, if I wanted to I could add a scaling scaling, but I'm not going to do that today. Great. Okay. Take a second. Now. This is Carly, inactive. Nothing is ruled out. So nothing is actually on the Clusters yet, so we can go to manage roll out. She's a configuration and decide what it is. We want to roll out. We may have multiple configurations. We could also choose overrides at this time. To say, specify, if we want a different type of configuration, apply to its disa ground. If you wanted to do something like, say put in test Fleet somewhere
in like the Stray, Leah. And do a test run to see if that works better or something goes, wrong. Can I stop before rolling out to the rest of, well? Okay. Cloud shell that we should now be a game servers, and we can see that we have two games servers here. Running. I want to go back to a previous because I love this is just make me so happy. Going to object browser. We can see, we just one command were able to, now see that we have Game servers running across all
of the Clusters in our system and it doesn't matter how many we have to do that kind of orchestration. That works at super nice. Allocation is being able to request out of a fleet of Game servers or just a set. Now, you can choose through some sophisticated selectors. If you so desire and say, hey give me a game server and Market has allocated. So I know not to remove it. When players are playing on it, multi cluster, allocation system are the one that currently available now, but
it's going to be very similar to what you're going to see. And then you my location and point. Do I have this allocate script filled to do this? It's already got our start setup. Let's run that now. So this is running against one of their endpoints and if we look at this particular line here, so here we can see. We got a game server back that you wished to Cluster, which is the one we're connected to right now. So that if I say cutie Pio allocated, but you know what, let's allocate everything from this cluster. That'll give us another one. Okay,
another one from this, cluster. Since we've run out from this cluster, if I run this one more time, it's now going to move over to US-1 and give me a game server from over there. Multicultural location running across multiple clusters and be able to coordinate the allocation between the two. But let's actually play a game. Let's grab one of these and play a little instances. Supertuck. Scott says running on the Pacific coast where I am in the United States, say run game. Okay. So here we go.
Here is our talks cops. Set that up. Click, okay. I'm connected. Let's also run. And I bought just locally. So, I have some friends to play with. Excellent. We have some Bots books. Race. I like being. And that looks like a fun with. Okay. So this is going to connect and it actually already connected to an instance of the Super Target dedicated server running on the Pacific coast here in the US. And I am able to now play a game against it. Now. I could have played on any number of the different classes of available here, as you sure I have a a u.s. Realm
but I mean it's going to play here for now and I'm going to lose very, very quickly. But here I am playing at the, boat's everything is working pretty smoothly. It's actually working quite nicely this level before, this is, right, and I'm terrible, but you can see me playing this game and it's going pretty well as I'm playing with other players. Also, let me shut this down and we'll come back, fantastic game. That has been able to be play. Do you get the scent of the sort of stuff that we can do now with cool games that are
definitely want to highlight that? We have a variety of open-source tooling for supporting your game as well. You probably already heard of a good match. But if you haven't if they're open source framework for being able to do matchmaking a global scale so you don't have to charge your player base and a while still allowing you the control and flexibility to write your matchmaking allergic. As you see fit our recently announced a storage solution called open saved, which is an opinionated API to provide storage for a variety of Atkins. That your game developers
don't have to be aware or worry about what game storage is being used. For generic types of information are other sections. That'll be covered there as well. To wrap things up. We've Game Servers on Google Cloud. We want to meet you, where you're at, regardless of where you are in your game development Journey. If you're already have an existing system. We have a variety of products and features. That should be a great fit for you. But maybe if you're building something new and you want to get into that cloud native ecosystem, guha game. Service has a wonderful platform to
be able to run your game servers. If you're interested in learning more, please check out the Google account back. If you're interested in are open source projects, check out github.com Google for games. And finally, also check out Cloud to google.com gaming, finally. Thank you so much for spending time with me. I know your time is valuable, but I'm super excited to see what sort of game that you're going to build.
Buy this talk
Buy this video
Our other topics
With ConferenceCast.tv, you get access to our library of the world's best conference talks.