适用于 Amazon GameLift Servers 的 C++(Unreal)服务器 SDK 5.x – 数据类型 - Amazon GameLift Servers

适用于 Amazon GameLift Servers 的 C++(Unreal)服务器 SDK 5.x – 数据类型

使用 Amazon GameLift Servers Unreal 服务器 SDK 5.x 参考,帮助您为多人游戏准备好与 Amazon GameLift Servers 配合使用。有关集成过程的详细信息,请参阅借助服务器 SDK 将 Amazon GameLift Servers 添加到游戏服务器。如果您使用的是适用于 Unreal 的 Amazon GameLift Servers 插件,还可以参阅Amazon GameLift Servers适用于 Unreal Engine 的插件

注意

本主题介绍在为 Unreal Engine 构建时可以使用的 Amazon GameLift Servers C++ API。具体而言,本文档适用于使用该-DBUILD_FOR_UNREAL=1选项编译的代码。

适用于 Amazon GameLift Servers 的 C++(Unreal)服务器 SDK 5.x – 操作

FProcessParameters

此数据类型包含一组在 ProcessReady() 中发送到 Amazon GameLift Servers 的参数。

属性

描述
LogParameters 一个对象,其中包含游戏会话期间生成的文件的目录路径。Amazon GameLift Servers 会复制并存储这些文件,以便将来访问。

类型:TArray<FString>

必需:否

onHealthCheck Amazon GameLift Servers 为向服务器进程请求运行状况报告而调用的回调函数。Amazon GameLift Servers 每隔 60 秒调用此函数一次,并等待 60 秒以获取响应。TRUE如果运行状况良好,则服务器进程会返回,FALSE如果不健康,则返回。如果没有返回任何响应,Amazon GameLift Servers 会将服务器进程记录为运行状况不佳。

此属性是一个委托函数,定义为DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck);

类型:FOnHealthCheck

必需:否

onProcessTerminate Amazon GameLift Servers 为强制关闭服务器进程而调用的回调函数。调用此函数之后,Amazon GameLift Servers 会等待 5 分钟,以确保服务器进程关闭并通过 ProcessEnding() 调用作出响应,随后才会终止该服务器进程。

类型:FSimpleDelegate

必需:是

onStartGameSession Amazon GameLift Servers 为激活新游戏会话而调用的回调函数。Amazon GameLift Servers 调用此函数以响应客户端请求 CreateGameSession。回调函数将传递一个 GameSession 对象。

此属性是一个委托函数,定义为 DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);

类型:FOnStartGameSession

必需:是

onUpdateGameSession Amazon GameLift Servers 为向服务器进程传递更新的游戏会话对象而调用的回调函数。当对战回填请求处理完毕时,Amazon GameLift Servers 会调用此函数以提供更新的对战构建器数据。它将传递一个 GameSession 对象、一个状态更新(updateReason)以及对战回填票证 ID。

此属性是一个委托函数,定义为 DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);

类型:FOnUpdateGameSession

必需:否

端口 服务器进程用于侦听新玩家连接的端口号。该值必须在部署此游戏服务器构建的任意实例集上所配置的端口范围内。此端口号包含在游戏会话和玩家会话对象中,游戏会话在连接到服务器进程时会使用该端口号。

类型:int

必需:是

UpdateGameSession

此数据类型更新为游戏会话对象,其中包括更新游戏会话的原因以及相关的回填票证 ID(如果使用回填来填充游戏会话中的玩家会话)。

属性 描述
GameSession 一个 GameSession 对象。该GameSession对象包含描述游戏会话的属性。

类型:Aws::GameLift::Server::GameSession

必需:否

更新原因 更新游戏会话的原因。

类型:enum class UpdateReason

  • 对战数据已更新

  • 回填失败

  • BACKFILL_TIMED_OUT

  • 回填已取消

必需:否

backfilltTicketID 尝试更新游戏会话的回填票证的 ID。

类型:char[]

必需:否

GameSession

此数据类型提供游戏会话的详细信息。

属性 描述
GameSessionId

