Roadmap: Create a standalone matchmaking solution with FlexMatch - Amazon GameLift

Roadmap: Create a standalone matchmaking solution with FlexMatch

This topic outlines the complete integration process for implementing FlexMatch as a standalone matchmaking service. Use this process if your multiplayer game is hosted using peer-to-peer, custom-configured on-premises hardware, or other cloud compute primitives. This process is also for use with Amazon GameLift FleetIQ, which is a hosting optimization solution for games that are hosted on Amazon EC2. If you're hosting your game using Amazon GameLift managed hosting (including Realtime Servers), see Roadmap: Add matchmaking to a Amazon GameLift hosting solution.

Before you start integration, you must have an AWS account and set up access permissions for the Amazon GameLift service. For details, see Set up an AWS account for FlexMatch. All essential tasks related to creating and managing Amazon GameLift FlexMatch matchmakers and rule sets can be done using the Amazon GameLift console.

  1. Create a FlexMatch matchmaking rule set. Your custom rule set provides complete instructions for how to construct a match. In it, you define the structure and size of each team. You also provide a set of requirements that a match must meet to be valid, which FlexMatch uses to include or exclude players in a match. These requirements might apply to individual players. You can also customize the FlexMatch algorithm in the rule set, such as to build large matches with up to 200 players. See these topics:

  2. Set up notifications for matchmaking events. Use notifications to track FlexMatch matchmaking activity, including the status of pending match requests. This is the mechanism that's used to deliver the results of a proposed match. Since matchmaking requests are asynchronous, you need a way to track the status of requests. Using notifications is the preferred option for this. See these topics:

  3. Set up a FlexMatch matchmaking configuration. Also called a matchmaker, this component receives matchmaking requests and processes them. You configure a matchmaker by specifying a rule set, notification target, and maximum wait time. You can also enable optional features. See these topics:

  4. Build a client matchmaking service. Create or expand a game client service with functionality to build and send matchmaking requests to FlexMatch. To build matchmaking requests, this component must have mechanisms to get the player data required by the matchmaking rule set and, optionally, regional latency information. It must also have a method for creating and assigning unique ticket IDs for each request. You might also choose to build a player acceptance workflow that requires players to opt in to a proposed match. This service must also monitor matchmaking events to get match results and initiate game session placement for successful matches. See this topic:

  5. Build a match placement service. Create a mechanism that works with your existing game hosting system to locate available hosting resources and start new game sessions for successful matches. This component must be able to use match results information to get an available game server and start a new game session for the match. You might also want to implement a workflow to make match backfill requests, which uses matchmaking to fill open slots in matched game sessions that are already running.