Amazon GameLift server SDK 4.x untuk C ++: Tindakan - Amazon GameLift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Amazon GameLift server SDK 4.x untuk C ++: Tindakan

Gunakan SDK referensi server Amazon GameLift C ++ untuk mengintegrasikan game multipemain Anda untuk hosting dengan Amazon. GameLift Untuk panduan tentang proses integrasi, lihatTambahkan Amazon GameLift ke server game Anda.

catatan

Referensi ini untuk versi GameLift server Amazon yang lebih lamaSDK. Untuk versi terbaru, lihatAmazon GameLift server SDK 5.x untuk C ++: Tindakan.

Amazon GameLift server SDK 4.x untuk C ++: Tipe data

AcceptPlayerSession()

Memberi tahu GameLift layanan Amazon bahwa pemain dengan ID sesi pemain yang ditentukan telah terhubung ke proses server dan memerlukan validasi. Amazon GameLift memverifikasi bahwa ID sesi pemain valid—yaitu, ID pemain telah memesan slot pemain di sesi permainan. Setelah divalidasi, Amazon GameLift mengubah status slot pemain dari RESERVED keACTIVE.

Sintaks

GenericOutcome AcceptPlayerSession(const std::string& playerSessionId);

Parameter

playerSessionId

ID unik yang dikeluarkan oleh GameLift layanan Amazon sebagai tanggapan atas panggilan ke GameLift API tindakan AWS SDK Amazon CreatePlayerSession. Client game mereferensi ID ini saat menghubungkan ke proses server.

Jenis: std::string

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menggambarkan fungsi untuk menangani permintaan koneksi, termasuk memvalidasi dan menolak sesi pemain yang tidak valid. IDs

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

ActivateGameSession()

Memberi tahu GameLift layanan Amazon bahwa proses server telah memulai sesi permainan dan sekarang siap menerima koneksi pemain. Tindakan ini harus dipanggil sebagai bagian dari fungsi callback onStartGameSession(), setelah semua inisialisasi sesi game selesai.

Sintaks

GenericOutcome ActivateGameSession();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menunjukkan ActivateGameSession() yang dipanggil sebagai bagian dari fungsi callback onStartGameSession().

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

DescribePlayerSessions()

Mengambil data sesi pemain, termasuk pengaturan, metadata sesi, dan data pemain. Gunakan tindakan ini untuk mendapatkan informasi untuk satu sesi pemain, untuk semua sesi pemain dalam sesi game, atau untuk semua sesi pemain yang terkait dengan ID pemain tunggal.

Sintaks

DescribePlayerSessionsOutcome DescribePlayerSessions ( const Aws::GameLift::Server::Model::DescribePlayerSessionsRequest &describePlayerSessionsRequest);

Parameter

describePlayerSessionsPermintaan

Sebuah objek DescribePlayerSessionsRequest yang menjelaskan sesi pemain mana yang diambil.

Wajib: Ya

Nilai yang dikembalikan

Jika berhasil, ini mengembalikan objek DescribePlayerSessionsOutcome yang berisi satu set objek sesi pemain yang sesuai dengan parameter permintaan. Objek sesi pemain memiliki struktur yang identik dengan tipe GameLift API PlayerSessiondata AWS SDK Amazon.

Contoh

Contoh ini menggambarkan permintaan untuk semua sesi pemain yang secara aktif terhubung ke sesi game tertentu. Dengan menghilangkan NextToken dan menyetel Limit nilai ke 10, Amazon GameLift mengembalikan 10 rekaman sesi pemain pertama yang cocok dengan permintaan.

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

GetGameSessionId()

Mengambil pengidentifikasi unik untuk sesi game yang saat ini sedang di-host oleh proses server, jika proses server aktif. Pengidentifikasi dikembalikan dalam ARN format:arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>.

Untuk proses idle yang belum diaktifkan dengan sesi permainan, panggilan mengembalikan Success = True dan GameSessionId = "" (string kosong).

Sintaks

AwsStringOutcome GetGameSessionId();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Jika berhasil, ini mengembalikan ID sesi game sebagai objek AwsStringOutcome. Jika tidak berhasil, ini mengembalikan pesan kesalahan.

Contoh

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

GetInstanceCertificate()