会话的唯一标识符。游戏会话ARN具有以下格式:. arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>

类型:char[]

必需:否

名称

游戏会话的描述性标签。

类型:char[]

必需:否

FleetId

运行游戏会话的集的唯一标识符。

类型:char[]

必需:否

最大玩家会话数

机群中已连接到游戏会话的玩家数量。

类型:int

必需:否

端口

游戏会话的端口号。要连接到 Amazon GameLift Servers 游戏服务器,应用程序需要 IP 地址和端口号。

类型:int

必需:否

IpAddress

游戏会话的 IP 地址。要连接到 Amazon GameLift Servers 游戏服务器,应用程序需要 IP 地址和端口号。

类型:char[]

必需:否

GameSessionData

一组自定义游戏会话属性,采用单个字符串值格式。

类型:char[]

必需:否

MatchmakerData

有关用于创建游戏会话的对战过程的信息,采用 JSON 语法,格式为字符串。除了使用的对战配置外,它还包含分配到对战的所有玩家的数据,包括玩家属性和队伍分配。

类型:char[]

必需:否

GameProperties

游戏会话的一组自定义属性,采用键值对格式。这些属性将通过启动新游戏会话的请求传递到游戏服务器进程。

类型:GameProperty[]

必需:否

DnsName

分配给正在运行游戏会话的实例的 DNS 标识符。CRL 采用以下格式:

  • 支持 TLS 的实例集:. <unique identifier>.<region identifier>.amazongamelift.com

  • 未启用 TLS 的实例集:. ec2-<unique identifier>.compute.amazonaws.com

连接到在支持 TLS 的队列上运行的游戏会话时,必须使用 DNS 名称,而不是 IP 地址。

类型:char[]

必需:否

fServer参数

用于维护 Amazon GameLift Servers Anywhere 服务器与 Amazon GameLift Servers 服务之间连接的信息。使用启动新的服务器进程时会使用此信息InitSDK()。对于托管在 Amazon GameLift Servers 托管式 EC2 实例上的服务器,请使用空对象。

属性 描述
WebSockeTurl

当您为 Amazon GameLift Servers Anywhere 计算资源调用 RegisterCompute 时,GameLiftServerSdkEndpoint Amazon GameLift Servers 会返回结果。

类型:char[]

必需:是

ProcessID

注册到托管游戏的服务器进程的唯一标识符。

类型:char[]

必需:是

hostId HostID是在您注册计算机时ComputeName使用的。有关更多信息,请参阅 Register Compute。

类型:char[]

必需:是

FleetId 计算注册到的实例集的唯一标识符。有关更多信息,请参阅 Register Compute。

类型:char[]

必需:是

AuthToken 由 Amazon GameLift Servers 生成的身份验证令牌,用于向 Amazon GameLift Servers 对您的服务器进行身份验证。有关更多信息,请参阅 getComputeaut hToken。

类型:char[]

必需:是

FStartMatchBackfillRequest

用于创建对战回填请求的信息。游戏服务器通过调用 StartMatchBackfill() 将这些信息传达给 Amazon GameLift Servers。

属性 描述
GameSessionArn

游戏会话的唯一标识符。此 API 操作 GetGameSessionId 返回采用 ARN 格式的标识符。

类型:char[]

必需:是

MatchmakingConfigurationArn

采用 ARN 格式的唯一标识符,适用于用于此请求的对战构建器。要查找用于创建原始游戏会话的对战构建器,请查看对战构建器数据属性中的游戏会话对象。在使用对战构建器数据中了解有关对战构建器数据的更多信息。

类型:char[]

必需:是

玩家

一组表示当前正在游戏会话中的所有玩家的数据。对战构建器使用此信息搜索与当前玩家非常匹配的新玩家。

类型:TArray<FPlayer>

必需:是

TicketId

对战或匹配回填请求票证的唯一标识符。如果不提供值,Amazon GameLift Servers 会生成值。使用此标识符可跟踪对战回填票证状态或取消请求(如需要)。

类型:char[]

必需:否

fPlayer

