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

Unreal Engine 的 Amazon GameLift Server API 参考:操作

此 Amazon GameLift 服务器 API 参考可帮助您准备 Unreal Engine 游戏项目用于 Amazon GameLift。有关集成过程的详细信息,请参阅 添加 Amazon GameLift 到您的游戏服务器

此 API 在 GameLiftServerSDK.hGameLiftServerSDKModels.h 中定义。

设置 Unreal Engine 插件并查看代码示例将 Amazon GameLift 添加到 Unreal Engine 游戏服务器项目

AcceptPlayerSession()

通知 Amazon GameLift 服务,具有所指定玩家会话 ID 的玩家已连接到服务器进程并且需要验证。Amazon GameLift 将确认玩家会话 ID 有效 — 即该玩家 ID 在游戏会话中有保留的玩家位置。通过验证后,Amazon GameLift 将玩家位置的状态从 RESERVED 更改为 ACTIVE。

语法

FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)

参数

playerSessionId

Amazon GameLift 服务为响应对 AWS SDK Amazon GameLift API 操作 CreatePlayerSession 的调用而发出的唯一 ID。游戏客户端将在连接到服务器进程时引用此 ID。

类型:FString

必需:否

返回值

返回成功或失败 (包含错误消息) 的一般结果。

ActivateGameSession()

通知 Amazon GameLift 服务,服务器进程已激活游戏会话,现在已准备好接收玩家连接。此操作应作为 onStartGameSession() 回调函数的一部分,在所有游戏会话初始化已完成之后调用。

语法

FGameLiftGenericOutcome ActivateGameSession()

参数

此操作没有参数。

返回值

返回成功或失败 (包含错误消息) 的一般结果。

GetGameSessionId()

检索当前由服务器进程托管的游戏会话的 ID (如果服务器进程处于活动状态)。

语法

FGameLiftStringOutcome GetGameSessionId()

参数

此操作没有参数。

返回值

如果成功,以 FGameLiftStringOutcome 对象返回游戏会话 ID。如果不成功,将返回错误消息。

GetSdkVersion()

返回当前内置到服务器进程中的开发工具包的版本号。

语法

FGameLiftStringOutcome GetSdkVersion();

参数

此操作没有参数。

返回值

如果成功,返回以 FGameLiftStringOutcome 对象返回当前软件开发工具包的版本。返回的字符串仅包含版本号 (例如:"3.1.5")。如果不成功,将返回错误消息。

示例

Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();

InitSDK()

初始化 Amazon GameLift 开发工具包。应在启动之后、进行任何其他 Amazon GameLift 相关的初始化之前调用此方法。

语法

FGameLiftGenericOutcome InitSDK()

参数

此操作没有参数。

返回值

返回成功或失败 (包含错误消息) 的一般结果。

ProcessEnding()

通知 Amazon GameLift 服务,该服务器进程正在关闭。应在所有其他清除任务 (包括关闭所有活动游戏会话) 之后调用此方法。此方法应退出,退出代码为 0;非零退出代码将导致生成一条事件消息,提示进程未完全退出。

语法

FGameLiftGenericOutcome ProcessEnding()

参数

此操作没有参数。

返回值

返回成功或失败 (包含错误消息) 的一般结果。

ProcessReady()

通知 Amazon GameLift 服务,服务器进程已准备好托管游戏会话。在成功调用 InitSDK() 并完成了服务器进程托管游戏会话所需的全部设置任务后,应调用此方法。

语法

FGameLiftGenericOutcome ProcessReady(FProcessParameters &processParameters)

参数

FProcessParameters

一个 FProcessParameters 对象,传输有关服务器进程的以下信息:

  • 回调方法的名称,在游戏服务器代码中实现,Amazon GameLift 服务调用它来与服务器进程通信。

  • 服务器进程正在侦听的端口号。

  • 您希望 Amazon GameLift 捕获和存储的任何游戏会话特定文件的路径。

必需:是

返回值

