

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 针对 FlexMatch 设置游戏服务器
<a name="match-server-setup"></a>

使用 Amazon GameLift Servers 托管的游戏服务器必须与 Amazon GameLift Servers 服务器 SDK 集成，并具有[将 Amazon GameLift Servers 添加至游戏服务器](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html)中所述的核心功能。借助此功能，您的游戏服务器将能够在 Amazon GameLift Servers 托管资源上运行并与 Amazon GameLift Servers 服务通信。以下说明描述了添加 FlexMatch 功能所需执行的其他任务。

**将 FlexMatch 添加到游戏服务器**

1. **在开始游戏会话时使用对战数据。**您的游戏服务器需实施一个名为 `onStartGameSession()` 的回调函数。创建对战后，Amazon GameLift Servers 查找可用的游戏服务器进程并调用此函数，以提示其为该对战启动游戏会话。此调用包括一个游戏会话对象（[GameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameSession.html)）。您的游戏服务器使用游戏会话信息（包括对战构建器数据）以启动游戏会话。有关启动游戏会话的更多详细信息，请参阅[开始游戏会话](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)。有关对战构建器数据的更多信息，请参阅[关于对战构建器数据](match-server.md#match-server-data)。

1. **处理玩家连接。**当连接到已经匹配的游戏时，游戏客户端将引用玩家 ID 和玩家会话 ID（请参阅[验证新玩家](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-validateplayer)）。设置游戏服务器，以使用玩家 ID 将传入玩家与对战构建器数据中的玩家信息进行关联。对战构建器数据将标识玩家的团队分配，以及在游戏中代表玩家的其他信息。

1. **在玩家离开游戏时进行报告。**确保您的游戏服务器调用服务器 SDK [RemovePlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-actions.html#integration-server-sdk5-cpp-removeplayersession) 来报告退出的玩家。如果您使用 FlexMatch 回填填充现有游戏中的空位置，此步骤非常重要。了解有关在 [利用 FlexMatch 回填现有游戏](match-backfill.md) 中实施 FlexMatch 回填的更多信息。

1. **要求新玩家填补现有对战（可选）。**确定您想要如何回填现有对战。如果您的对战构建器将回填模式设置为“手动”，您可能需要为您的游戏添加回填支持。如果回填模式设置为“自动”，您可能需要一种为单个游戏会话关闭此模式的方法。例如，您可能希望在游戏会话到达游戏中的某个点后停止回填。了解有关如何在 [利用 FlexMatch 回填现有游戏](match-backfill.md) 中实施对战回填的更多信息。