Amazon GameLift is a managed service for deploying, operating, and scaling dedicated game servers for session-based multiplayer games. You can deploy your first game server in the cloud in just minutes, saving up to thousands of engineering hours in upfront software development and lowering the technical risks that often cause developers to cut multiplayer features from their designs. Built on AWS’s proven computing environment, Amazon GameLift lets you scale high-performance game servers up and down to meet player demand. You pay only for the capacity you use, so you can get started whether you’re working on a new game idea or running a game with millions of players.
Amazon GameLift works best with multiplayer games that have game sessions that begin and end within a specified time period. Typically, these are multiplayer games in genres like first person shooters, MOBAs, fighting, racing, or sports.
Amazon GameLift is designed to work for latency-intolerant games. Amazon GameLift introduces no additional latency during gameplay.
When joining a game session, your game client communicates with the Amazon GameLift service to reserve a player slot and receive connection details. This step may take up to several seconds. However, once the player connects to a game server, all player-to-server communication is done directly between your game client and game server. Latency experienced during gameplay will depend upon the player's internet connection and their physical distance to the game server. You can further reduce latency by positioning game servers in regions that are as close as possible to your players. Amazon GameLift supports regions in North America, Europe, Asia, South America, and Australia so you can choose where to best deploy game servers for your players.
Billing begins when you allocate Amazon GameLift capacity and Amazon GameLift launches your game’s server binary for the first time on each instance. Billing concludes when you stop instances. For Windows instances, which are billed per instance-hour, partial instance-hours consumed are billed as full hours. For Linux instances, which are billed per instance-second, there is a 1 minute minimum charge per-instance.
No, not directly. However, please note that successful matches with FlexMatch automatically result in the creation of new game sessions. Depending on how you’re managing game server capacity, creating new game sessions may trigger additional server instances, for which you’ll be charged standard Amazon GameLift instance prices.
For this example, we calculated costs in the US East region (N. Virginia) using Linux as our operating system and 2 CPU cores and 3 GB of memory for our servers. At peak demand, we assumed we needed 2,500 instances running. These inputs result in a 3-year total compute cost of about $4.5 million, or roughly $125,000 per month.
Next, we chose a comparable configuration with Amazon GameLift: a c4.large instance meets the 2 CPU cores with 3 GB of memory requirement.
Now we’ll calculate the cost savings from using Amazon GameLift Spot instances. While Spot prices fluctuate throughout the day, a good rule of thumb is that Amazon GameLift Spot instances running Linux are on average 70% less expensive than the same On-Demand instances. The On-Demand price for a c4.large instance in the US East (N. Virginia) region is $0.127 per hour. Using our rule of thumb, we arrive at a Spot instance price of $0.04. Running 2,500 instances 24 hours a day for an entire month (assuming a 30 day month) comes to $229,000 per month for On-Demand instances, but only $72,000 per month for Spot instances. So Spot instances give us a 42% savings over colocation.
However, based on the variability from player traffic, most games don’t need peak capacity 24/7. To automatically handle changing capacity needs based on your current player demand, Amazon GameLift autoscales the number of instances up and down throughout the day. While it’s hard to know what daily demand will look like for all games, we estimated that the hourly average runs at 50% of peak capacity. With auto-scaling, that brings the cost down just under $36,000 for the month.
Compared to the $125,000 we calculated for the colocation solution, that saves us $89,000 or 71%. Note that this calculation does not include the cost of data transfer. Data transfer fees are generated for traffic between your game servers and your game clients. Inbound data transfer is free. For outbound data transfer rates to other AWS services and regions, visit the Data Transfer Rates.
First, integrate Amazon GameLift into your game client and server using the AWS SDK and the Amazon GameLift Server SDK. Then, upload your game server to Amazon GameLift in your AWS Account, and use the Amazon GameLift console to set up fleets of computing resources and deploy your game. When your players connect, you can monitor your fleet through the Amazon GameLift console. You can also integrate Amazon GameLift with your custom game services like identity or matchmaking using the AWS SDK.
The Amazon GameLift Server SDK contains C++ and C# versions of the Amazon GameLift Server SDK and an Unreal Engine plugin to accelerate integration into Unreal Engine game servers. Amazon GameLift supports game servers that run on Windows Server 2012 R2 or Amazon Linux.
No, you are not required to authenticate players. However, you are required to provide a unique, non-personally identifiable player ID for each user. Learn more in the Integrating a Game Client section of the Amazon GameLift Developer Guide. Your game client must authenticate to your servers on Amazon GameLift using your AWS credentials. To learn more about how to set up and configure AWS credentials, please visit the Amazon GameLift Developer Guide.
Yes. Some services require communication from the game client to the game server to be encrypted. To assist with establishing this secure channel, Amazon GameLift provides a mechanism to deliver information like encryption keys directly to the game server. Learn more in the Amazon GameLift Developer Guide.
You can track performance and health metrics for your game servers to discover and investigate issues. You can debug fleets during build extraction, installation, and runtime validation by downloading fleet creation logs from the Events tab in the Amazon GameLift Console. You can also remotely access individual instances in a fleet to inspect status, debug problems, or connect debugging tools. To remotely access instances, you can use either Windows Remote Desktop for Windows or SSH for Linux. You can also use Amazon GameLift Local to emulate a subset of the Amazon GameLift API so you can debug game server code locally on your development machine. Visit our Amazon GameLift Developer Guide to learn more about debugging and Amazon GameLift Local.
The Amazon GameLift Console provides real-time dashboards to help you understand your player’s experience. You can also use Amazon CloudWatch to monitor all of your Amazon GameLift resources and react to emergent issues. With CloudWatch, you can create at-a-glance dashboards and configure operational alarms to help identify issues before they impact your players. Amazon GameLift metrics are automatically available in CloudWatch as long as your fleet is active. Learn more about CloudWatch metrics in the Amazon GameLift Developer Guide.
Amazon GameLift Local is a client-side debugging tool that emulates a subset of the Amazon GameLift API on your local development machine. With Amazon GameLift Local, you can verify code changes in seconds, without incurring any usage charges. Amazon GameLift Local is packaged in the Amazon GameLift Server SDK download, available for Windows and Linux desktops, and does not require a network connection to use. Learn more about Amazon GameLift Local in our Developer Guide.
No. Amazon GameLift Local is a client-side debugging tool that only emulates the set of GameSession and PlayerSession client APIs needed to create games, connect players, and test your game server changes. Amazon GameLift Local does not emulate the additional Amazon GameLift client APIs (fleets, builds, aliases, scaling policies, etc.) required for hosting your game in production.
No. Amazon GameLift Local is intended to be used only for testing and debugging purposes and is not intended to be deployed into any production environment, on customer’s devices, or into cloud infrastructure.
Fleet-level aggregated data is generally available in the Amazon GameLift console within ten minutes of collection and server-level aggregated data is generally available within five minutes of collection.
Amazon GameLift provides a search capability that helps you filter and sort game sessions by characteristics meaningful to your players. You can filter and sort game sessions on attributes like game session age, current player count, maximum players count, open slots, or your own custom game properties. Learn more in our Amazon GameLift Developer Guide.
The Amazon GameLift matchmaking platform includes both FlexMatch and game session queues. FlexMatch lets you match players together based on rules you define. You can use FlexMatch to configure rule sets that group players together while balancing match quality and player wait time. FlexMatch results are automatically fed into a game session queue, which can intelligently select the closest available game server for the match based on each player’s location, giving players the lowest possible latency by leveraging AWS’s broad global footprint. Learn more about FlexMatch and game session queues in the Amazon GameLift Developer Guide.
No. Once you create a FlexMatch rule set, that rule set can’t be changed. To change a rule set, you must clone the rule set, give it a new name, and then create your changes. To change the rule set for a live matchmaker, you then update the matchmaker’s configuration to use the new rule set instead of the old one. Because a rules set may be used by one or more live matchmakers, this limitation guards against causing unintended consequences to live production systems.
Up to 50. The number of server processes depends on the performance requirements of your game servers and the instance type you choose for your fleet. When you set up a fleet, you will select an instance type and configure the fleet to concurrently run an optimum number of server processes. Running more processes on fewer instances can help you decrease costs. You can also configure your fleet to run multiple server builds or game configurations on each instance.
Amazon GameLift provides a truly elastic computing environment. Amazon GameLift instances enable you to increase or decrease capacity within minutes, not hours or days. You can provision one, hundreds, or even thousands of server instances simultaneously.
Seamlessly provide the capacity you need to meet changes in player demand with Amazon GameLift Target Tracking. Target Tracking is an autoscaling feature that allows you to simply set a percentage target for available game sessions, creating a buffer to accommodate fluctuations in player traffic. Amazon GameLift will add or remove capacity as required to keep this buffer of available game sessions at the target value you define and adjust to a fluctuating load pattern, minimizing rapid fluctuations in capacity. For more information, see the Autoscaling section of the Amazon GameLift Developer Guide.
You can also manually control the quantity of instances from the fleet details page in the Amazon GameLift console.
The right instance type depends on your game’s server performance and the number of server processes you plan to run concurrently on each instance. The computational complexity of your game, optimization of your game and network code, and maximum number of players are the main drivers for the size of the instance that you will need. One of the advantages of Amazon GameLift is that you only pay for what you use, which makes it convenient and inexpensive to test the performance of your game on different instance families and types.
Amazon GameLift retains activity metrics. When you terminate an instance, any data generated by your game server and stored on the instance is lost. However, you can instruct Amazon GameLift to retain and store these data files for up to seven days after the instance has been terminated.
A fleet is a set of Amazon GameLift instances in one region running one build of your game server. You can accommodate changes in player demand by increasing or decreasing the number of instances in your fleet. A fleet is configured to use a certain instance type, to deploy a build, and to run one or more server processes on each instance.
It typically takes less than an hour to set up the resources necessary to run your game, measured from the time you upload your game binary to when it is fully deployed and accessible to your players. This time is dependent on the size of your binary and the number of instances you are deploying.
Yes. You can remotely access an instance in a fleet that is in an activating, active, or error status. This is useful for debugging, inspecting player activity in real time, or connecting performance monitoring or benchmarking tools. You can modify your fleet’s port settings and protocols using either the AWS command line interface (CLI) or through the Amazon GameLift console.
Yes, Amazon GameLift makes updating production fleets simple with its alias feature. An alias enables you to direct traffic to fleets without having to change the client end-point descriptor. After creating a new production fleet, you can edit an alias to point from an older fleet to this newer fleet, routing all connecting players to the new fleet alias feature.
Similarly, if you discover an issue with a fleet (e.g., you find an issue in your game code), you can edit an alias to redirect traffic from the new fleet to an older fleet.
Amazon GameLift is currently available in the following regions: US East (N. Virginia and Ohio), US West (Oregon and N. California), Central Canada (Montreal), EU Central (Frankfurt), EU West (London and Ireland), Asia Pacific South (Mumbai), Asia Pacific Northeast (Seoul and Tokyo), Asia Pacific Southeast (Singapore and Sydney), and South America East (São Paulo). Please refer to the AWS Global Infrastructure Region Table for the current information on product and service availability by region.
US East (N. Virginia), US West (Oregon), EU Central (Frankfurt), EU West (Ireland), Asia Pacific Southeast (Sydney), and Asia Pacific Northeast (Seoul and Tokyo). When choosing one of the above regions to host a FlexMatch matchmaker, we recommend that you pick a region as close as possible to the player population that the matchmaker will service. We also recommend placing the matchmaker’s game session queue in the same region as the matchmaker. Learn more about FlexMatch region availability in our Amazon GameLift Developer Guide.
Amazon GameLift Spot instances offer access to spare AWS computing capacity at savings of up to 90% compared to On-Demand prices. However, Spot instances can be interrupted by AWS with two minutes of notification when AWS needs the capacity back. You can use this notification period to migrate or shut down games running on those instances. You can achieve cost savings while maintaining high game server availability with the use of FleetIQ, a new feature of Amazon GameLift that places new sessions on game servers based on player latencies, instance prices, and Spot interruption rates.
You get the same high-performance hardware as Amazon GameLift On-Demand instances, but save up to 90%. By accepting a small decrease in server availability as compared to using only On-Demand instances, you can save a lot of money.
Amazon GameLift Spot prices fluctuate based on the current supply and demand for each instance type in each region. Spot instance prices are set by Amazon and adjust gradually based on long-term trends in supply and demand for Spot instance capacity. However, Amazon GameLift Spot prices never exceed Amazon GameLift On-Demand prices. In the Amazon GameLift console, you can view three months of historical pricing and savings data for GameLift Spot for every instance type and region.
First, set up an Amazon GameLift Queue with multiple fleets based on different sizes of the same Spot instance family (e.g. C4.large, C4.xlarge, etc.) and across multiple AWS regions. To place a game session, FleetIQ will first use player latency data to select the region that will provide the lowest latency, then place the game session into the fleet with the lowest price and the lowest interruption frequency. The Amazon GameLift Queue should also include an On-Demand fleet in each of the configured regions. FleetIQ will prioritize game session placement into Spot fleets in a region first, then fall back to the On-Demand fleet if needed to maintain high availability. To see more best practices, visit the developer documentation.
When AWS occasionally needs more capacity, some Amazon GameLift Spot instances could receive a warning that the game servers must shut down within two minutes. When that happens, you can use the warning period to gracefully migrate or shut down active game sessions. To maintain an equal amount of available capacity for your game, FleetIQ will automatically start new servers in the same region by using alternate Spot instances types or by using On-Demand instances.
An Amazon Machine Image (AMI) is a supported and maintained image provided by AWS for use on Amazon EC2. Amazon GameLift uses Windows 2012 R2 and Amazon Linux to run your game server. An AMI is designed to provide a stable, secure, and high performance execution environment for applications running on Amazon EC2. It also includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running the Amazon AMI.
We worked with a customer to measure latency between player game clients and Amazon GameLift servers. Based on 236,000 unique players connecting between May 1 and May 10, 2018 to servers in 9 regions, median latency globally for Amazon GameLift was 41 millseconds, with a minimum of __ and maximum of _, and a standard deviation of __.