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