Amazon GameLift server SDK (Unreal) reference: Data types - Amazon GameLift

Amazon GameLift server SDK (Unreal) reference: Data types

You can use this Amazon GameLift Unreal server SDK reference to help you prepare your multiplayer game for use with Amazon GameLift. For details about the integration process, see Add Amazon GameLift to your game server and for information on using the Unreal SDK server plugin, see Integrate Amazon GameLift into an Unreal Engine project.

Note

This topic describes the Amazon GameLift C++ API that you can use when you build for the Unreal Engine. Specifically, this documentation applies to code that you compile with the -DBUILD_FOR_UNREAL=1 option.

FProcessParameters

This data type contains the set of parameters sent to Amazon GameLift in a ProcessReady().

Properties

Description
LogParameters An object with directory paths to files that are generated during a game session. Amazon GameLift copies and stores the files for future access.

Type: TArray<FString>

Required: No

OnHealthCheck The callback function that Amazon GameLift invokes to request a health status report from the server process. Amazon GameLift calls this function every 60 seconds and waits 60 seconds for a response. The server process returns TRUE if healthy, FALSE if not healthy. If no response is returned, Amazon GameLift records the server process as not healthy.

This property is a delegate function defined as DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck);

Type: FOnHealthCheck

Required: No

OnProcessTerminate The callback function that Amazon GameLift invokes to force the server process to shut down. After calling this function, Amazon GameLift waits 5 minutes for the server process to shut down and respond with a ProcessEnding() call before it shuts down the server process.

Type: FSimpleDelegate

Required: Yes

OnStartGameSession The callback function that Amazon GameLift invokes to activate a new game session. Amazon GameLift calls this function in response to a client request CreateGameSession. The callback function passes a GameSession object.

This property is a delegate function defined as DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);

Type: FOnStartGameSession

Required: Yes

OnUpdateGameSession The callback function that Amazon GameLift invokes to pass an updated game session object to the server process. Amazon GameLift calls this function when a match backfill request has been processed to provide updated matchmaker data. It passes a GameSession object, a status update (updateReason), and the match backfill ticket ID.

This property is a delegate function defined as DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);

Type: FOnUpdateGameSession

Required: No

Port The port number the server process listens on for new player connections. The value must fall into the port range configured for any fleet deploying this game server build. This port number is included in game session and player session objects, which game sessions use when connecting to a server process.

Type: int

Required: Yes

UpdateGameSession

This data type updates to a game session object, which includes the reason that the game session was updated and the related backfill ticket ID if backfill is used to fill player sessions in the game session.

Properties Description
GameSession A GameSession object. The GameSession object contains properties describing a game session.

Type: Aws::GameLift::Server::GameSession

Required: No

UpdateReason The reason that the game session is being updated.

Type: enum class UpdateReason

  • MATCHMAKING_DATA_UPDATED

  • BACKFILL_FAILED

  • BACKFILL_TIMED_OUT

  • BACKFILL_CANCELLED

Required: No

BackfillTicketId The ID of the backfill ticket attempting to update the game session.

Type: char[]

Required: No

GameSession

This data type provides details of a game session.

Properties Description
GameSessionId

A unique identifier for the game session. A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.

Type: char[]

Required: No

Name

A descriptive label of the game session.

Type: char[]

Required: No

FleetId

A unique identifier for the fleet that the game session is running on.

Type: char[]

Required: No

MaximumPlayerSessionCount

The maximum number of player connections to the game session.

Type: int

Required: No

Port

The port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

Type: int

Required: No

IpAddress

The IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

Type: char[]

Required: No

GameSessionData

A set of custom game session properties, formatted as a single string value.

Type: char[]

Required: No

MatchmakerData

Information about the matchmaking process that was used to create the game session, in JSON syntax, formatted as a string. In addition to the matchmaking configuration used, it contains data on all players assigned to the match, including player attributes and team assignments.

Type: char[]

Required: No

GameProperties

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed with a request to start a new game session.

Type: GameProperty[]

Required: No

DnsName

The DNS identifier assigned to the instance that's running the game session. Values have the following format:

  • TLS-enabled fleets: <unique identifier>.<region identifier>.amazongamelift.com.

  • Non-TLS-enabled fleets: ec2-<unique identifier>.compute.amazonaws.com.

When connecting to a game session that's running on a TLS-enabled fleet, you must use the DNS name, not the IP address.

Type: char[]

Required: No

FServerParameters

