本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SDK适用于虚幻引擎的 Amazon GameLift 服务器:操作
使用亚马逊 GameLift 服务器虚幻引SDK用,将你的多人游戏集成到亚马逊托管 GameLift。有关集成过程的指导,请参阅将 Amazon GameLift 添加到您的游戏服务器。
注意
本参考资料适用于早期版本的 Amazon GameLift 服务器SDK。有关最新版本,请参阅 适用于虚幻引擎 GameLift 的 Amazon 服务器 SDK 5.x:动作。
API这在GameLiftServerSDK.h
和中定义GameLiftServerSDKModels.h
。
设置 Unreal Engine 插件并查看代码示例将 Amazon GameLift 集成到虚幻引擎项目中。
SDK适用于虚幻引擎的 Amazon GameLift 服务器:数据类型
主题
AcceptPlayerSession()
通知 Amazon GameLift 服务具有指定玩家会话 ID 的玩家已连接到服务器进程并需要验证。Amazon 会 GameLift 验证玩家会话 ID 是否有效,也就是说,该玩家 ID 已在游戏会话中预留了玩家位置。验证后,Amazon 会将玩家位置的状态从 GameLift 更改RESERVED为ACTIVE。
语法
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
参数
- playerSessionId
-
亚马逊 GameLift 服务为响应 AWS SDK亚马逊 GameLift API行动号召而颁发的唯一编号CreatePlayerSession。连接到服务器进程时,游戏客户端会引用此 ID。
类型:FString
必需:是
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
ActivateGameSession()
通知 Amazon GameLift 服务服务器进程已激活游戏会话,现在可以接收玩家连接了。此操作应作为 onStartGameSession()
回调函数的一部分,在所有游戏会话初始化已完成之后调用。
语法
FGameLiftGenericOutcome ActivateGameSession()
参数
此操作没有参数。
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
DescribePlayerSessions()
检索玩家会话数据,包括设置、会话元数据和玩家数据。使用此操作获取单个玩家会话的信息、游戏会话中所有玩家会话的信息或者与单个玩家 ID 相关联的所有玩家会话的信息。
语法
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
参数
- describePlayerSessions请求
-
FDescribePlayerSessionsRequest 对象描述要检索的玩家会话。
必需:是
返回值
如果成功,将返回一个 FDescribePlayerSessionsRequest 对象,包含一组与请求参数相匹配的玩家会话对象。玩家会话对象的结构与 AWS SDK Amazon GameLift API PlayerSession数据类型相同。
GetGameSessionId()
检索当前由服务器进程托管的游戏会话的 ID (如果服务器进程处于活动状态)。
语法
FGameLiftStringOutcome GetGameSessionId()
参数
此操作没有参数。
返回值
如果成功,以 FGameLiftStringOutcome
对象返回游戏会话 ID。如果不成功,将返回错误消息。
GetInstanceCertificate()
检索与队列及其实例关联的 pem 编码TLS证书的文件位置。 AWS Certificate Manager 当您在证书配置设置为的情况下创建新队列时生成此证书GENERATED。使用此证书可与游戏客户端建立安全连接并加密客户端/服务器通信。
语法
FGameLiftGetInstanceCertificateOutcome GetInstanceCertificate()
参数
此操作没有参数。
返回值
如果成功,则返回一个GetInstanceCertificateOutcome
对象,其中包含存储在实例上的队列TLS证书文件和证书链的位置。从证书链中提取的根证书文件也存储在实例上。如果不成功,将返回错误消息。
有关证书和证书链数据的更多信息,请参阅 AWS Certificate Manager API参考中的GetCertificate 响应元素。
GetSdkVersion()
返回服务器SDK内置进程的当前版本号。
语法
FGameLiftStringOutcome GetSdkVersion();
参数
此操作没有参数。
返回值
如果成功,则将当前SDK版本作为FGameLiftStringOutcome
对象返回。返回的字符串仅包含版本号 (例如:如果不成功,将返回错误消息。
示例
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();
初始化 SDK ()
初始化 Amazon GameLift SDK。此方法应在启动时调用,然后再进行任何其他 GameLift与 Amazon 相关的初始化。
语法
FGameLiftGenericOutcome InitSDK()
参数
此操作没有参数。
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
ProcessEnding()
通知 Amazon GameLift 服务服务器进程正在关闭。应在所有其他清除任务 (包括关闭所有活动游戏会话) 之后调用此方法。此方法应退出,退出代码为 0;非零退出代码将导致生成一条事件消息,提示进程未完全退出。
语法
FGameLiftGenericOutcome ProcessEnding()
参数
此操作没有参数。
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
ProcessReady()
通知 Amazon GameLift 服务服务器进程已准备好托管游戏会话。在成功调用 初始化 SDK () 并完成了服务器进程托管游戏会话所需的全部设置任务后,应调用此方法。每个进程只能调用一次此方法。
语法
FGameLiftGenericOutcome ProcessReady(FProcessParameters &processParameters)
参数
- FProcessParameters
-
FProcessParameters 对象,用于传输有关服务器进程的以下信息:
-
游戏服务器代码中实现的回调方法的名称,Amazon GameLift 服务调用这些方法与服务器进程进行通信。
-
服务器进程正在侦听的端口号。
-
您希望 Ama GameLift zon 捕获和存储的所有游戏会话特定文件的路径。
必需:是
-
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
示例
请参阅使用 Unreal Engine 插件中的示例代码。
RemovePlayerSession()
通知 Amazon GameLift 服务具有指定玩家会话 ID 的玩家已断开与服务器进程的连接。作为回应,Amazon将玩家位置 GameLift 更改为可用,这样就可以将其分配给新玩家。
语法
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
参数
- playerSessionId
-
亚马逊 GameLift 服务为响应 AWS SDK亚马逊 GameLift API行动号召而颁发的唯一编号CreatePlayerSession。连接到服务器进程时,游戏客户端会引用此 ID。
类型:FString
必需:是
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
StartMatchBackfill()
发送请求,要求在使用创建的游戏会话中为空缺老虎机寻找新玩家 FlexMatch。另请参阅 AWS SDK操作 StartMatchBackfill()。通过此操作,托管游戏会话的游戏服务器进程可以发出匹配回填请求。了解有关 FlexMatch 回填功能的更多信息。
此操作为异步操作。如果成功匹配了新玩家,Amazon GameLift 服务将使用回调函数提供更新的匹配器数据OnUpdateGameSession()
。
服务器进程每次只能具有一个活动的匹配回填请求。要发送新请求,请先调用 StopMatchBackfill() 以取消原始请求。
语法
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
参数
- FStartMatchBackfillRequest
-
一个 FStartMatchBackfillRequest 对象,用于传递以下信息:
-
要分配给回填请求的票证 ID。此信息是可选的;如果未提供身份证,Amazon GameLift 将自动生成一个。
-
要将请求发送到的对战构建器。完整配置ARN是必需的。可从游戏会话的对战构建器数据中获得此值。
-
正在进行回填的游戏会话的 ID。
-
游戏会话的当前玩家的可用对战数据。
必需:是
-
返回值
如果成功,将返回对战回填票证作为 FGameLiftStringOutcome
对象。如果不成功,将返回错误消息。可以使用 AWS SDK操作 DescribeMatchmaking() 跟踪票证状态。
StopMatchBackfill()
取消使用 StartMatchBackfill() 创建的活动对战回填请求。另请参阅 AWS SDK操作 StopMatchmaking()。了解有关 FlexMatch 回填功能的更多信息。
语法
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
参数
- StopMatchBackfillRequest
-
一个 FStopMatchBackfillRequest 对象,用于识别要取消的对战票证:
-
分配给被取消的回填请求的票证 ID
-
回填请求所发送到的对战构建器
-
与回填请求关联的游戏会话
必需:是
-
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
TerminateGameSession()
4.0.1 相反,服务器进程应在游戏会话结束ProcessEnding()后调用。
通知 Amazon GameLift 服务服务器进程已结束当前游戏会话。当服务器进程保持活动状态并准备托管新游戏会话时,将调用此操作。只有在游戏会话终止程序完成后才应调用它,因为它会向 Amazon 发出信号 GameLift ,表明服务器进程可以立即用于托管新的游戏会话。
如果服务器进程将在游戏会话停止后关闭,则不会调用此操作。取而代之的是,调用ProcessEnding()表示游戏会话和服务器进程都将结束。
语法
FGameLiftGenericOutcome TerminateGameSession()
参数
此操作没有参数。
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
UpdatePlayerSessionCreationPolicy()
更新当前游戏会话接受新玩家会话的能力。可将游戏会话设置为接受或拒绝所有新的玩家会话。(另请参阅《亚马逊 GameLift 服务API参考UpdateGameSession()
》中的操作)。
语法
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
参数
- Policy
-
指示游戏会话是否接受新玩家的值。
类型:
EPlayerSessionCreationPolicy
枚举。有效值包括:-
ACCEPT_ ALL — 接受所有新玩家会话。
-
DENY_ ALL — 拒绝所有新玩家会话。
必需:是
-
返回值
返回由成功或失败组成的通用结果,并显示错误消息。