将 GameLift FleetIQ 集成到游戏客户端 - Amazon GameLift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

将 GameLift FleetIQ 集成到游戏客户端

本主题介绍准备游戏客户端或对战服务与 GameLift FleetIQ 通信以便获取游戏服务器来托管游戏会话所需的任务。

创建一种方法,允许游戏客户端或对战构建器为玩家请求游戏服务器资源。为此,您可以在几种方法中选择:

  • 让 GameLift FleetIQ 选择一个可用的游戏服务器。此选项利用 GameLift FleetIQ 优化来使用低成本 Spot 实例和自动扩展。

  • 请求所有可用的游戏服务器并选择一个以使用(通常称为“列出并挑选”)。

让 GameLift FleetIQ 选择游戏服务器

要让 GameLift FleetIQ 选择可用的游戏服务器,请调用 ClaimGameServer(),而不指定游戏服务器 ID。在这种情况下,GameLift FleetIQ 确实运用其逻辑在实例上查找可用于游戏托管并且针对 Automatic Scaling 进行了优化的游戏服务器。

aws gamelift claim-game-server \ --game-server-group-name MyLiveGroup

为响应认领请求,GameLift FleetIQ 标识 GameServer 资源、连接信息和游戏数据,客户端可使用这些数据来连接到游戏服务器。游戏服务器的认领状态设置为 CLAIMED 60 秒。在玩家连接或开始游戏后,您的游戏服务器或客户端服务需要更新 GameLift FleetIQ 上的游戏服务器状态。这可确保 GameLift FleetIQ 不会提供此游戏服务器来响应对游戏服务器容量的后续请求。通过调用 UpdateGameServer() 来更新游戏服务器状态。

aws gamelift update-game-server \ --game-server-group-name MyLiveGroup \ --game-server-id UniqueId-1234 \ --health-check HEALTHY \ --utilization-status UTILIZED

选择您自己的游戏服务器

使用“list and pick”方法,您的游戏客户端或对战构建器通过调用 ListGameServers() 来请求可用游戏服务器的列表。在选择游戏服务器时,您可能希望使用游戏服务器数据来提供玩家或对战构建器可以使用的其他信息。要控制返回结果的方式,您可以请求分页结果并按注册日期对游戏服务器进行排序。以下请求返回指定游戏服务器组中的 20 个活动和可用游戏服务器,按注册时间排序,首先列出最新的游戏服务器。

aws gamelift list-game-servers \ --game-server-group-name MyLiveGroup \ --limit 20 \ --sort-order DESCENDING

根据可用游戏服务器的列表,客户端或对战服务选择游戏服务器并使用特定游戏服务器 ID 调用 ClaimGameServer() 以认领该服务器。在这种情况下,GameLift FleetIQ 不执行其任何实例类型优化逻辑,如GameLift FleetIQ 逻辑中所述。

aws gamelift claim-game-server \ --game-server-group-name MyLiveGroup \ --game-server-id UniqueId-1234