Mengambil lokasi file dari TLS sertifikat pem-encoded yang terkait dengan armada dan instance-nya. AWS Certificate Manager menghasilkan sertifikat ini saat Anda membuat armada baru dengan konfigurasi sertifikat yang disetel keGENERATED. Gunakan sertifikat ini untuk membuat koneksi yang aman dengan client game dan untuk mengenkripsi komunikasi client/server.

Sintaks

GetInstanceCertificateOutcome GetInstanceCertificate();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Jika berhasil, mengembalikan GetInstanceCertificateOutcome objek yang berisi lokasi file TLS sertifikat armada dan rantai sertifikat, yang disimpan pada instance. File sertifikat root, diekstrak dari rantai sertifikat, juga disimpan pada instance. Jika tidak berhasil, ini mengembalikan pesan kesalahan.

Untuk informasi selengkapnya tentang sertifikat dan data rantai sertifikat, lihat Elemen GetCertificate Respons dalam AWS Certificate Manager API Referensi.

Contoh

Aws::GameLift::GetInstanceCertificateOutcome certificateOutcome = Aws::GameLift::Server::GetInstanceCertificate();

GetSdkVersion()

Mengembalikan nomor versi saat ini dari SDK yang digunakan.

Sintaks

AwsStringOutcome GetSdkVersion();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Jika berhasil, mengembalikan SDK versi saat ini sebagai AwsStringOutcome objek. String yang dikembalikan mencakup nomor versi saja (mis. "3.1.5"). Jika tidak berhasil, ini mengembalikan pesan kesalahan.

Contoh

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

GetTerminationTime()

Mengembalikan waktu yang merupakan jadwal proses server akan ditutup, jika waktu penghentian tersedia. Proses server mengambil tindakan ini setelah menerima onProcessTerminate() panggilan balik dari GameLift layanan Amazon. Amazon GameLift dapat memanggil onProcessTerminate() karena alasan berikut: (1) ketika proses server melaporkan kesehatan yang buruk atau belum merespons Amazon GameLift, (2) saat menghentikan instance selama peristiwa penurunan skala, atau (3) saat instance dihentikan karena gangguan Spot.

Jika proses telah menerima callback onProcessTerminate(), nilai yang dikembalikan adalah perkiraan waktu penghentian. Jika proses belum menerima callback onProcessTerminate(), pesan kesalahan dikembalikan. Pelajari selengkapnya tentang mematikan proses server.

Sintaks

AwsLongOutcome GetTerminationTime();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Jika berhasil, ini mengembalikan waktu penghentian sebagai objek AwsLongOutcome. Nilainya adalah waktu penghentian, dinyatakan dalam detik yang telah berlalu sejak 0001 00:00:00. Misalnya, nilai waktu tanggal 2020-09-13 12:26:40 -000Z sama dengan 637355968000000000 detik. Jika tidak ada waktu penghentian tersedia, pesan kesalahan ditampilkan.

Contoh

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

Init SDK ()

Menginisialisasi Amazon GameLift SDK. Metode ini harus dipanggil saat peluncuran, sebelum inisialisasi GameLift terkait Amazon lainnya terjadi.

Sintaks

InitSDKOutcome InitSDK();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Jika berhasil, mengembalikan InitSdkOutcome objek yang menunjukkan bahwa proses server siap untuk memanggilProcessReady().

Contoh

Aws::GameLift::Server::InitSDKOutcome initOutcome = Aws::GameLift::Server::InitSDK();

ProcessEnding()

Memberi tahu GameLift layanan Amazon bahwa proses server dimatikan. Metode ini harus dipanggil setelah semua tugas pembersihan lainnya, termasuk mematikan semua sesi game aktif. Metode ini harus keluar dengan kode keluar 0; sebuah kode non-nol menghasilkan pesan kejadian bahwa proses tidak keluar dengan bersih.

Setelah metode keluar dengan kode 0, Anda dapat mengakhiri proses dengan kode keluar yang sukses. Anda juga dapat keluar dari proses dengan kode kesalahan. Jika Anda keluar dengan kode kesalahan, kejadian armada akan menunjukkan proses yang dihentikan secara tidak normal (SERVER_PROCESS_TERMINATED_UNHEALTHY).

Sintaks

GenericOutcome ProcessEnding();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding(); if (outcome.Success) exit(0); // exit with success // otherwise, exit with error code exit(errorCode);