此数据类型代表对战中的玩家。启动对战请求时,玩家会有玩家 ID、属性数据以及可能的延迟数据。对战结束后,Amazon GameLift Servers 会添加团队信息。

属性 描述
Latencyinms

一组以毫秒为单位的值,表示玩家在连接到某个位置时所经历的延迟量。

如果使用此属性,则仅匹配列出的位置的玩家。如果对战构建器具有评估玩家延迟的规则,玩家必须报告延迟才能进行匹配。

类型:TMap>FString, int32<

必需:否

玩家属性

键/值对的集合,其中包含用于对战的玩家信息。玩家属性键必须与对战规则集中使用的玩家属性相匹配。

有关玩家属性的更多信息,请参阅 Atri buteValue

类型:TMap>FString, FAttributeValue<

必需:否

PlayerId

玩家的唯一标识符。

类型:std::string

必需:否

Team

玩家在对战中被分配到的团队的名称。在对战规则集中定义团队名称。

类型:FString

必需:否

fgameLiftDescribePlayer 会话请求

一个对象,用于指定要检索哪些玩家会话。服务器进程通过向 Amazon GameLift Servers 调用 DescribePlayerSessions() 来提供此信息。

属性 描述
GameSessionId

游戏会话的唯一标识符。使用此参数可请求指定游戏会话的所有玩家会话。

游戏会话 ID 的格式为FStringGameSessionID是自定义 ID 字符串或

类型:std::string

必需:否

PlayerSessionId

玩家会话的唯一标识符。使用此参数请求单个特定的玩家会话。

类型:FString

必需:否

PlayerId

玩家的唯一标识符。使用此参数可请求指定游戏会话的所有玩家会话。请参阅生成玩家 ID

类型:FString

必需:否

PlayerSessionStatusFilter

用于筛选结果的玩家会话状态。可能的玩家会话状态包括以下内容:

  • RESERVED - 已收到玩家会话请求,但玩家尚未连接到服务器进程和/或进行验证。

  • ACTIVE - 服务器进程已验证玩家,当前已连接。

  • COMPLETED - 玩家连接已断开。

  • TIMEDOUT - 收到了玩家会话请求,但玩家未连接和/或在超时限制 (60 秒) 内验证。

类型:FString

必需:否

NextToken

令牌指示结果的下一个连续页面的开头。要指定结果集的开始,请不要指定值。如果指定玩家会话 ID,将忽略此参数。

类型:FString

必需:否

限制

要返回的最大结果数量。如果指定玩家会话 ID,将忽略此参数。

类型:int

必需:否

FStopMatchBackfillRequest

用于取消对战回填请求的信息。游戏服务器通过调用 StopMatchBackfill() 将此信息传达给 Amazon GameLift Servers 服务。

属性 描述
GameSessionArn

与被取消的请求关联的唯一游戏会话标识符。

类型:FString

必需:是

MatchmakingConfigurationArn

此请求发送到的对战构建器的唯一标识符。

类型:FString

必需:是

TicketId

要取消的回填请求票证的唯一标识符。

类型:FString

必需:是

f属性值

fPlayer属性密钥-值对中使用。此对象允许您使用任何有效的数据类型来指定属性值:字符串、数字、字符串数组或数据映射。每个AttributeValue对象只能使用一个可用属性。

属性 描述
属性类型

指定属性值的类型。

类型:一个 FAttributeType 枚举值。

必需:否

S

表示字符串属性值。

类型:FString

必需:否

N

表示属性值。

类型:double

必需:否

sl

表示字符串属性值的数组。

类型:TArray<FString>

必需:否

SDM

表示字符串键和双精度值的字典。

类型:TMap<FString, double>

必需:否

fgameLiftgetFleetRole 凭证申请

此数据类型提供角色凭证,可将对AWS资源的有限访问权限扩展到游戏服务器。有关更多信息,请参阅为 Amazon GameLift Servers 设置 IAM 服务角色

属性 描述
RoleArn 可以扩展对资源的有限访问权限的服务角色的 Amazon 资源名称(ARN)。AWS

类型:FString

必需:否