Information used to maintain the connection between an Amazon GameLift Anywhere server and the Amazon GameLift service. This information is used when launching new server processes with InitSDK(). For servers hosted on Amazon GameLift managed EC2 instances, use an empty object.

Properties Description
webSocketUrl

The GameLiftServerSdkEndpoint Amazon GameLift returns when you RegisterCompute for a Amazon GameLift Anywhere compute resource.

Type: char[]

Required: Yes

processId

A unique identifier registered to the server process hosting your game.

Type: char[]

Required: Yes

hostId The HostID is the ComputeName used when you registered your compute. For more information see, RegisterCompute.

Type: char[]

Required: Yes

fleetId The unique identifier of the fleet that the compute is registered to. For more information see, RegisterCompute.

Type: char[]

Required: Yes

authToken The authentication token generated by Amazon GameLift that authenticates your server to Amazon GameLift. For more information see, GetComputeAuthToken.

Type: char[]

Required: Yes

FStartMatchBackfillRequest

Information used to create a matchmaking backfill request. The game server communicates this information to Amazon GameLift in a StartMatchBackfill() call.

Properties Description
GameSessionArn

A unique game session identifier. The API operation GetGameSessionId returns the identifier in ARN format.

Type: char[]

Required: Yes

MatchmakingConfigurationArn

A unique identifier, in the form of an ARN, for the matchmaker to use for this request. The matchmaker ARN for the original game session is in the game session object in the matchmaker data property. Learn more about matchmaker data in Work with matchmaker data.

Type: char[]

Required: Yes

Players

A set of data representing all players who are in the game session. The matchmaker uses this information to search for new players who are good matches for the current players.

Type: TArray<FPlayer>

Required: Yes

TicketId

A unique identifier for a matchmaking or match backfill request ticket. If you don't provide a value, Amazon GameLift generates one. Use this identifier to track the match backfill ticket status or cancel the request if needed.

Type: char[]

Required: No

FPlayer

This data type represents a player in matchmaking. When starting a matchmaking request, a player has a player ID, attributes, and possibly latency data. Amazon GameLift adds team information after a match is made.

Properties Description
LatencyInMS

A set of values expressed in milliseconds that indicate the amount of latency that a player experiences when connected to a location.

If this property is used, the player is only matched for locations listed. If a matchmaker has a rule that evaluates player latency, players must report latency to be matched.

Type: TMap>FString, int32<

Required: No

PlayerAttributes

A collection of key:value pairs containing player information for use in matchmaking. Player attribute keys must match the PlayerAttributes used in a matchmaking rule set.

For more information about player attributes, see AttributeValue.

Type: TMap>FString, FAttributeValue<

Required: No

PlayerId

A unique identifier for a player.

Type: std::string

Required: No

Team

The name of the team that the player is assigned to in a match. You define team name in the matchmaking rule set.

Type: FString

Required: No

FGameLiftDescribePlayerSessionsRequest

An object that specifies which player sessions to retrieve. The server process provides this information with a DescribePlayerSessions() call to Amazon GameLift.

Properties Description
GameSessionId

A unique game session identifier. Use this parameter to request all player sessions for the specified game session.

Game session ID format is FString. The GameSessionID is a custom ID string or a

Type: std::string

Required: No

PlayerSessionId

The unique identifier for a player session. Use this parameter to request a single specific player session.

Type: FString

Required: No

PlayerId

The unique identifier for a player. Use this parameter to request all player sessions for a specific player. See Generate player IDs.

Type: FString

Required: No

PlayerSessionStatusFilter

The player session status to filter results on. Possible player session statuses include:

  • RESERVED – The player session request was received, but the player hasn't connected to the server process or been validated.

  • ACTIVE – The player was validated by the server process and is connected.

  • COMPLETED – The player connection dropped.

  • TIMEDOUT – A player session request was received, but the player didn't connect or wasn't validated within the time-out limit (60 seconds).

Type: FString

Required: No

NextToken

The token indicating the start of the next page of results. To specify the start of the result set, don't provide a value. If you provide a player session ID, this parameter is ignored.

Type: FString

Required: No

Limit

The maximum number of results to return. If you provide a player session ID, this parameter is ignored.

Type: int

Required: No

FStopMatchBackfillRequest

Information used to cancel a matchmaking backfill request. The game server communicates this information to Amazon GameLift service in a StopMatchBackfill() call.

Properties Description
GameSessionArn

A unique game session identifier of the request being canceled.

Type: FString

Required: Yes

MatchmakingConfigurationArn

A unique identifier of the matchmaker this request was sent to.

