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

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

将 Amazon GameLift FleetIQ 集成到游戏客户端中

本主题描述了准备游戏客户端或对战服务以与 Amazon GameLift FleetIQ 通信以获取用于托管游戏会话的游戏服务器所需的任务。

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

  • 让 Amazon GameLift FleetIQ 选择可用的游戏服务器。此选项利用 Amazon GameLift FleetIQ 优化,使用低成本竞价型实例并进行自动扩展。

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

让 Amazon GameLift FleetIQ 选择一台游戏服务器

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

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

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

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

选择您自己的游戏服务器

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

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

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

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