View a markdown version of this page

SDK 5.x per server C++ GameLift Server Amazon -- Azioni - GameLift Server Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SDK 5.x per server C++ GameLift Server Amazon -- Azioni

Usa il riferimento al server SDK 5.x per integrare il tuo gioco multiplayer con cui eseguire l'hosting. Amazon GameLift Servers Per indicazioni sul processo di integrazione, consulta. Add (Aggiungi) GameLift Server Amazon al tuo server di gioco con il server SDK

Nota

Questo argomento descrive l'API Amazon GameLift Servers C++ che puoi usare quando crei con la C++ Standard Library ()std. In particolare, questa documentazione si applica al codice compilato con l'opzione. -DDGAMELIFT_USE_STD=1

SDK 5.x per server C++ GameLift Server Amazon -- Tipi di dati

GetSdkVersion()

Restituisce il numero di versione corrente dell'SDK integrato nel processo del server.

Sintassi

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

Valore restituito

Se l'esito è positivo, restituisce la versione corrente dell'SDK come oggetto AwsStringOutcome. L'oggetto restituito include il numero di versione (esempio5.0.0). Se l'esito è negativo, verrà restituito un messaggio di errore.

Esempio

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

InitMetrics()

Inizializza il sistema di metriche per la raccolta e la segnalazione dei dati sulle prestazioni del server. Per ottenere risultati ottimali, chiama questo metodo prima per abilitare la raccolta delle metriche InitSDK() durante l'inizializzazione dell'SDK.

Sintassi

Aws::GameLift::GenericOutcome InitMetrics(); Aws::GameLift::GenericOutcome InitMetrics(const Aws::GameLift::Server::MetricsParameters &metricsParameters);

Parameters

MetricsParameters (facoltativo)

Parametri di configurazione per la raccolta delle metriche. Se non fornito, utilizza valori predefiniti che possono essere sovrascritti dalle variabili di ambiente.

Valore restituito

In caso di successo, restituisce un GenericOutcome oggetto che indica l'esito positivo. Se l'esito è negativo, verrà restituito un messaggio di errore.

Esempio

// Initialize with default parameters (uses environment variables if available) // Defaults: localhost:8125 for StatsD, localhost:8126 for crash reporter // FlushInterval: 10000ms, MaxPacketSize: 512 bytes Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::InitMetrics(); if (outcome.IsSuccess()) { // Metrics system initialized successfully } // Initialize with custom parameters Aws::GameLift::Server::MetricsParameters metricsParams("localhost", 8125, "crash-host", 8126, 5000, 1024); Aws::GameLift::GenericOutcome customOutcome = Aws::GameLift::Server::InitMetrics(metricsParams); if (customOutcome.IsSuccess()) { // Metrics system initialized with custom parameters }

InitCustomLogger()

Indirizza l'output del registro dell'SDK del server a un callback di registrazione personalizzato fornito dall'utente, al posto del file e della registrazione della console predefiniti. Usa questa operazione per integrare i log dell'SDK del server con il sistema di registrazione del tuo server di gioco. Ad esempio, un server di gioco Unreal Engine può indirizzare i log SDK attraverso il sistema di registrazione Unreal Engine (). UE_LOG

Per ottenere risultati ottimali, chiamate questa operazione prima InitSDK() in modo che il callback riceva la diagnostica di inizializzazione dell'SDK (configurazione della connessione, inizializzazione del logger ed errori) sin dall'inizio. InitSDK() Anche la chiamata dopo è sicura. InitCustomLogger() InitSDK() L'output del log passa alla richiamata da quel momento in poi. I messaggi registrati prima della chiamata vengono salvati nel logger predefinito.

È possibile chiamare questa operazione al massimo una volta. Le chiamate successive ALREADY_INITIALIZED vengono restituite e non modificano il logger già registrato.

Sintassi

Aws::GameLift::GenericOutcome InitCustomLogger(const Aws::GameLift::Server::CustomLoggerConfiguration &logParameters);

Parameters

CustomLoggerConfiguration

La configurazione del logger personalizzato, inclusa la funzione di callback del log, un puntatore di contesto opzionale per i dati utente e il livello minimo di registro da inviare. Il callback non deve esserenull; l'operazione rifiuta un callback con. null BAD_REQUEST_EXCEPTION

Valore restituito

