Integrasikan Amazon GameLift Servers dengan proyek server game Unity - Amazon GameLift Servers

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

Integrasikan Amazon GameLift Servers dengan proyek server game Unity

catatan

Topik ini memberikan informasi untuk versi Amazon GameLift Servers plugin yang lebih lama untuk Unity. Versi 1.0.0 (dirilis pada tahun 2021) menggunakan SDK server untuk Amazon GameLift Servers 4.x atau lebih lama. Untuk dokumentasi tentang versi terbaru plugin, yang menggunakan server SDK 5.x dan mendukung Amazon GameLift Servers Anywhere, lihat. Amazon GameLift Serversplugin untuk Unity (server SDK 5.x)

Topik ini membantu Anda mempersiapkan server game kustom Anda untuk hostingAmazon GameLift Servers. Server game harus dapat memberi tahu Amazon GameLift Servers tentang statusnya, untuk memulai dan menghentikan sesi permainan saat diminta, dan untuk melakukan tugas-tugas lain. Untuk informasi selengkapnya, lihat Tambahkan Amazon GameLift Servers ke server game Anda.

Prasyarat

Sebelum mengintegrasikan server game Anda, selesaikan tugas-tugas berikut:

Menyiapkan proses server baru

catatan

Topik ini mengacu pada Amazon GameLift Servers plugin untuk Unity versi 1.0.0, yang menggunakan server SDK 4.x atau sebelumnya.

Siapkan komunikasi dengan Amazon GameLift Servers dan laporkan bahwa proses server siap untuk menjadi tuan rumah sesi permainan.

  1. Inisialisasi SDK server dengan menelepon. InitSDK()

  2. Untuk mempersiapkan server menerima sesi permainan, hubungi ProcessReady() dengan port koneksi dan detail lokasi sesi permainan. Sertakan nama fungsi callback yang dipanggil Amazon GameLift Servers layanan, seperti,OnGameSession(),OnGameSessionUpdate(),OnProcessTerminate(). OnHealthCheck() Amazon GameLift Serversmungkin perlu beberapa menit untuk memberikan panggilan balik.

  3. Amazon GameLift Serversmemperbarui status proses server keACTIVE.

  4. Amazon GameLift Serversmenelepon onHealthCheck secara berkala.

Contoh kode berikut menunjukkan cara mengatur proses server sederhana denganAmazon GameLift Servers.

//initSDK var initSDKOutcome = GameLiftServerAPI.InitSDK(); //processReady // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, // Examples of log and error files written by the game server new LogParameters(new List<string>() { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams); // Implement callback functions void OnGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); } void OnProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding(); } bool OnHealthCheck() { bool isHealthy; // complete health evaluation within 60 seconds and set health return isHealthy; }

Mulai sesi game

catatan

Topik ini mengacu pada Amazon GameLift Servers plugin untuk Unity versi 1.0.0, yang menggunakan server SDK 4.x atau sebelumnya.

Setelah inisialisasi game selesai, Anda dapat memulai sesi permainan.

  1. Menerapkan fungsi onStartGameSession callback. Amazon GameLift Serversmemanggil metode ini untuk memulai sesi permainan baru pada proses server dan menerima koneksi pemain.

  2. Untuk mengaktifkan sesi permainan, hubungiActivateGameSession(). Untuk informasi selengkapnya tentang SDK, lihatC# server SDK untuk Amazon GameLift Servers 4.x -- Tindakan.

Contoh kode berikut menggambarkan bagaimana memulai sesi permainan denganAmazon GameLift Servers.

void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map ... // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }

Mengakhiri sesi game

catatan

Topik ini mengacu pada Amazon GameLift Servers plugin untuk Unity versi 1.0.0, yang menggunakan server SDK 4.x atau sebelumnya.

Beri tahu Amazon GameLift Servers saat sesi permainan berakhir. Sebagai praktik terbaik, matikan proses server setelah sesi game selesai untuk mendaur ulang dan menyegarkan sumber daya hosting.

  1. Siapkan fungsi bernama onProcessTerminate untuk menerima permintaan dari Amazon GameLift Servers dan panggilanProcessEnding().

  2. Status proses berubah menjadiTERMINATED.

Contoh berikut menjelaskan cara mengakhiri proses untuk sesi permainan.

var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);

Buat pembuatan server dan unggah ke Amazon GameLift Servers

catatan

Topik ini mengacu pada Amazon GameLift Servers plugin untuk Unity versi 1.0.0, yang menggunakan server SDK 4.x atau sebelumnya.

Setelah Anda mengintegrasikan server game AndaAmazon GameLift Servers, unggah file build ke armada sehingga Amazon GameLift Servers dapat menerapkannya untuk hosting game. Untuk informasi selengkapnya tentang cara mengunggah server AndaAmazon GameLift Servers, lihatMenerapkan build server khusus untuk Amazon GameLift Servers mengadakan.