Type: FString

Required: Yes

TicketId

A unique identifier of the backfill request ticket to be canceled.

Type: FString

Required: Yes

FAttributeValue

Use these values in FPlayer attribute key-value pairs. This object lets you specify an attribute value using any of the valid data types: string, number, string array, or data map. Each AttributeValue object can use only one of the available properties.

Properties Description
attrType

Specifies the type of attribute value.

Type: An FAttributeType enum value.

Required: No

S

Represents a string attribute value.

Type: FString

Required: No

N

Represents a numeric attribute value.

Type: double

Required: No

SL

Represents an array of string attribute values.

Type: TArray<FString>

Required: No

SDM

Represents a dictionary of string keys and double values.

Type: TMap<FString, double>

Required: No

FGameLiftGetFleetRoleCredentialsRequest

This data type provides role credentials that extend limited access to your AWS resources to the game server. For more information see, Set up an IAM service role for Amazon GameLift.

Properties Description
RoleArn The Amazon Resource Name (ARN) of the service role that extends limited access to your AWS resources.

Type: FString

Required: No

RoleSessionName The name of the session describing the use of the role credentials.

Type: FString

Required: No

FGameLiftLongOutcome

This data type results from an action and produces an object with the following properties:

Properties Description
Result

The result of the action.

Type: long

Required: No

ResultWithOwnership

The result of the action, cast as an rvalue, so that the calling code can take ownership of the object.

Type: long&&

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGameLiftStringOutcome

This data type results from an action and produces an object with the following properties:

Properties Description
Result

The result of the action.

Type: FString

Required: No

ResultWithOwnership

The result of the action, cast as an rvalue, so that the calling code can take ownership of the object.

Type: FString&&

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGameLiftDescribePlayerSessionsOutcome

This data type results from an action and produces an object with the following properties:

Properties Description
Result

The result of the action.

Type: FGameLiftDescribePlayerSessionsResult

Required: No

ResultWithOwnership

The result of the action, cast as an rvalue, so that the calling code can take ownership of the object.

Type: FGameLiftDescribePlayerSessionsResult&&

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGameLiftDescribePlayerSessionsResult

Properties Description
PlayerSessions

Type: TArray<FGameLiftPlayerSession>

Required: Yes

NextToken

The token indicating the start of the next page of results. To specify the start of the result set, don't provide a value. If you provide a player session ID, this parameter is ignored.

Type: FString

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGenericOutcome

This data type results from an action and produces an object with the following properties:

Properties Description
Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGameLiftPlayerSession

Properties Description
CreationTime

Type: long

Required: Yes

FleetId

Type: FString

Required: Yes

GameSessionId

Type: FString

Required: Yes

IpAddress

Type: FString

Required: Yes

PlayerData

Type: FString

Required: Yes

PlayerId

Type: FString

Required: Yes

PlayerSessionId

Type: FString

Required: Yes

Port

Type: int

Required: Yes

Status

Type: A PlayerSessionStatus enum.

Required: Yes

TerminationTime

Type: long

Required: Yes

DnsName

Type: FString

Required: Yes

FGameLiftGetComputeCertificateOutcome

This data type results from an action and produces an object with the following properties:

Properties Description
Result

The result of the action.

Type: FGameLiftGetComputeCertificateResult

Required: No

ResultWithOwnership

The result of the action, cast as an rvalue, so that the calling code can take ownership of the object.

Type: FGameLiftGetComputeCertificateResult&&

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGameLiftGetComputeCertificateResult

The path to the TLS certificate on your compute and the compute's host name.

Properties Description
CertificatePath

Type: FString

Required: Yes

ComputeName

Type: FString

Required: Yes

FGameLiftGetFleetRoleCredentialsOutcome

This data type results from an action and produces an object with the following properties:

Properties Description
Result

The result of the action.

Type: FGetFleetRoleCredentialsResult

Required: No

ResultWithOwnership

The result of the action, cast as an rvalue, so that the calling code can take ownership of the object.

Type: FGameLiftGetFleetRoleCredentialsResult&&

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: FGameLiftError

Required: No

FGetFleetRoleCredentialsResult

Properties Description
AccessKeyId

The access key ID to authenticate and provide access to your AWS resources.

Type: FString

Required: No

AssumedRoleId

The ID of the user that the service role belongs to.

Type: FString

Required: No

AssumedRoleUserArn

The Amazon Resource Name (ARN) of the user that the service role belongs to.

Type: FString

Required: No

Expiration