返回成功或失败 (包含错误消息) 的一般结果。

示例

请参阅使用 Unreal Engine 插件中的示例代码。

RemovePlayerSession()

通知 Amazon GameLift 服务,具有所指定玩家会话 ID 的玩家已从服务器进程断开连接。作为响应,Amazon GameLift 将玩家位置更改为可用,这使得该玩家位置可以分配给新玩家。

语法

FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)

参数

playerSessionId

Amazon GameLift 服务为响应对 AWS SDK Amazon GameLift API 操作 CreatePlayerSession 的调用而发出的唯一 ID。游戏客户端将在连接到服务器进程时引用此 ID。

类型:FString

必需:否

返回值

返回成功或失败 (包含错误消息) 的一般结果。

StartMatchBackfill()

发送请求以为使用 FlexMatch 创建的游戏会话中的开放位置查找新玩家。另请参阅 AWS 软件开发工具包操作 StartMatchBackfill()。通过此操作,托管游戏会话的游戏服务器进程可以发出匹配回填请求。在利用 FlexMatch 回填现有游戏中了解有关 FlexMatch 回填功能的更多信息。

服务器进程每次只能具有一个活动的匹配回填请求。要发送新请求,请先调用 StopMatchBackfill() 以取消原始请求。

语法

FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);

参数

FStartMatchBackfillRequest

一个 FStartMatchBackfillRequest 对象,用于传递以下信息:

  • 要分配给回填请求的票证 ID。此信息是可选的;如果未提供任何 ID,则 Amazon GameLift 将自动生成一个 ID。

  • 要将请求发送到的对战构建器。需要完整的配置 ARN。可从游戏会话的对战构建器数据中获得此值。

  • 正在进行回填的游戏会话的 ID。

  • 游戏会话的当前玩家的可用对战数据。

必需:是

返回值

如果成功,将返回对战回填票证作为 FGameLiftStringOutcome 对象。如果不成功,将返回错误消息。使用 AWS 软件开发工具包操作 DescribeMatchmaking() 可跟踪票证状态。

StopMatchBackfill()

取消使用 StartMatchBackfill() 创建的活动对战回填请求。另请参阅 AWS 软件开发工具包操作 StopMatchmaking()。在利用 FlexMatch 回填现有游戏中了解有关 FlexMatch 回填功能的更多信息。

语法

FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);

参数

StopMatchBackfillRequest

一个 FStopMatchBackfillRequest 对象,用于识别要取消的对战票证:

  • 分配给被取消的回填请求的票证 ID

  • 回填请求所发送到的对战构建器

  • 与回填请求关联的游戏会话

必需:是

返回值

返回成功或失败 (包含错误消息) 的一般结果。

TerminateGameSession()

通知 Amazon GameLift 服务,服务器进程已关闭游戏会话。(目前,每个服务器进程一次仅托管一个游戏会话,因此您无需指定哪个会话。) 此操作应在游戏会话关闭进程结束时调用。调用此操作后,服务器进程可以调用 ProcessReady() 以发送其承载新游戏会话的可用性信号。它也可以调用 ProcessEnding() 以关闭服务器进程并终止实例。

语法

FGameLiftGenericOutcome TerminateGameSession()

参数

此操作没有参数。

返回值

返回成功或失败 (包含错误消息) 的一般结果。

UpdatePlayerSessionCreationPolicy()

更新当前游戏会话接受新玩家会话的能力。可将游戏会话设置为接受或拒绝所有新的玩家会话。(另请参阅 Amazon GameLift 服务 API 参考 中的 UpdateGameSession() 操作)。

语法

FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)

参数

策略

指示游戏会话是否接受新玩家的值。

类型:EPlayerSessionCreationPolicy 枚举。有效值包括:

  • ACCEPT_ALL – 接受所有新玩家会话。

  • DENY_ALL – 拒绝所有新玩家会话。

必需:是

返回值

返回成功或失败 (包含错误消息) 的一般结果。