Amazon GameLift サーバー SDK (C++) 5.x リファレンス: アクション - Amazon GameLift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon GameLift サーバー SDK (C++) 5.x リファレンス: アクション

この Amazon GameLift C++ サーバー SDK リファレンスを使用すると、Amazon で使用するマルチプレイヤーゲームの準備に役立ちます GameLift。統合プロセスの詳細については、「Amazon GameLift をゲームサーバーに追加する」を参照してください。

注記

このトピックでは、 GameLift C++ 標準ライブラリ () で構築するときに使用できる Amazon C++ API について説明しますstd。特に、このドキュメントは -DDGAMELIFT_USE_STD=1 オプションを使用してコンパイルするコードが対象です。

GetSdkVersion()

サーバープロセスに組み込まれた SDK の現在のバージョン番号を返します。

構文

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

戻り値

成功した場合、AwsStringOutcome オブジェクトとして現在の SDK バージョンを返します。返されるオブジェクトには、バージョン番号が含まれます (例: 5.0.0)。成功しなかった場合、エラーメッセージを返します。

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

InitSDK()

Amazon GameLift SDK を初期化します。Amazon に関連する他の初期化ステップの前に、起動時にこのメソッドを呼び出します GameLift。このアクションは、ホスト環境からサーバーパラメータを読み取り、ゲームサーバープロセスと Amazon GameLift サービス間の通信を設定します。

ゲームサーバービルドを Amazon GameLift Agent なしで Amazon GameLift Anywhere フリートまたはコンテナフリートにデプロイする場合は、 を呼び出しInitSDK()、一連のサーバーパラメータを指定します。

構文

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

戻り値

サーバープロセスが ProcessReady() を呼び出す準備ができているかどうかを示す InitSDKOutcome オブジェクトを返します。

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

InitSDK()

Amazon GameLift SDK を初期化します。Amazon に関連する他の初期化ステップの前に、起動時にこのメソッドを呼び出します GameLift。このアクションでは、ゲームサーバープロセスと Amazon GameLift サービス間の通信をセットアップするために、一連のサーバーパラメータが必要です。

ゲームサーバービルドが Amazon GameLift マネージド EC2 フリート、または Amazon GameLift エージェントを使用して Amazon GameLift Anywhere フリートまたはコンテナフリートにデプロイされる場合は、サーバーパラメータInitSDK()なしで を呼び出します。

構文

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

パラメータ

ServerParameters

Amazon GameLift Anywhere フリートでゲームサーバーを初期化するには、次の情報を使用してServerParametersオブジェクトを作成します。

  • ゲームサーバーへの接続 WebSocket に使用される の URL。

  • ゲームサーバーのホストに使用されるプロセスの ID。

  • ゲームサーバープロセスをホスティングするコンピューティングの ID。

  • Amazon コンピューティングを含む Amazon GameLift Anywhere GameLift フリートの ID。

  • Amazon GameLift オペレーションによって生成された認証トークン。

戻り値

サーバープロセスが ProcessReady() を呼び出す準備ができているかどうかを示す InitSDKOutcome オブジェクトを返します。

注記

Anywhere フリートにデプロイされたゲームビルドに対して InitSDK() への呼び出しが失敗する場合は、ビルドリソースの作成時に使用した ServerSdkVersion パラメータを確認してください。この値は、使用中のサーバー SDK バージョンに明示的に設定する必要があります。このパラメータのデフォルト値は 4.x で、互換性がありません。この問題を解決するには、新しいビルドを作成して新しいフリートにデプロイします。

Amazon GameLift Anywhere の例

//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 GameLift agent to enable further communication. Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK(serverParameters);

ProcessReady()

サーバープロセス GameLift がゲームセッションをホストする準備ができていることを Amazon に通知します。InitSDK() を呼び出した後にこのメソッドを呼び出します このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

構文

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

パラメータ

processParameters

サーバープロセスに関する以下の情報を伝える ProcessParameters オブジェクト。

  • Amazon GameLift サービスがサーバープロセスと通信するために呼び出すゲームサーバーコードに実装されているコールバックメソッドの名前。

  • サーバープロセスがリッスンするポートの番号。

  • Amazon がキャプチャして保存するゲームセッション固有のファイル GameLift へのパス。

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

この例では、ProcessReady() 呼び出しと委任関数の実装の両方を示します。

// 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()

サーバープロセスがゲームセッションをホストする準備ができていることを Amazon GameLift サービスに通知します。サーバープロセスがゲームセッションをホストする準備ができたら、このメソッドを呼び出します。パラメータは、特定の状況で GameLift 呼び出す Amazon のコールバック関数名を指定します。ゲームサーバーコードは、これらの関数を実装する必要があります。

