本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SDK适用于虚幻引擎的 Amazon GameLift 服务器:操作
使用亚马逊 GameLift 服务器虚幻引SDK用,将你的多人游戏集成到亚马逊托管 GameLift。有关集成过程的指导,请参阅将 Amazon GameLift 添加到您的游戏服务器。
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 服务为响应 Amazon SDK亚马逊 GameLift API行动号召而颁发的唯一编号CreatePlayerSession。连接到服务器进程时,游戏客户端会引用此 ID。
类型:FString
必需:是
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
ActivateGameSession()
通知 Amazon GameLift 服务服务器进程已激活游戏会话,现在可以接收玩家连接了。此操作应作为 onStartGameSession()
回调函数的一部分,在所有游戏会话初始化已完成之后调用。
语法
FGameLiftGenericOutcome ActivateGameSession()
参数
此操作没有参数。
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
DescribePlayerSessions()
检索玩家会话数据,包括设置、会话元数据和玩家数据。使用此操作获取单个玩家会话的信息、游戏会话中所有玩家会话的信息或者与单个玩家 ID 相关联的所有玩家会话的信息。
语法
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
参数
- describePlayerSessions请求
-
FDescribePlayerSessionsRequest 对象描述要检索的玩家会话。
必需:是
返回值
如果成功,将返回一个 FDescribePlayerSessionsRequest 对象,包含一组与请求参数相匹配的玩家会话对象。玩家会话对象的结构与 Amazon SDK Amazon GameLift API PlayerSession数据类型相同。
GetGameSessionId()
检索当前由服务器进程托管的游戏会话的 ID (如果服务器进程处于活动状态)。
语法
FGameLiftStringOutcome GetGameSessionId()
参数
此操作没有参数。
返回值
如果成功,以 FGameLiftStringOutcome
对象返回游戏会话 ID。如果不成功,将返回错误消息。
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 服务为响应 Amazon SDK亚马逊 GameLift API行动号召而颁发的唯一编号CreatePlayerSession。连接到服务器进程时,游戏客户端会引用此 ID。
类型:FString
必需:是
返回值
返回由成功或失败组成的通用结果,并显示错误消息。
StartMatchBackfill()
发送请求,要求在使用创建的游戏会话中为空缺老虎机寻找新玩家 FlexMatch。另请参阅 Amazon SDK操作 StartMatchBackfill()。通过此操作,托管游戏会话的游戏服务器进程可以发出匹配回填请求。了解有关 FlexMatch 回填功能的更多信息。
此操作为异步操作。如果成功匹配了新玩家,Amazon GameLift 服务将使用回调函数提供更新的匹配器数据OnUpdateGameSession()
。
服务器进程每次只能具有一个活动的匹配回填请求。要发送新请求,请先调用 StopMatchBackfill() 以取消原始请求。
语法
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
参数
- FStartMatchBackfillRequest
-
一个 FStartMatchBackfillRequest 对象,用于传递以下信息:
-
要分配给回填请求的票证 ID。此信息是可选的;如果未提供身份证,Amazon GameLift 将自动生成一个。
-
要将请求发送到的对战构建器。完整配置ARN是必需的。可从游戏会话的对战构建器数据中获得此值。
-
正在进行回填的游戏会话的 ID。
-
游戏会话的当前玩家的可用对战数据。
必需:是
-
返回值
如果成功,将返回对战回填票证作为 FGameLiftStringOutcome
对象。如果不成功,将返回错误消息。可以使用 Amazon SDK操作 DescribeMatchmaking() 跟踪票证状态。
StopMatchBackfill()
取消使用 StartMatchBackfill() 创建的活动对战回填请求。另请参阅 Amazon 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 — 拒绝所有新玩家会话。
必需:是
-
返回值
返回由成功或失败组成的通用结果,并显示错误消息。