In caso di successo, l'operazione restituisce un GenericOutcome oggetto che indica il successo. Se l'operazione fallisce, il risultato contiene un messaggio di errore con un codice di errore, ad esempio BAD_REQUEST_EXCEPTION quando il callback è in corso null o ALREADY_INITIALIZED quando un logger è già registrato.

Esempio

// Implement a log callback that forwards SDK log messages to your logging system. void OnGameLiftLog(Aws::GameLift::Server::LogLevel level, const char* message, void* userData) { // Route the message to your game server's logging system. // The message pointer is valid only for the duration of this call; copy it if you // need to retain it. std::cout << message << std::endl; } // Configure and initialize the custom logger before calling InitSDK. Aws::GameLift::Server::CustomLoggerConfiguration logParameters(OnGameLiftLog, nullptr, Aws::GameLift::Server::LogLevel::Info); Aws::GameLift::GenericOutcome loggerOutcome = Aws::GameLift::Server::InitCustomLogger(logParameters); if (loggerOutcome.IsSuccess()) { // Custom logger initialized successfully }

InitSDK()

Inizializza l'SDK Amazon GameLift Servers. Chiama questo metodo all'avvio prima di qualsiasi altra fase di inizializzazione correlata a. Amazon GameLift Servers Questa azione legge i parametri del server dall'ambiente host per impostare la comunicazione tra il processo del server di gioco e il Amazon GameLift Servers servizio. Utilizza un token di idempotenza, quindi puoi riprovare tranquillamente questa chiamata quando fallisce.

Se la build del server di gioco verrà distribuita senza l'Amazon GameLift ServersAgente a una flotta o a una flotta di container Amazon GameLift Servers Anywhere, chiama InitSDK() e specifica una serie di parametri del server.

Sintassi

Server::InitSDKOutcome Server::initSdkOutcome = InitSDK();

Valore restituito

Restituisce un Risultato ITSDK oggetto che indica se il processo server è pronto per la chiamataProcessReady().

Esempio

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK();

InitSDK()

Inizializza l'SDK Amazon GameLift Servers. Chiama questo metodo all'avvio prima di qualsiasi altra fase di inizializzazione correlata aAmazon GameLift Servers. Questa azione richiede una serie di parametri del server per impostare la comunicazione tra il processo del server di gioco e il Amazon GameLift Servers servizio. Utilizza un token di idempotenza, quindi puoi riprovare tranquillamente questa chiamata quando fallisce.

Se la build del server di gioco verrà distribuita a una flotta EC2 Amazon GameLift Servers gestita o a una flotta Amazon GameLift Servers Anywhere o a una flotta di container con l'Amazon GameLift ServersAgent, chiama senza parametri del server. InitSDK()

Sintassi

Server::InitSDKOutcome Server::initSdkOutcome = InitSDK(serverParameters);

Parameters

ServerParameters

Per inizializzare un server di gioco su una flotta Amazon GameLift Servers Anywhere, costruisci un ServerParameters oggetto con le seguenti informazioni:

  • L'URL WebSocket utilizzato per la connessione al tuo server di gioco.

  • L'ID del processo utilizzato per ospitare il tuo server di gioco.

  • L'ID del computer che ospita i processi del server di gioco.

  • L'ID del Amazon GameLift Servers parco macchine contenente il tuo computer Amazon GameLift Servers Anywhere.

  • Il token di autorizzazione generato dall'Amazon GameLift Serversoperazione.

Valore restituito

Restituisce un Risultato ITSDK oggetto che indica se il processo server è pronto per la chiamataProcessReady().

Nota

Se le chiamate a non InitSDK() riescono per le build di gioco distribuite alle flotte Anywhere, controlla il ServerSdkVersion parametro utilizzato durante la creazione della risorsa di compilazione. Devi impostare esplicitamente questo valore sulla versione SDK del server in uso. Il valore predefinito per questo parametro è 4.x, che non è compatibile. Per risolvere questo problema, crea una nuova build e distribuiscila in una nuova flotta.

Esempio

Amazon GameLift ServersEsempio ovunque

//Define the server parameters std::string websocketUrl = "wss://us-west-1.api.amazongamelift.com"; std::string processId = "PID1234"; std::string fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa"; std::string hostId = "HardwareAnywhere"; std::string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; Aws::GameLift::Server::Model::ServerParameters serverParameters = Aws::GameLift::Server::Model::ServerParameters(webSocketUrl, authToken, fleetId, hostId, processId); //Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK(serverParameters);