roleSessionName 描述角色证书使用情况的会话名称。

类型:FString

必需:否

fgameLiftLong结果

此数据类型由操作生成,并生成具有以下属性的对象:

属性 描述
结果

操作的结果。

类型:long

必需:否

带所有权的结果

操作的结果,转换为右值,以便调用代码可以拥有该对象的所有权。

类型:long&&

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fgameLiftString结果

此数据类型由操作生成,并生成具有以下属性的对象:

属性 描述
结果

操作的结果。

类型:FString

必需:否

带所有权的结果

操作的结果,转换为右值,以便调用代码可以拥有该对象的所有权。

类型:FString&&

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fgameLiftDescribePlayerSessions 结果

此数据类型由操作生成,并生成具有以下属性的对象:

属性 描述
结果

操作的结果。

类型:fgameLiftDescribePlayer 会话结果

必需:否

带所有权的结果

操作的结果,转换为右值,以便调用代码可以拥有该对象的所有权。

类型:FGameLiftDescribePlayerSessionsResult&&

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fgameLiftDescribePlayer 会话结果

属性 描述
玩家会话

类型:TArray<FGameLiftPlayerSession>

必需:是

NextToken

令牌指示结果的下一个连续页面的开头。要指定结果集的开始,请不要指定值。如果指定玩家会话 ID,将忽略此参数。

类型:FString

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fGenericOutst

此数据类型由操作生成,并生成具有以下属性的对象:

属性 描述
成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fgameLiftPlayerSession

属性 描述
CreationTime

类型:long

必需:是

FleetId

类型:FString

必需:是

GameSessionId

类型:FString

必需:是

IpAddress

类型:FString

必需:是

PlayerData

类型:FString

必需:是

PlayerId

类型:FString

必需:是

PlayerSessionId

类型:FString

必需:是

端口

类型:int

必需:是

Status

类型:PlayerSessionStatus枚举

必需:是

终止时间

类型:long

必需:是

DnsName

类型:FString

必需:是

fgameLiftgetCompute 证书结果

此数据类型由操作生成,并生成具有以下属性的对象:

属性 描述
结果

操作的结果。

类型:fgameLiftget获取计算证书结果

必需:否

带所有权的结果

操作的结果,转换为右值,以便调用代码可以拥有该对象的所有权。

类型:FGameLiftGetComputeCertificateResult&&

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fgameLiftget获取计算证书结果

计算机上 TLS 证书的路径和计算机的主机名。

属性 描述
证书路径

类型:FString

必需:是

计算名称

类型:FString

必需:是

fgameLiftgetFleetRole 凭证结果

此数据类型由操作生成,并生成具有以下属性的对象:

属性 描述
结果

操作的结果。

类型:fgetFleetRole 凭证结果

必需:否

带所有权的结果

操作的结果,转换为右值,以便调用代码可以拥有该对象的所有权。

类型:FGameLiftGetFleetRoleCredentialsResult&&

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:fgameLift 错误

必需:否

fgetFleetRole 凭证结果

属性 描述
AccessKeyId

用于对您的AWS资源进行身份验证和提供访问权限的访问密钥 ID。

类型:FString

必需:否

假设角色ID

服务角色所属的用户 ID。

类型:FString

必需:否

假设角色UserRarn

用户应承担的角色的 Amazon 资源名称 (ARN)。

类型:FString

必需:否

过期

您的会话凭证到期之前的时间。

类型:FDateTime

必需:否

SecretAccessKey

指定 S3 验证的访问密钥 ID。

类型:FString

必需:否

SessionToken

用于识别与您的AWS资源交互的当前活动会话的令牌。

类型:FString

必需:否

成功

操作是否成功。

类型:bool

必需:是

错误

操作失败时发生的错误。

类型:GameLift 错误

必需:否

fgameLift 错误

属性 描述
ErrorType

错误的类型。

类型:GameLiftErrorType枚举

必需:否

错误名称

错误类型的名称。

类型:std::string

必需:否

ErrorMessage

错误消息。

类型:std::string

必需:否

枚举

