Amazon GameLift
开发人员指南 (版本 )
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建队列

队列用于借助多个队组和区域中的最佳托管资源来放置新游戏会话。要了解有关为您的游戏构建队列的更多信息,请参阅设计游戏会话队列

在游戏客户端中,新的游戏会话在启动时,通过使用放置请求加入到队列中。在创建游戏会话中了解有关游戏会话放置的更多信息

要创建队列,您可以使用 Amazon GameLift 控制台AWS Command Line Interface (CLI)。

创建队列 (控制台)

从 AWS 管理控制台创建队列。

创建队列

  1. 通过 https://console.amazonaws.cn/gamelift/ 打开 Amazon GameLift 控制台,然后选择您想要创建队列的区域。

  2. 从 Amazon GameLift 菜单中,选择 Create a queue (创建队列)

  3. Create queue 页面上,完成 Queue Details 部分:

    • 队列名称 – 创建有意义的队列名称,以便您可以在列表和指标中轻松识别它。对新游戏会话的请求 (使用 StartGameSessionPlacement) 必须通过此名称指定队列。不允许使用空格和特殊字符。

    • 队列超时 – 指定您希望 Amazon GameLift 尝试放置新游戏会话的时长,此时间过后将停止尝试。Amazon GameLift 将继续在任意队组中搜索可用资源,直到请求超时。

  4. Player latency policies 下,为队列定义零个或多个策略。对于每个放置请求,Amazon GameLift 会自动最大程度地减少所有玩家的平均延迟。您也可以创建一个延迟策略来为每个单独的玩家设置最大限制。仅当放置请求中提供了玩家延迟数据时,才评估玩家延迟策略。您可以选择在整个放置过程中强制实施一个限制,也可以随时间推移逐渐放宽限制。有关更多信息,请参阅设计玩家延迟策略

    1. 要添加第一个策略,请选择 Add player latency policy。输入此策略的最大玩家延迟值 (默认为 150 毫秒)。如策略语言中所述,第一个策略要么对整个放置过程强制执行,要么在其他策略过期后的任何剩余时间执行(如果创建其他策略)。

    2. 要添加其他玩家延迟策略,请选择 Add player latency policy。为其他策略设置最大玩家延迟值和实施的时间长度 (以秒为单位)。这些策略的最大延迟值必须低于第一个策略。

      在添加策略时,控制台会根据最大玩家延迟值自动重新排序策略,最小值排在最前面。在游戏会话放置操作期间将采用这种顺序实施策略。

  5. Destinations 下,向队列添加一个或多个目标。一个队列可包含来自多个区域的队组,并且同时包含按需队组和 Spot 队组。唯一的要求是,所有队组都必须运行与将使用该队列的游戏客户端兼容的游戏版本,例如多个区域中运行同一游戏版本的队组。队组和别名必须已存在,然后才能将其添加为目标。

    1. 选择 Add destination

    2. 使用列指定目标的区域和类型 (队组或别名)。在队组或别名的结果列表中,选择要添加的队组或别名。

    3. 要保存目标,请选择绿色对勾图标。您必须先保存每个目标,然后再添加另一个目标、更改默认顺序或保存队列。

    4. 如果您包含多个目标,请使用 Priority (default) 列中的箭头图标来设置默认的目标顺序。Amazon GameLift 会按照此顺序搜索可用资源的目标以放置新的游戏会话。(如果游戏会话放置请求包含玩家延迟数据,则会覆盖此默认顺序。)

  6. 完成新队列的配置后,选择 Create queue。您的新队列将会保存,Queues 页面会显示该新队列及已有的任何其他队列。您可以在此页面上选择一个队列以查看其详细信息,包括队列指标。您可以随时编辑队列配置。

创建队列 (AWS CLI)

您可以使用 AWS Command Line Interface (AWS CLI) 创建队列。如果您尚未安装 AWS CLI,请参阅主题安装 AWS CLI

创建队列

  • 打开命令行窗口,然后使用 create-game-session-queue 命令定义新队列。有关更多信息,请参阅 AWS CLI 命令参考