ProcessReady()

Memberi tahu GameLift layanan Amazon bahwa proses server siap untuk meng-host sesi game. Panggil metode ini setelah berhasil meminta Init SDK () dan menyelesaikan tugas penyiapan yang diperlukan sebelum proses server dapat menjadi host sesi game. Metode ini harus dipanggil hanya satu kali per proses.

Panggilan ini sinkron. Untuk membuat panggilan asinkron, gunakan ProcessReadyAsync(). Lihat Inisialisasi proses server untuk detail selengkapnya.

Sintaks

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

Parameter

processParameters

Sebuah objek ProcessParameters yang mengomunikasikan informasi berikut tentang proses server:

  • Nama metode callback, diimplementasikan dalam kode server game, yang dipanggil GameLift layanan Amazon untuk berkomunikasi dengan proses server.

  • Nomor port yang didengarkan oleh proses server.

  • Jalur ke file khusus sesi game apa pun yang Anda GameLift ingin Amazon tangkap dan simpan.

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menggambarkan panggilan ProcessReady() dan implementasi fungsi callback.

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

Memberi tahu GameLift layanan Amazon bahwa proses server siap untuk meng-host sesi game. Metode ini harus dipanggil setelah proses server siap untuk menjadi host sesi game. Parameter menentukan nama fungsi callback untuk Amazon GameLift untuk memanggil dalam keadaan tertentu. Kode server game harus menerapkan fungsi-fungsi ini.

Ini adalah panggilan asinkron. Untuk membuat panggilan sinkron, gunakan ProcessReady(). Lihat Inisialisasi proses server untuk detail selengkapnya.

Sintaks

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

Parameter

processParameters

Sebuah objek ProcessParameters yang mengomunikasikan informasi berikut tentang proses server:

  • Nama metode callback, diimplementasikan dalam kode server game, yang dipanggil GameLift layanan Amazon untuk berkomunikasi dengan proses server.

  • Nomor port yang didengarkan oleh proses server.

  • Jalur ke file khusus sesi game apa pun yang Anda GameLift ingin Amazon tangkap dan simpan.

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

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

RemovePlayerSession()

Memberi tahu GameLift layanan Amazon bahwa pemain dengan ID sesi pemain yang ditentukan telah terputus dari proses server. Sebagai tanggapan, Amazon GameLift mengubah slot pemain menjadi tersedia, yang memungkinkannya ditugaskan ke pemain baru.

Sintaks

GenericOutcome RemovePlayerSession( const std::string& playerSessionId);

Parameter

playerSessionId

ID unik yang dikeluarkan oleh GameLift layanan Amazon sebagai tanggapan atas panggilan ke GameLift API tindakan AWS SDK Amazon CreatePlayerSession. Client game mereferensi ID ini saat menghubungkan ke proses server.

Jenis: std::string

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

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

StartMatchBackfill()

Mengirim permintaan untuk menemukan pemain baru untuk slot terbuka dalam sesi permainan yang dibuat dengan FlexMatch. Lihat juga AWS SDK aksi StartMatchBackfill(). Dengan tindakan ini, permintaan backfill match dapat dimulai dengan proses server game yang menjadi host sesi game. Pelajari lebih lanjut tentang fitur FlexMatch isi ulang.

Tindakan ini asinkron. Jika pemain baru berhasil dicocokkan, GameLift layanan Amazon mengirimkan data mak comblang yang diperbarui dengan menjalankan fungsi panggilan balik. OnUpdateGameSession()

Proses server hanya dapat melakukan satu permintaan backfill match yang aktif dalam satu waktu. Untuk mengirim permintaan baru, panggil StopMatchBackfill() terlebih dahulu untuk membatalkan permintaan asli.

Sintaks

StartMatchBackfillOutcome StartMatchBackfill ( const Aws::GameLift::Server::Model::StartMatchBackfillRequest &startBackfillRequest);

Parameter

StartMatchBackfillRequest