为适用于 Amazon GameLift Servers(Unreal)的服务器 SDK 定义了以下枚举类型:

f属性类型
  • NONE

  • string

  • DOUBLE

  • 字符串列表

  • 字符串_DOUBLE_MAP

GameLift 错误类型

表示错误类型的字符串值。有效值包括:

  • SERVICE_CALL_FAILED – 对服务的调用失败。AWS

  • LOCAL_CONNECTION_FAILED – 与 Amazon GameLift Servers 的本地连接失败。

  • NETWORK_NOT_INITIALIZED – 网络尚未初始化

  • GAMESESSION_ID_NOT_SET – 尚未设置游戏会话 ID。

  • 错误的请求_异常

  • 内部服务异常

  • ALREADY_INITIALIZED – Amazon GameLift Servers 服务器或客户端已使用 Initialize() 进行初始化。

  • FLEET_MISMATCH – 目标实例集与 GameSession 或 PlayerSession 的实例集不匹配。

  • GAMELIFT_CLIENT_NOT_INITIALIZED – Amazon GameLift Servers 客户端尚未初始化。

  • GAMELIFT_SERVER_NOT_INITIALIZED – Amazon GameLift Servers 服务器尚未初始化。

  • GAME_SESSION_ENDED_FAILED – 适用于 Amazon GameLift Servers 的服务器 SDK 无法联系服务部门报告游戏会话已结束。

  • GAME_SESSION_NOT_READY – Amazon GameLift Servers 服务器游戏会话未激活。

  • GAME_SESSION_READY_FAILED – 适用于 Amazon GameLift Servers 的服务器 SDK 无法联系服务部门报告游戏会话已准备就绪。

  • INITI@@ ALIZATION_MISMATCH – 在 Server::In itialization () 之后调用了客户端方法,反之亦然。

  • NOT_INITIALIZED – Amazon GameLift Servers 服务器或客户端尚未使用 Initialize() 进行初始化。

  • NO_TARGET_ALIASID_SET – 尚未设置目标 AliasID。

  • NO_TARGET_FLEET_SET – 尚未设置目标实例集。

  • PROCESS_ENDING_FAILED – 适用于 Amazon GameLift Servers 的服务器 SDK 无法联系服务部门报告流程即将结束。

  • PROCESS_NOT_ACTI VE – 服务器进程尚未激活,未绑定到游戏会话,也无法接受或处理 PlayerSession。

  • PROCESS_NOT_READ Y – 服务器进程尚未准备好激活。

  • PROCESS_READY_FAILED – 适用于 Amazon GameLift Servers 的服务器 SDK 无法联系服务部门报告流程已准备就绪。

  • SDK_VERSION_DETECTION_FAILED – 软件开发工具包 版本检测失败。

  • STX_CALL_FAILED – 对 xstX 服务器后端组件的调用失败

  • STX_INITIALIZATION_FAILED – xSTX 服务器后端组件无法初始化

  • E@@ XPRENTED_PLAYER_SESSION – 服务器遇到了未注册的玩家会话

  • 网络套接字连接失败

  • 禁止网络套接字连接失败

  • WEBSOCKET_CONNECT_FAILURE_INVALID_UR

  • WEBSOCKET_CONNECT_FAILURE

  • WEBSOCKET_RETRIABLE_SEND_MESSAGE_FAILURE – 向 GameLift 服务 WebSocket 发送消息时可重试失败

  • WEBSOCKET_SEND_MESSAGE_FAILURE – 无法向 GameLift 服务 WebSocket 发送消息

  • MATCH_BACKFILL_REQUEST_VALIDATION – 请求验证失败

  • PLAYER_SESSION_REQUEST_VALIDATION – 请求验证失败

ePlayer 会话创建政策

用于指示游戏会话是否接受新玩家的字符串值。有效值包括:

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

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

  • NOT_SET – 游戏会话未设置为接受或拒绝新玩家会话。

ePlayer 会话状态
  • ACTIVE (处于活动状态

  • COMPLETED

  • NOT_SET

  • 预留

  • 超时