この呼び出しは非同期です。同期呼び出しを実行するには、ProcessReady() を使用します。詳細については、「サーバープロセスを初期化する」を参照してください。

構文

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

パラメータ

processParameters

サーバープロセスに関する以下の情報を伝える ProcessParameters オブジェクト。

  • Amazon GameLift サービスがサーバープロセスと通信するために呼び出すゲームサーバーコードに実装されているコールバックメソッドの名前。

  • サーバープロセスがリッスンするポートの番号。

  • Amazon がキャプチャして保存するゲームセッション固有のファイル GameLift へのパス。

必須:はい

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

// 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()

サーバープロセスが終了中 GameLift であることを Amazon に通知します。他のすべてのクリーンアップタスク (アクティブなゲームセッションのシャットダウンを含む) の後、およびプロセスを終了する前に、このメソッドを呼び出します。ProcessEnding() の結果に応じて、プロセスは成功 (0) またはエラー (-1) で終了し、フリートイベントを生成します。プロセスがエラーで終了した場合、生成されるフリートイベントは ですSERVER_PROCESS_TERMINATED_UNHEALTHY

構文

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

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

この例では、サーバープロセスを終了する前に、成功またはエラーの終了コードで ProcessEnding()Destroy() を呼び出します。

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()

サーバープロセスがゲームセッションをアクティブ化し、プレイヤー接続を受信する準備ができたことを Amazon に通知 GameLift します。このアクションは、すべてのゲームセッションの初期化の後、onStartGameSession() コールバック関数の一部として呼び出されます。

構文

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

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

この例では、onStartGameSession() 委任関数の一部として呼び出された ActivateGameSession() を示しています。

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()

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。

構文

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

パラメータ

playerCreationSessionポリシー

型: PlayerSessionCreationPolicy 列挙値。

必須:はい

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

この例は、現在のゲームセッションの参加ポリシーを、すべてのプレイヤーを受け入れるように設定します。

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

GetGameSessionId()

アクティブなサーバープロセスにホストされたゲームセッションの ID を取得します。

ゲームセッションでアクティブ化されていないアイドル状態のプロセスの場合、呼び出しは GameLiftError を返します。

構文

AwsStringOutcome GetGameSessionId()

パラメータ

このアクションにはパラメータがありません。

戻り値

成功した場合、ゲームセッション ID を AwsStringOutcome オブジェクトとして返します。成功しなかった場合、エラーメッセージを返します。

ゲームセッションでまだアクティブ化されていないアイドルプロセスの場合、呼び出しは Success=True および GameSessionId="" を返します。

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

GetTerminationTime()

終了時刻が判る場合に、サーバープロセスがシャットダウンを予定している時刻を返します。サーバープロセスは、Amazon からonProcessTerminate()コールバックを受信した後にアクションを実行します GameLift。Amazon onProcessTerminate() は、次の理由で を GameLift 呼び出します。

  • サーバープロセスで状態不良が報告された場合、または Amazon に応答しなかった場合 GameLift。

  • スケールダウンイベント中にインスタンスを終了する場合。

  • スポットインスタンスの中断によりインスタンスが終了した場合。

構文

AwsDateTimeOutcome GetTerminationTime()

戻り値

成功した場合、終了時刻を AwsDateTimeOutcome オブジェクトとして返します。値は終了時間で、0001 00:00:00 以降の経過ティックで表現されます。例えば、日付時刻の値 2020-09-13 12:26:40 -000Z は、637355968000000000 ティックに等しくなります。終了時間がない場合は、エラーメッセージを返します。

プロセスが ProcessParameters.OnProcessTerminate() コールバックを受信していない場合は、エラーメッセージが返されます。サーバープロセスのシャットダウンの詳細については、「サーバープロセスのシャットダウン通知に応答する」を参照してください。

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

AcceptPlayerSession()

指定されたプレイヤーセッション ID を持つプレイヤーがサーバープロセスに接続されており、検証が必要である GameLift ことを Amazon に通知します。Amazon GameLift は、プレイヤーセッション ID が有効であることを確認します。プレイヤーセッションが検証されると、Amazon はプレイヤースロットのステータスを RESERVED から ACTIVE に変更 GameLift します。

構文

GenericOutcome AcceptPlayerSession(String playerSessionId)

パラメータ

playerSessionId

新しいプレイヤーセッションの作成 GameLift 時に Amazon が発行する一意の ID。

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

この例では、無効なプレイヤーセッション ID の検証と拒否を含む接続リクエストを処理します。

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()

プレイヤーがサーバープロセスから切断された GameLift ことを Amazon に通知します。それに応じて、Amazon GameLift はプレイヤースロットを使用可能に変更します。

構文

GenericOutcome RemovePlayerSession(String playerSessionId)

パラメータ

playerSessionId

新しいプレイヤーセッションの作成 GameLift 時に Amazon が発行する一意の ID。

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

DescribePlayerSessions()

設定、セッションメタデータ、プレイヤーデータを含む、プレイヤーセッションデータを取得します。このメソッドを使用して、以下に関する情報を取得します。

  • シングルプレイヤーセッション

  • ゲームセッションのすべてのプレイヤーセッション

  • 1 つのプレイヤー ID に関連付けられているすべてのプレイヤーセッション

構文

DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)

パラメータ

DescribePlayerSessionsRequest

取得するプレイヤーセッションを記述する DescribePlayerSessionsRequest オブジェクト。

戻り値

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む DescribePlayerSessionsOutcome オブジェクトを返します。

この例は、指定したゲームセッションにアクティブに接続されているすべてのプレイヤーセッションのリクエストします。Limit 値を省略NextTokenして 10 に設定することで、Amazon はリクエストに一致する最初の 10 個のプレイヤーセッションレコード GameLift を返します。

// 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()

で作成されたゲームセッションで、開いているスロットの新しいプレイヤーを検索するリクエストを送信します FlexMatch。詳細については、FlexMatch 「バックフィル機能」を参照してください。

このアクションは非同期です。新しいプレイヤーが一致した場合、Amazon はコールバック関数 を使用して更新されたマッチメーカーデータを GameLift 配信しますOnUpdateGameSession()

サーバープロセスではアクティブなマッチバックフィルリクエストは一度に 1 つだけです。新しいリクエストを送信するには、まず StopMatchBackfill() を呼び出して元のリクエストをキャンセルする必要があります。

構文

StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);

パラメータ

StartMatchBackfillRequest

次の情報を伝える StartMatchBackfillRequest オブジェクト。

  • バックフィルリクエストに割り当てるチケット ID。この情報はオプションです。ID が指定されていない場合、Amazon は ID GameLift を生成します。

  • リクエストを送信するマッチメーカー。完全な設定 ARN が必要です。この値はゲームセッションのマッチメーカーデータに含まれています。

  • バックフィルするゲームセッションの ID。

  • ゲームセッションの現在のプレイヤーに利用可能なマッチメーキングデータ。

戻り値

StartMatchBackfillOutcome オブジェクトを、マッチバックフィルチケット ID またはエラーメッセージを伴うエラーとともに返します。

// 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()

アクティブなマッチバックフィルリクエストをキャンセルします。詳細については、FlexMatch「バックフィル機能」を参照してください。

構文

GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);

パラメータ

StopMatchBackfillRequest

キャンセルするマッチメーキングチケットを識別する StopMatchBackfillRequest オブジェクト:

  • バックフィルリクエストに割り当てるチケット ID。

  • バックフィルリクエストが送信されたマッチメーカー。

  • バックフィルリクエストに関連付けられたゲームセッション。

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

// 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()

Amazon コンピューティングリソースと Amazon GameLift Anywhere 間のネットワーク接続の暗号化に使用される TLS 証明書へのパスを取得します GameLift。コンピューティングデバイスを Amazon GameLift Anywhere フリートに登録するときに、証明書パスを使用できます。詳細については、「」を参照してくださいRegisterCompute

構文

GetComputeCertificateOutcome Server::GetComputeCertificate()

戻り値

戻り値は GetComputeCertificateOutcome

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

GetFleetRoleCredentials()

Amazon が他の とやり取り GameLift することを許可する IAM ロール認証情報を取得します AWS サービス。詳細については、「フリートの他の AWS リソースと通信する」を参照してください。

構文

GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);

パラメータ

GetFleetRoleCredentialsRequest

戻り値

GetFleetRoleCredentialsOutcome オブジェクトを返します。

// 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);

この例は、監査目的でオプションの RoleSessionName 値を使用して認証情報セッションに名前を割り当てる方法を示しています。ロールセッション名を指定しない場合、デフォルト値「[fleet-id]-[host-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);

Destroy()

Amazon GameLift ゲームサーバー SDK をメモリから解放します。ベストプラクティスとして、ProcessEnding() の後、かつプロセスの終了前にこのメソッドを呼び出します。Anywhere フリートを使用していて、すべてのゲームセッションの後にサーバープロセスを終了しない場合は、 Destroy()を呼び出してInitSDK()再初期化してから、プロセスが でゲームセッションをホストする準備ができてい GameLift ることを Amazon に通知しますProcessReady()

構文

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

パラメータ

パラメータはありません。

戻り値

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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); }