ProcessReady()

Notifica Amazon GameLift Servers che il processo del server è pronto per ospitare sessioni di gioco. Chiama questo metodo dopo averlo InitSDK() richiamato. Questo metodo deve essere chiamato solo una volta per processo.

Sintassi

GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters &processParameters);

Parameters

processParameters

Un oggetto ProcessParameters che comunica le informazioni seguenti sul processo del server:

  • Nomi dei metodi di callback implementati nel codice del server di gioco che il Amazon GameLift Servers servizio richiama per comunicare con il processo del server.

  • Numero di porta sulla quale è in ascolto il processo del server.

  • Percorso verso qualsiasi file specifico di una sessione di gioco che Amazon GameLift Servers deve acquisire e archiviare.

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Questo esempio illustra la chiamata ProcessReady() e le implementazioni della funzione delegata.

// Set parameters and call ProcessReady std::string serverLog("serverOut.log"); // Example of a log file written by the game server std::vector<std::string> logPaths; logPaths.push_back(serverLog); int listenPort = 9339; Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters( std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths) ); Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::ProcessReady(processReadyParameter); // Implement callback functions void Server::onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers); } void Server::onProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); } bool Server::onHealthCheck() { bool health; // complete health evaluation within 60 seconds and set health return health; }

ProcessReadyAsync()

Notifica al servizio Amazon GameLift Servers che il processo del server è pronto per l'hosting delle sessioni di gioco. Questo metodo deve essere chiamato dopo che il processo del server è pronto per ospitare una sessione di gioco. I parametri specificano i nomi delle funzioni di callback Amazon GameLift Servers da chiamare in determinate circostanze. Il codice del server di gioco deve implementare queste funzioni.

Questa chiamata è asincrona. Per effettuare una chiamata sincrona, utilizza ProcessReady(). Per ulteriori dettagli, consulta Inizializza il processo del server.

Sintassi

GenericOutcomeCallable ProcessReadyAsync( const Aws::GameLift::Server::ProcessParameters &processParameters);

Parameters

processParameters

Un oggetto ProcessParameters che comunica le informazioni seguenti sul processo del server:

  • Nomi dei metodi di callback implementati nel codice del server di gioco che il Amazon GameLift Servers servizio richiama per comunicare con il processo del server.

  • Numero di porta sulla quale è in ascolto il processo del server.

  • Percorso verso qualsiasi file specifico di una sessione di gioco che Amazon GameLift Servers deve acquisire e archiviare.

Obbligatorio: sì

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

// Set parameters and call ProcessReady std::string serverLog("serverOut.log"); // This is an example of a log file written by the game server std::vector<std::string> logPaths; logPaths.push_back(serverLog); int listenPort = 9339; Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters(std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths)); Aws::GameLift::GenericOutcomeCallable outcome = Aws::GameLift::Server::ProcessReadyAsync(processReadyParameter); // Implement callback functions void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers); } void onProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); } bool onHealthCheck() { // perform health evaluation and complete within 60 seconds return health; }

ProcessEnding()

Notifica Amazon GameLift Servers che il processo del server sta terminando. Chiama questo metodo dopo tutte le altre attività di pulizia (inclusa la chiusura della sessione di gioco attiva) e prima di terminare il processo. A seconda del risultatoProcessEnding(), il processo termina con successo (0) o errore (-1) e genera un evento relativo alla flotta. Se il processo termina con un errore, l'evento relativo alla flotta generato è. SERVER_PROCESS_TERMINATED_UNHEALTHY

Sintassi

Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding();

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Questo esempio chiama ProcessEnding() e Destroy() prima termina il processo del server con un codice di uscita di successo o errore.

Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding(); Aws::GameLift::Server::Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess()) { exit(0); } else { cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage(); exit(-1); }

ActivateGameSession()

Notifica Amazon GameLift Servers che il processo server ha attivato una sessione di gioco ed è ora pronto a ricevere le connessioni dei giocatori. Questa azione dovrebbe essere richiamata come parte della funzione di onStartGameSession() callback, dopo l'inizializzazione della sessione di gioco.

Sintassi

Aws::GameLift::GenericOutcome activateGameSessionOutcome = Aws::GameLift::Server::ActivateGameSession();

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Questo esempio mostra ActivateGameSession() call come parte della funzione di onStartGameSession() delega.