以下示例创建一个队列,用于在超时前五分钟将新的游戏会话放到几个队组中的任意一个之中。队组作为目标列出,由队组 ARN 或别名 ARN 标识。所有队组和别名必须已存在。Amazon GameLift 按照此处列出的顺序尝试将新的游戏会话放到队组中,除非个别游戏会话放置请求将其覆盖。

注意

您可以通过使用队组或别名 ID 调用 describe-fleet-attributesdescribe-alias 来获取队组和别名 ARN 的值。有关 ARN (Amazon 资源名称) 格式的详细信息,请参阅 ARN 和 AWS 服务命名空间

$ aws gamelift create-game-session-queue --name "Sample test queue" --timeout-in-seconds 300 --destinations DestinationArn=arn:aws-cn:gamelift:us-east-1::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8910 DestinationArn=arn:aws-cn:gamelift:us-west-2::alias/alias-b0234567-c8d9-0e1f-2ab3-c45d6e7f8901 DestinationArn=arn:aws-cn:gamelift:us-west-2::fleet/fleet-f1234567-b8c9-0d1e-2fa3-b45c6d7e8912

可复制版本:

aws gamelift create-game-session-queue --name "Sample test queue" --timeout-in-seconds 300 --destinations DestinationArn=arn:aws-cn:gamelift:us-east-1::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8910 DestinationArn=arn:aws-cn:gamelift:us-west-2::alias/alias-b0234567-c8d9-0e1f-2ab3-c45d6e7f8901 DestinationArn=arn:aws-cn:gamelift:us-west-2::fleet/fleet-f1234567-b8c9-0d1e-2fa3-b45c6d7e8912

如果 create-game-session-queue 请求成功,则 Amazon GameLift 将返回包含新队列配置的 GameSessionQueue 对象。您现在可以使用 StartGameSessionPlacement 向队列提交请求。

使用玩家延迟策略创建队列

  • 打开命令行窗口,然后使用 create-game-session-queue 命令定义新队列。有关更多信息,请参阅 AWS CLI 命令参考

以下示例使用 10 分钟超时、三个目标和一组玩家延迟策略创建一个队列。在该示例中,第一个玩家延迟策略在前两分钟生效、第二个策略在第三第四分钟生效、第三个策略会生效六分钟,直到放置请求超时。

$ aws gamelift create-game-session-queue --name "matchmaker-queue" --timeout-in-seconds 600 --destinations DestinationArn=arn:aws-cn:gamelift:us-east-1::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8910 DestinationArn=arn:aws-cn:gamelift:us-west-2::alias/alias-b0234567-c8d9-0e1f-2ab3-c45d6e7f8901 DestinationArn=arn:aws-cn:gamelift:us-west-2::fleet/fleet-f1234567-b8c9-0d1e-2fa3-b45c6d7e8912 --player-latency-policies "MaximumIndividualPlayerLatencyMilliseconds=50,PolicyDurationSeconds=120" "MaximumIndividualPlayerLatencyMilliseconds=100,PolicyDurationSeconds=120" "MaximumIndividualPlayerLatencyMilliseconds=150"

可复制版本:

aws gamelift create-game-session-queue --name "matchmaker-queue" --timeout-in-seconds 600 --destinations DestinationArn=arn:aws-cn:gamelift:us-east-1::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8910 DestinationArn=arn:aws-cn:gamelift:us-west-2::alias/alias-b0234567-c8d9-0e1f-2ab3-c45d6e7f8901 DestinationArn=arn:aws-cn:gamelift:us-west-2::fleet/fleet-f1234567-b8c9-0d1e-2fa3-b45c6d7e8912 --player-latency-policies "MaximumIndividualPlayerLatencyMilliseconds=50,PolicyDurationSeconds=120" "MaximumIndividualPlayerLatencyMilliseconds=100,PolicyDurationSeconds=120" "MaximumIndividualPlayerLatencyMilliseconds=150"

如果 create-game-session-queue 请求成功,则 Amazon GameLift 将返回包含新队列配置的 GameSessionQueue 对象。