Get Started with Custom Servers - Amazon GameLift

Get Started with Custom Servers

This roadmap outlines the key steps to setting up your multiplayer games with custom game servers to run with the managed Amazon GameLift solution for custom game servers. If you're interested in using GameLift Realtime Servers, which let you deploy your game client with our ready-to-deploy game servers, see Get Started with Realtime Servers. To learn about other GameLift solutions, see What Is Amazon GameLift?.

New to GameLift? We recommend that you read What Is Amazon GameLift?. If you're unsure whether GameLift supports your operating systems and development environments, see the topics GameLift SDKs and Game Engines and Amazon GameLift.

Before you start integrating with GameLift, you need to have an AWS account and configure it for GameLift. Learn more at Set up an AWS account. All essential tasks related to creating and managing your game servers can be done using the GameLift console, but you might also want to Get and install the AWS Command Line Interface tool.

To use custom game servers with GameLift

  1. Prepare your custom game server for hosting on GameLiftAmazon GameLift.

  2. Prepare your game client to connect to GameLift hosted game sessions.

    • Set up a game client to communicate with GameLift to start game sessions and place players into games when prompted by a game client.

      • Add the AWS SDK to your client service project. See the GameLift SDKs For client services.

      • Add functionality to retrieve information on game sessions, place new game sessions, and (optionally) reserve space for players on a game session. See Add Amazon GameLift to Your Game Client. Recommended: Use game session placements to take advantage of FleetIQ and optimize resource usage and player experience. This option is required if you're using FlexMatch.

      • (optional) Enable the client service to request player matchmaking using FlexMatch. Learn more in FlexMatch integration roadmap.

    • Enable your game client to connect directly with a hosted game session. Add code to acquire connection information for a game session and (optionally) a reserved player session. Use this connection information and a unique player ID to communicate with the game server and join the game. See Join a Player to a Game Session.

  3. Test your GameLift integration.

    • Use Amazon GameLift Local to test your game client and game server integration using a version of the GameLift service that's running locally. You can use this tool to test your integration without uploading game builds or setting up fleets. Use GameLift Local to verify that your game components are communicating with the GameLift service and test core functionality. See Testing Your Integration.

  4. Build a fleet of computing resources to host your game.

    • Package and upload your custom game server build to the GameLift service. Be sure to upload your build to each Region where you plan to deploy your game. See Upload a custom server build to GameLift.

    • Design a fleet configuration for your game. Decide, for example, the type of computing resources to use, which Regions to deploy to, whether to use queues, and other options. See GameLift fleet design guide.

    • Create fleets and deploy them with your custom game server. When a fleet is active, it is ready to host game sessions and accept players. See Setting up GameLift fleets.

    • Experiment with GameLift fleet configuration settings and refine as needed to optimize usage of your fleet resources. Adjust the number of game sessions to run concurrently on each instance, or set game session activation limits. See GameLift fleet design guide. See also how to Remotely access GameLift fleet instances.

    • Create a queue to manage how new game sessions are placed with available hosting resources. See Design a game session queue.

    • Enable automatic scaling to manage your fleet's hosting capacity for expected player demand. See Scaling GameLift hosting capacity.

    • (optional) Set up a FlexMatch matchmaker with a set of custom matchmaking rules for your game. Learn more in FlexMatch integration roadmap.


    After you create your queues, you must update your client service to use the correct queue ID when requesting game session placements and/or matchmaking.

After you've fully integrated GameLift into your game components, it's a matter of managing your game server fleets for optimal availability and performance over the long term. Use GameLift tools to track things like how quickly and efficiently players can find and connect to a game session, overall performance of your game servers over time, and player usage patterns. See Viewing Your Game Data in the Console.

For more information about implementing a custom game server, see the following topics: