亚马逊GameLift服务器虚幻引擎 SDK 参考文档:动作 - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊GameLift服务器虚幻引擎 SDK 参考文档:动作

这份 Amazon S GameLift erver SDK 参考资料可以帮助你准备虚幻引擎游戏项目,以便在亚马逊上使用GameLift。有关集成过程的详细信息,请参阅 将亚马逊GameLift添加到您的游戏服务器

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

设置 Unreal Engine 插件并查看代码示例整合亚马逊GameLift进入虚幻引擎项目

AcceptPlayerSession()

通知亚马逊GameLift服务,具有指定玩家会话 ID 的玩家已连接到服务器进程并需要验证。亚马逊会GameLift验证玩家会话 ID 是否有效,即玩家 ID 已在游戏会话中预留了玩家位置。验证后,亚马逊GameLift会将玩家位置的状态从 “预留” 更改为 “活跃”。

语法

FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)

参数

playerSessionId

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

类型:FString

必需:是

返回值

返回由成功或失败组成的通用结果以及错误消息。

ActivateGameSession()

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

语法

FGameLiftGenericOutcome ActivateGameSession()

参数

此操作没有参数。

返回值

返回由成功或失败组成的通用结果以及错误消息。

DescribePlayerSessions()

检索玩家会话数据,包括设置、会话元数据和玩家数据。使用此操作获取单个玩家会话的信息、游戏会话中所有玩家会话的信息或者与单个玩家 ID 相关联的所有玩家会话的信息。

语法

FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)

参数

describePlayerSessions请求

F DescribePlayerSessionsRequest 对象描述要检索的玩家会话。

必需:是

返回值

如果成功,将返回一个 F DescribePlayerSessionsRequest 对象,包含一组与请求参数相匹配的玩家会话对象。玩家会话对象的结构与 Amazon SDK 亚马逊 GameLift API PlayerSession数据类型相同。

GetGameSessionId()

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

语法

FGameLiftStringOutcome GetGameSessionId()

参数

此操作没有参数。

返回值

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

GetSdkVersion()

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

语法

FGameLiftStringOutcome GetSdkVersion();

参数

此操作没有参数。

返回值

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

示例

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

InitSDK()

初始化亚马逊 GameLift SDK。应在启动时调用此方法,然后再进行任何其他GameLift与亚马逊相关的初始化。

语法

FGameLiftGenericOutcome InitSDK()

参数

此操作没有参数。

返回值

返回由成功或失败组成的通用结果以及错误消息。

ProcessEnding()

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

语法

FGameLiftGenericOutcome ProcessEnding()

参数

此操作没有参数。

返回值

返回由成功或失败组成的通用结果以及错误消息。

ProcessReady()

通知 Amazon GameLift 服务服务器进程已准备好托管游戏会话。在成功调用InitSDK()并完成服务器进程托管游戏会话之前所需的设置任务后,调用此方法。每个进程只能调用一次此方法。

语法

FGameLiftGenericOutcome ProcessReady(FProcessParameters &processParameters)

参数

F ProcessParameters

F ProcessParameters 对象,用于传输有关服务器进程的以下信息:

  • 在游戏服务器代码中实现的回调方法的名称,亚马逊GameLift服务调用这些方法与服务器进程进行通信。

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

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

必需:是

返回值

返回由成功或失败组成的通用结果以及错误消息。

示例

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

RemovePlayerSession()

通知亚马逊GameLift服务具有指定玩家会话 ID 的玩家已断开与服务器进程的连接。作为回应,亚马逊将玩家位置GameLift更改为空闲状态,这样就可以将其分配给新玩家。

语法

FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)

参数

playerSessionId

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

类型:FString

必需:是

返回值

返回由成功或失败组成的通用结果以及错误消息。

StartMatchBackfill()

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

此操作为异步操作。如果成功匹配了新玩家,亚马逊GameLift服务会使用回调函数提供更新的匹配器数据OnUpdateGameSession()

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

语法

FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);

参数

F StartMatchBackfillRequest

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

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

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

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

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

必需:是

返回值

如果成功,将返回对战回填票证作为 FGameLiftStringOutcome 对象。如果不成功,将返回错误消息。可以使用 Amazon SDK 操作 DescribeMatchmaking() 跟踪票证状态。

StopMatchBackfill()

取消使用 StartMatchBackfill() 创建的活动对战回填请求。另请参阅 S Amazon DK 操作 StopMatchmaking()。了解有关FlexMatch回填功能的更多信息。

语法

FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);

参数

StopMatchBackfillRequest

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

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

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

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

必需:是

返回值

返回由成功或失败组成的通用结果以及错误消息。

TerminateGameSession()

此方法在 4.0.1 版中已弃用。相反,服务器进程应该在游戏会话结束ProcessEnding()后调用。

通知亚马逊GameLift服务服务器进程已结束当前游戏会话。当服务器进程将保持活动状态并准备好托管新的游戏会话时,将调用此操作。只有在游戏会话终止过程完成后才能调用它,因为它会向亚马逊发出信号GameLift,表明服务器进程可以立即托管新的游戏会话。

如果游戏会话停止后服务器进程将关闭,则不会调用此操作。取而代之的是,调用ProcessEnding()以发出游戏会话和服务器进程都结束的信号。

语法

FGameLiftGenericOutcome TerminateGameSession()

参数

此操作没有参数。

返回值

返回由成功或失败组成的通用结果以及错误消息。

UpdatePlayerSessionCreationPolicy()

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

语法

FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)

参数

策略

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

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

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

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

必需:是

返回值

返回由成功或失败组成的通用结果以及错误消息。