void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession) { // game-specific tasks when starting a new game session, such as loading map GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession(); }

UpdatePlayerSessionCreationPolicy()

Aggiorna la capacità della sessione di gioco corrente di accettare nuove sessioni giocatore. Una sessione di gioco può essere configurata per accettare o rifiutare tutte le nuove sessioni giocatore.

Sintassi

GenericOutcome UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy newPlayerSessionPolicy);

Parameters

giocatore CreationSessionPolicy

Tipo: valore PlayerSessionCreationPolicy enum.

Obbligatorio: sì

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Questo esempio definisce la policy di partecipazione alla sessione di gioco corrente per accettare tutti i giocatori.

Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy::ACCEPT_ALL);

GetGameSessionId()

Recupera l'ID della sessione di gioco ospitata dal processo del server attivo.

Per i processi inattivi che non vengono attivati durante una sessione di gioco, la chiamata restituisce un. GameLiftError

Sintassi

AwsStringOutcome GetGameSessionId()

Parameters

Questa operazione non prevede parametri.

Valore restituito

Se l'esito è positivo, l'ID della sessione di gioco verrà restituito come oggetto AwsStringOutcome. Se l'esito è negativo, verrà restituito un messaggio di errore.

Per i processi inattivi che non vengono attivati durante una sessione di gioco, la chiamata restituisce Success = True e GameSessionId =. ""

Esempio

Aws::GameLift::AwsStringOutcome sessionIdOutcome = Aws::GameLift::Server::GetGameSessionId();

GetTerminationTime()

Restituisce il tempo di arresto pianificato di un processo del server, se è disponibile un tempo di chiusura. Un processo del server interviene dopo aver ricevuto una onProcessTerminate() richiamata da. Amazon GameLift Servers Amazon GameLift Serverschiamate onProcessTerminate() per i seguenti motivi:

  • Quando il processo del server ha segnalato problemi di salute o non ha risposto. Amazon GameLift Servers

  • Quando si termina l'istanza durante un evento di ridimensionamento.

  • Quando un'istanza viene terminata a causa di un'interruzione occasionale dell'istanza. Crea una coda per le istanze Spot

Sintassi

AwsDateTimeOutcome GetTerminationTime()

Valore restituito

In caso di successo, restituisce l'ora di terminazione come oggetto. AwsDateTimeOutcome Il valore è il tempo di terminazione, espresso in tick trascorsi da allora. 0001 00:00:00 Ad esempio, il valore della data e dell'ora 2020-09-13 12:26:40 -000Z è uguale ai tick. 637355968000000000 Se non è disponibile un'ora di cessazione, restituisce un messaggio di errore.

Se il processo non ha ricevuto un callback ProcessParameters.OnProcessTerminate (), viene restituito un messaggio di errore. Per ulteriori informazioni sulla chiusura di un processo server, vedere. Rispondi a una notifica di chiusura del processo del server

Esempio

Aws::GameLift::AwsLongOutcome TermTimeOutcome = Aws::GameLift::Server::GetTerminationTime();

AcceptPlayerSession()

Notifica Amazon GameLift Servers che un giocatore con l'ID di sessione del giocatore specificato si è connesso al processo del server e deve essere convalidato. Amazon GameLift Serversverifica che l'ID della sessione del giocatore sia valido. Dopo che la sessione del giocatore è stata convalidata, Amazon GameLift Servers cambia lo stato dello slot del giocatore da RISERVATO a ATTIVO.

Sintassi

GenericOutcome AcceptPlayerSession(String playerSessionId)

Parameters

giocatore SessionId

ID univoco rilasciato Amazon GameLift Servers quando viene creata una nuova sessione di gioco.

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Questo esempio gestisce una richiesta di connessione che include la convalida e il rifiuto di ID di sessione del giocatore non validi.

