本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
游戏服务器的生命周期
With Amazon GameLift Servers FleetIQ,游戏服务器会经历以下生命周期,包括配置和状态更新。游戏服务器预计是短寿命的资源。最佳实操是,游戏服务器应在游戏会话结束后注销,而不是重新用于其他游戏会话。这种方法有助于确保可用的游戏服务器始终在可用于游戏托管的成本最低的资源上运行。
-
游戏服务器资源是在游戏服务器处理时创建的,在实例上运行 Amazon GameLift Servers FleetIQ关联的 Auto Scaling 群组,调用 Amazon GameLift Servers
RegisterGameServer()
要通知的 API Amazon GameLift Servers FleetIQ 它已经准备好接待玩家和游戏玩法了。游戏服务器具有两种状态来跟踪其当前可用性:-
利用状态跟踪游戏服务器当前是否支持玩游戏。此状态最初设置为 AVAILABLE(可用),表示它已准备好接受新的游戏。一旦游戏服务器被游戏占用,此状态就会设置为 UTILIZED(已利用)。
-
认领状态可跟踪游戏服务器是否被认领用于即将开始的游戏。处于 CLAIMED(已认领)状态的游戏服务器表示它已被游戏客户端(或游戏服务,如匹配器)暂时保留。此状态可防止 Amazon GameLift Servers FleetIQ 从向多个请求者提供相同的游戏服务器。认领状态为空的游戏服务器可供认领。
-
-
下图说明游戏服务器的利用状态和认领状态在其生命周期内如何变化。
-
第 1 步:一个游戏服务器组有六个已注册的游戏服务器。其中四个的利用状态为 AVAILABLE(A、B、C 和 D),两个目前处于 UTILIZED 状态(E 和 F)。
-
第 2 步:游戏客户端或配对系统调用 Amazon GameLift Servers
ClaimGameServer()
用于请求新游戏服务器的 API。此请求提示 Amazon GameLift Servers FleetIQ 搜索可用的游戏服务器 (D) 并将其申领状态设置为 “已申领”,持续 60 秒。Amazon GameLift Servers FleetIQ 使用游戏服务器的连接信息(IP 地址和端口)以及其他可选的游戏特定数据来响应其请求。由于尚未在游戏服务器上开始玩游戏,因此它的利用状态仍然保持为 AVAILABLE,但无法通过其他请求来认领。 -
步骤 3a. 使用提供的连接信息,游戏客户端可以连接到游戏服务器并启动游戏。必须在 60 秒内触发游戏服务器 (D) 才能将其使用状态更改为 “已利用”,方法是调用 Amazon GameLift Servers API
UpdateGameServer()
。 -
步骤 3b. 如果游戏服务器的利用状态在 60 秒后未更新,认领计时器将过期,认领状态将重置为空白。游戏服务器 (D) 将返回到可用和未认领的游戏服务器池中。
-
-
游戏服务器上的游戏完成并且玩家断开连接后,游戏服务器资源将被移除。在关闭之前,游戏服务器进程会调用 Amazon GameLift Servers
DeregisterGameServer()
要通知的 API Amazon GameLift Servers FleetIQ 它脱离了游戏服务器组的游戏服务器池。