AWS for Games Blog

Speed up game server development with Amazon GameLift Anywhere and the Amazon GameLift Agent

When developing multiplayer games, you are constantly creating new game client and game server builds. Being able to test the latest changes quickly is important for getting feedback on feature updates and bug fixes. This fast iteration cycle allows you to keep developing without interruptions.

There are many aspects to automating the build and deployment cycle, and in this video walkthrough, we’re focusing on fast game server build updates using Amazon GameLift Anywhere, and the recently launched Amazon GameLift Agent. Amazon GameLift is a fully-managed global game server hosting service. With the Amazon GameLift Anywhere feature, customers can host their game servers anywhere in the world in addition to the wide array of managed locations supported by Amazon GameLift Fleets.

Deployment steps

You will deploy this solution in the browser using the AWS Management Console and AWS CloudShell. To get started, you’ll need administrator level permissions to an AWS account, or access to all the individual services utilized. The following video walks you through the steps for configuring the Amazon GameLift Agent and using GameLift Anywhere for faster development iteration. The Readme instructions, and all files needed to follow the steps outlined in this walkthrough video can be found Amazon GameLift Toolkit repository on GitHub.

Next Steps

As you have the game server running in the cloud, hosted on a TCP port 1935 in this case (you would typically use UDP for real-time games), you could now create player sessions on it and connect. The Solution Guidance we have for building an end-to-end solution with fully managed Amazon GameLift and a game backend uses the same game server sample, and has client side code available for Unreal, Unity, and Godot. It also creates game sessions and player sessions on your fleet through the Amazon GameLift FlexMatch matchmaking. You could use this implementation as a basis for setting up your end-to-end development environment. Instead of hosting on a managed Amazon GameLift fleet, you would just replace that with your Anywhere fleet.

To update the game server build, you only need to upload a new version of the game server to the S3 Bucket, then rerun the aws ssm send-command from the deployment script. After less than a minute, you should have an updated version of the game server up and running. You can further reduce this time if you don’t run all the configuration and installation in all executions. At minimum you only need to download the new build from S3, and terminate the running game server processes to have the agent automatically replace the game server with the new one.

The solution we covered here helps you iterate fast on game server builds on the Amazon GameLift service by hosting a development environment that is similar to a managed fleet, reducing the deployment time from 20-40 minutes to under one minute. In addition, this makes the move to a managed Amazon GameLift fleet for production straightforward, as you’re already developing on a system similar to the production environment.

Now go build great games!

Juho Jantunen

Juho Jantunen

Juho is a Worldwide Principal Solutions Architect in the AWS for Games team focusing on game backend and game server hosting solutions. He has a background in the games industry and cloud technology, and has built and operated game backends on AWS for multiple titles with millions of players.