void ReceiveConnectingPlayerSessionID (Connection& connection, const std::string& playerSessionId) { Aws::GameLift::GenericOutcome connectOutcome = Aws::GameLift::Server::AcceptPlayerSession(playerSessionId); if(connectOutcome.IsSuccess()) { connectionToSessionMap.emplace(connection, playerSessionId); connection.Accept(); } else { connection.Reject(connectOutcome.GetError().GetMessage(); } }

RemovePlayerSession()

Notifica Amazon GameLift Servers che un giocatore si è disconnesso dal processo del server. In risposta, imposta lo Amazon GameLift Servers slot del giocatore in disponibile.

Sintassi

GenericOutcome RemovePlayerSession(String playerSessionId)

Parameters

playerSessionId

ID univoco rilasciato Amazon GameLift Servers quando viene creata una nuova sessione di giocatore.

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Aws::GameLift::GenericOutcome disconnectOutcome = Aws::GameLift::Server::RemovePlayerSession(playerSessionId);

DescribePlayerSessions()

Recupera i dati della sessione del giocatore che includono impostazioni, metadati della sessione e dati del giocatore. Utilizzate questo metodo per ottenere informazioni su quanto segue:

  • Una sessione per giocatore singolo

  • Tutte le sessioni dei giocatori in una sessione di gioco

  • Tutte le sessioni dei giocatori associate a un ID giocatore singolo

Sintassi

DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)

Parameters

DescribePlayerSessionsRequest

Un DescribePlayerSessionsRequest oggetto che descrive quali sessioni di giocatore recuperare.

Valore restituito

Se l'esito è positivo, restituisce un oggetto DescribePlayerSessionsOutcome contenente un set di oggetti di sessione giocatore corrispondente ai parametri della richiesta.

Esempio

Questo esempio richiede che tutte le sessioni dei giocatori siano connesse attivamente a una sessione di gioco specificata. Omettendo NextToken e impostando il valore Limit su 10, Amazon GameLift Servers restituisce i record delle prime sessioni di 10 giocatori che corrispondono alla richiesta.

// Set request parameters Aws::GameLift::Server::Model::DescribePlayerSessionsRequest request; request.SetPlayerSessionStatusFilter(Aws::GameLift::Server::Model::PlayerSessionStatusMapper::GetNameForPlayerSessionStatus(Aws::GameLift::Server::Model::PlayerSessionStatus::Active)); request.SetLimit(10); request.SetGameSessionId("the game session ID"); // can use GetGameSessionId() // Call DescribePlayerSessions Aws::GameLift::DescribePlayerSessionsOutcome playerSessionsOutcome = Aws::GameLift::Server::DescribePlayerSessions(request);

StartMatchBackfill()

Invia una richiesta per trovare nuovi giocatori per gli slot aperti in una sessione di gioco creata con FlexMatch. Per ulteriori informazioni, consulta la funzione di FlexMatch backfill.

Questa operazione è asincrona. Se vengono abbinati nuovi giocatori, Amazon GameLift Servers fornisce dati aggiornati sul matchmaker utilizzando la funzione di callback. OnUpdateGameSession()

Un processo del server può avere un solo backfill degli abbinamenti attivo alla volta. Per inviare una nuova richiesta, chiama prima StopMatchBackfill() per annullare la richiesta originale.

Sintassi

StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);

Parameters

StartMatchBackfillRequest

Un StartMatchBackfillRequest oggetto che comunica le seguenti informazioni:

  • ID del ticket da assegnare alla richiesta di backfill. Queste informazioni sono opzionali; se non viene fornito alcun ID, ne Amazon GameLift Servers genererà uno.

  • Matchmaker a cui inviare la richiesta. L'ARN di configurazione completo è obbligatorio. Questo valore si trova nei dati del matchmaker della sessione di gioco.

  • L'ID della sessione di gioco da riempire.

  • I dati di matchmaking disponibili per i giocatori attuali della sessione di gioco.

Valore restituito

Restituisce un StartMatchBackfillOutcome oggetto con l'ID del ticket di backfill della partita o un errore con un messaggio di errore.

Esempio

// Build a backfill request std::vector<Player> players; Aws::GameLift::Server::Model::StartMatchBackfillRequest startBackfillRequest; startBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff"); // optional, autogenerated if not provided startBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); //from the game session matchmaker data startBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() startBackfillRequest.SetPlayers(players); // from the game session matchmaker data // Send backfill request Aws::GameLift::StartMatchBackfillOutcome backfillOutcome = Aws::GameLift::Server::StartMatchBackfill(startBackfillRequest); // Implement callback function for backfill void Server::OnUpdateGameSession(Aws::GameLift::Server::Model::GameSession gameSession, Aws::GameLift::Server::Model::UpdateReason updateReason, std::string backfillTicketId) { // handle status messages // perform game-specific tasks to prep for newly matched players }

StopMatchBackfill()