The amount of time until your session credentials expire.

Type: FDateTime

Required: No

SecretAccessKey

The secret access key ID for authentication.

Type: FString

Required: No

SessionToken

A token to identify the current active session interacting with your AWS resources.

Type: FString

Required: No

Success

Whether the action was successful or not.

Type: bool

Required: Yes

Error

The error that occurred if the action was unsuccessful.

Type: GameLiftError

Required: No

FGameLiftError

Properties Description
ErrorType

The type of error.

Type: A GameLiftErrorType enum.

Required: No

ErrorName

The name of the error.

Type: std::string

Required: No

ErrorMessage

The error message.

Type: std::string

Required: No

Enums

Enums defined for the Amazon GameLift server SDK (Unreal) are defined as follows:

FAttributeType
  • NONE

  • STRING

  • DOUBLE

  • STRING_LIST

  • STRING_DOUBLE_MAP

GameLiftErrorType

String value indicating the error type. Valid values include:

  • SERVICE_CALL_FAILED – A call to an AWS service has failed.

  • LOCAL_CONNECTION_FAILED – The local connection to Amazon GameLift failed.

  • NETWORK_NOT_INITIALIZED – The network has not been initialized.

  • GAMESESSION_ID_NOT_SET – The game session ID has not been set.

  • BAD_REQUEST_EXCEPTION

  • INTERNAL_SERVICE_EXCEPTION

  • ALREADY_INITIALIZED – The Amazon GameLift Server or Client has already been initialized with Initialize().

  • FLEET_MISMATCH – The target fleet does not match the fleet of a gameSession or playerSession.

  • GAMELIFT_CLIENT_NOT_INITIALIZED – The Amazon GameLift client has not been initialized.

  • GAMELIFT_SERVER_NOT_INITIALIZED – The Amazon GameLift server has not been initialized.

  • GAME_SESSION_ENDED_FAILED – The Amazon GameLift Server SDK could not contact the service to report the game session ended.

  • GAME_SESSION_NOT_READY – The Amazon GameLift Server Game Session was not activated.

  • GAME_SESSION_READY_FAILED – The Amazon GameLift Server SDK could not contact the service to report the game session is ready.

  • INITIALIZATION_MISMATCH – A client method was called after Server::Initialize(), or vice versa.

  • NOT_INITIALIZED – The Amazon GameLift Server or Client has not been initialized with Initialize().

  • NO_TARGET_ALIASID_SET – A target aliasId has not been set.

  • NO_TARGET_FLEET_SET – A target fleet has not been set.

  • PROCESS_ENDING_FAILED – The Amazon GameLift Server SDK could not contact the service to report the process is ending.

  • PROCESS_NOT_ACTIVE – The server process is not yet active, not bound to a GameSession, and cannot accept or process PlayerSessions.

  • PROCESS_NOT_READY – The server process is not yet ready to be activated.

  • PROCESS_READY_FAILED – The Amazon GameLift Server SDK could not contact the service to report the process is ready.

  • SDK_VERSION_DETECTION_FAILED – SDK version detection failed.

  • STX_CALL_FAILED – A call to the XStx server backend component has failed.

  • STX_INITIALIZATION_FAILED – The XStx server backend component has failed to initialize.

  • UNEXPECTED_PLAYER_SESSION – An unregistered player session was encountered by the server.

  • WEBSOCKET_CONNECT_FAILURE

  • WEBSOCKET_CONNECT_FAILURE_FORBIDDEN

  • WEBSOCKET_CONNECT_FAILURE_INVALID_URL

  • WEBSOCKET_CONNECT_FAILURE_TIMEOUT

  • WEBSOCKET_RETRIABLE_SEND_MESSAGE_FAILURE – Retriable failure to send a message to the GameLift Service WebSocket.

  • WEBSOCKET_SEND_MESSAGE_FAILURE – Failure to send a message to the GameLift Service WebSocket.

  • MATCH_BACKFILL_REQUEST_VALIDATION – Validation of the request failed.

  • PLAYER_SESSION_REQUEST_VALIDATION – Validation of the request failed.

EPlayerSessionCreationPolicy

String value indicating whether the game session accepts new players. Valid values include:

  • ACCEPT_ALL – Accept all new player sessions.

  • DENY_ALL – Deny all new player sessions.

  • NOT_SET – The game session is not set to accept or deny new player sessions.

EPlayerSessionStatus
  • ACTIVE

  • COMPLETED

  • NOT_SET

  • RESERVED

  • TIMEDOUT