Sebuah objek StartMatchBackfillRequest yang mengkomunikasikan informasi berikut:

  • ID tiket untuk ditetapkan ke permintaan backfill. Informasi ini opsional; jika tidak ada ID yang diberikan, Amazon GameLift akan membuatnya secara otomatis.

  • Matchmaker untuk dikirimi permintaan. Diperlukan konfigurasi ARN lengkap. Nilai ini dapat diperoleh dari data matchmaker sesi game.

  • ID dari sesi game yang sedang di-backfill.

  • Data matchmaking yang tersedia untuk pemain sesi game saat ini.

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan StartMatchBackfillOutcome objek dengan tiket isi ulang pertandingan atau kegagalan dengan pesan kesalahan. Status tiket dapat dilacak menggunakan AWS SDK action DescribeMatchmaking().

Contoh

// Build a backfill request std::vector<Player> players; Aws::GameLift::Server::Model::StartMatchBackfillRequest startBackfillRequest; startBackfillRequest.SetTicketId("a ticket ID"); //optional, autogenerated if not provided startBackfillRequest.SetMatchmakingConfigurationArn("the matchmaker configuration ARN"); //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()

Membatalkan permintaan backfill match aktif yang dibuat dengan StartMatchBackfill(). Lihat juga AWS SDK aksi StopMatchmaking(). Pelajari lebih lanjut tentang fitur FlexMatch isi ulang.

Sintaks

GenericOutcome StopMatchBackfill ( const Aws::GameLift::Server::Model::StopMatchBackfillRequest &stopBackfillRequest);

Parameter

StopMatchBackfillRequest

Sebuah objek StopMatchBackfillRequest yang mengidentifikasi tiket matchmaking untuk membatalkan:

  • ID tiket yang ditetapkan ke permintaan backfill yang dibatalkan

  • matchmaker yang dikirimi permintaan backfill

  • sesi game yang terkait dengan permintaan backfill

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

// Set backfill stop request parameters Aws::GameLift::Server::Model::StopMatchBackfillRequest stopBackfillRequest; stopBackfillRequest.SetTicketId("the ticket ID"); stopBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId() stopBackfillRequest.SetMatchmakingConfigurationArn("the matchmaker configuration ARN"); // from the game session matchmaker data Aws::GameLift::GenericOutcome stopBackfillOutcome = Aws::GameLift::Server::StopMatchBackfillRequest(stopBackfillRequest);

TerminateGameSession()

Metode ini tidak lagi digunakan dengan versi 4.0.1. Sebaliknya, proses server harus memanggil ProcessEnding() setelah sesi permainan berakhir.

Memberi tahu GameLift layanan Amazon bahwa proses server telah mengakhiri sesi permainan saat ini. Tindakan ini dipanggil ketika proses server akan tetap aktif dan siap untuk menjadi host sesi game baru. Ini harus dipanggil hanya setelah prosedur penghentian sesi permainan Anda selesai, karena ini memberi sinyal ke Amazon GameLift bahwa proses server segera tersedia untuk meng-host sesi permainan baru.

Tindakan ini tidak dipanggil jika proses server akan dimatikan setelah sesi game berhenti. Sebagai gantinya, panggil ProcessEnding() untuk memberi tahu bahwa sesi game dan proses server akan berakhir.

Sintaks

GenericOutcome TerminateGameSession();

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

UpdatePlayerSessionCreationPolicy()

Memperbarui kemampuan sesi game saat ini untuk menerima sesi pemain baru. Sesi game dapat diatur untuk menerima atau menolak semua sesi pemain baru. Lihat juga AWS SDK aksi UpdateGameSession().

Sintaks

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

Parameter

newPlayerSessionKebijakan

Nilai string yang menunjukkan apakah sesi game menerima pemain baru.

Jenis: Aws::GameLift: :Model:: PlayerSessionCreationPolicy enum. Nilai yang valid meliputi:

  • ACCEPT_ ALL — Terima semua sesi pemain baru.

  • DENY_ ALL — Tolak semua sesi pemain baru.

Wajib: Ya

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menetapkan kebijakan bergabung sesi game saat ini untuk menerima semua pemain.

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

Hancurkan ()

Membersihkan memori yang dialokasikan oleh init SDK () selama inisialisasi server game. Gunakan metode ini setelah Anda mengakhiri proses server game untuk menghindari pemborosan memori server.

Sintaks

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

Parameter

Tidak ada parameter.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini membersihkan memori yang dialokasikan oleh init SDK setelah proses server game berakhir.

if (Aws::GameLift::Server::ProcessEnding().IsSuccess()) { Aws::GameLift::Server::Destroy(); exit(0); }