Annulla una richiesta di backfill di una partita attiva. Per ulteriori informazioni, consulta la funzione di FlexMatch backfill.

Sintassi

GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);

Parameters

StopMatchBackfillRequest

Un StopMatchBackfillRequest oggetto che identifica il ticket di matchmaking da annullare:

  • L'ID del ticket assegnato alla richiesta di backfill.

  • Il matchmaker a cui è stata inviata la richiesta di backfill.

  • La sessione di gioco associata alla richiesta di backfill.

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

// Set backfill stop request parameters Aws::GameLift::Server::Model::StopMatchBackfillRequest stopBackfillRequest; stopBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff"); stopBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() stopBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); // from the game session matchmaker data Aws::GameLift::GenericOutcome stopBackfillOutcome = Aws::GameLift::Server::StopMatchBackfill(stopBackfillRequest);

GetComputeCertificate()

Recupera il percorso del certificato TLS utilizzato per crittografare la connessione di rete tra la risorsa di calcolo Amazon GameLift Servers Anywhere e. Amazon GameLift Servers È possibile utilizzare il percorso del certificato quando si registra il dispositivo di elaborazione in un parco dispositivi Anywhere. Amazon GameLift Servers Per ulteriori informazioni, consultare RegisterCompute.

Sintassi

GetComputeCertificateOutcome Server::GetComputeCertificate()

Valore restituito

Restituisce una GetComputeCertificateOutcome.

Esempio

Aws::GameLift::GetComputeCertificateOutcome certificate = Aws::GameLift::Server::GetComputeCertificate();

GetFleetRoleCredentials()

Recupera le credenziali del ruolo IAM che autorizzano Amazon GameLift Servers a interagire con altri. Servizi AWS Per ulteriori informazioni, consulta Collega il tuo GameLift Server Amazon server di gioco ospitato su altro AWS risorse.

Sintassi

GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);

Parameters

GetFleetRoleCredentialsRequest

Valore restituito

Restituisce un oggetto GetFleetRoleCredentialsOutcome.

Esempio

// form the fleet credentials request Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"); Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);

Questo esempio mostra l'uso del RoleSessionName valore opzionale per assegnare un nome alla sessione delle credenziali a fini di controllo. Se non si fornisce un nome per la sessione di ruolo, viene utilizzato il valore predefinito [host-id] "[fleet-id]-».

// form the fleet credentials request Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"); getFleetRoleCredentialsRequest.SetRoleSessionName("MyFleetRoleSession"); Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);

ListContainersNetworkInfo()

Recupera le informazioni di rete per tutti i contenitori in esecuzione sulla stessa istanza, inclusi il nome, l'ID, l'indirizzo IP locale e il tipo di gruppo di contenitori di ciascun contenitore. Usa queste informazioni per consentire ai processi del server di gioco di scoprire e comunicare con altri contenitori in esecuzione sulla stessa istanza.

Questa azione è supportata solo sulle flotte di container. Quando viene richiamata da qualsiasi altro tipo di calcolo, restituisce un UNSUPPORTED_COMPUTE_TYPE_EXCEPTION errore. Amazon GameLift Serversottiene le informazioni di rete da un server di rilevamento che viene eseguito localmente sull'istanza.

Sintassi

ListContainersNetworkInfoOutcome ListContainersNetworkInfo()

Valore restituito

Restituisce una ListContainersNetworkInfoOutcome.

Esempio

Aws::GameLift::ListContainersNetworkInfoOutcome containersNetworkInfo = Aws::GameLift::Server::ListContainersNetworkInfo();

Distruggi ()

Libera l'SDK del server di Amazon GameLift Servers gioco dalla memoria. Come procedura consigliata, richiamate questo metodo dopo ProcessEnding() e prima di terminare il processo. Se utilizzi una flotta Anywhere e non interrompi i processi del server dopo ogni sessione di gioco, chiama Destroy() e poi InitSDK() reinizializza prima di notificare Amazon GameLift Servers che il processo è pronto per ospitare una sessione di gioco con. ProcessReady()

Sintassi

GenericOutcome Aws::GameLift::Server::Destroy();

Parameters

Non ci sono parametri.

Valore restituito

Restituisce un risultato generico costituito da un esito positivo o negativo con un messaggio di errore.

Esempio

Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding(); Aws::GameLift::Server::Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess()) { exit(0); } else { cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage(); exit(-1); }