Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Integrasikan gateway pemain ke dalam game
Setelah membuat armada yang mendukung gateway pemain, Anda harus memperbarui klien game dan backend game Anda untuk diintegrasikan dengan gateway pemain. Backend game Anda mengambil titik akhir relay dan token gateway pemain, lalu menyediakannya ke klien game. Klien game mengirim semua lalu lintas UDP ke titik akhir relai ini.
Integrasi mengikuti jalur panggilan ini:
-
Backend game Anda memanggil
GetPlayerConnectionDetailsAPI untuk mengambil titik akhir relai dan token gateway pemain untuk setiap pemain dalam sesi permainan. -
Backend game Anda mengirimkan titik akhir relay dan token gateway pemain ke klien game.
-
Klien game Anda menambahkan token gateway pemain ke semua paket UDP keluar dan mengirim paket ke titik akhir relai.
-
Jaringan relai memvalidasi token gateway pemain dan merutekan lalu lintas ke server game Anda.
-
Server game Anda mengirimkan lalu lintas kembali ke klien game Anda melalui jalur relay yang sama.
Integrasi backend
Backend game Anda harus memanggil GetPlayerConnectionDetails API untuk mengambil titik akhir relai dan token gateway pemain untuk pemain. Backend kemudian memberikan informasi ini kepada klien game.
GetPlayerConnectionDetails API
GetPlayerConnectionDetailsAPI mengembalikan detail koneksi untuk pemain dalam sesi game:
- Relay titik akhir dan token
-
Ketika gateway pemain diaktifkan dan didukung di lokasi, mengembalikan:
-
Titik akhir relai — Beberapa titik akhir relai (alamat IP dan port) yang bervariasi antar pemain
-
Token gateway pemain — Token yang harus diberikan klien ke semua paket UDP (berlaku setidaknya selama 3 menit)
-
Kedaluwarsa - Stempel waktu kedaluwarsa token gateway pemain
-
- Koneksi langsung
-
Ketika gateway pemain tidak diaktifkan atau tidak didukung di lokasi, mengembalikan alamat IP dan port server game
Klien game Anda harus dirancang untuk menangani kedua jenis koneksi.
Contoh panggilan API:
// C++ example using AWS SDK Aws::GameLift::GameLiftClient client; Aws::GameLift::Model::GetPlayerConnectionDetailsRequest request; request.SetGameSessionId(gameSessionId); request.SetPlayerIds(playerIds); // Vector of player IDs auto outcome = client.GetPlayerConnectionDetails(request); if (outcome.IsSuccess()) { auto result = outcome.GetResult(); auto connectionDetails = result.GetPlayerConnectionDetails(); // Process each player's connection details for (const auto& detail : connectionDetails) { std::string playerId = detail.GetPlayerId(); // Get relay endpoints (IP address and port) auto endpoints = detail.GetEndpoints(); for (const auto& endpoint : endpoints) { std::string ipAddress = endpoint.GetIpAddress(); int port = endpoint.GetPort(); } // Get player gateway token auto token = detail.GetPlayerGatewayToken(); // Get expiration time auto expiration = detail.GetExpiration(); // Send endpoints and token to game client } }
Lihat GetPlayerConnectionDetailsdi Referensi Amazon GameLift Servers API.
Segarkan titik akhir relai
Panggil GetPlayerConnectionDetails secara berkala untuk memberi pemain titik akhir yang diperbarui saat titik akhir relay menjadi tidak sehat. Kami merekomendasikan memanggil API setiap 60 detik untuk semua pemain dalam sesi permainan. Untuk mengoptimalkan penggunaan API, gabungkan beberapa pemain IDs dalam satu panggilan API.
penting
Panggilan penyegaran reguler adalah mekanisme utama untuk memberikan titik akhir yang diperbarui kepada pemain. Meskipun token gateway pemain tetap berlaku setidaknya selama 3 menit, penyegaran setiap 60 detik memastikan pemain menerima titik akhir yang diperbarui secara teratur.
Integrasi klien
Klien game Anda harus menambahkan token gateway pemain ke semua paket UDP keluar dan mengirim paket ke titik akhir relai yang disediakan. Amazon GameLift ServersKlien SDK for C++ dan Unreal Engine menyediakan utilitas untuk menyederhanakan integrasi ini.
Persyaratan klien
Untuk merutekan lalu lintas melalui gateway pemain, klien game Anda harus:
-
Prepend player gateway token — Prepend token gateway pemain ke semua paket UDP keluar. Token gateway pemain tidak boleh dienkripsi dan harus muncul di awal setiap paket. Paket tanpa token gateway pemain yang valid akan dijatuhkan.
-
Kirim ke titik akhir relai — Kirim semua paket UDP ke titik akhir relai yang disediakan.
-
Pertahankan aktivitas koneksi — Pastikan bahwa klien game mengirim paket ke server game, atau server game mengirim paket ke pemain, setidaknya sekali setiap 30 detik. Aktivitas ini memelihara koneksi melalui jaringan relai.
-
Tangani pembaruan titik akhir — Terima titik akhir relai yang diperbarui dan token gateway pemain dari backend Anda (disarankan setiap 60 detik) dan transisi ke titik akhir baru tanpa membatalkan koneksi.
SDK Klien
Amazon GameLift ServersKlien SDK for C++ dan Unreal Engine menyediakan utilitas untuk menyederhanakan integrasi gateway pemain:
-
Manajemen token — Menambah token gateway pemain ke semua paket UDP keluar.
-
Pemilihan titik akhir — Merutekan lalu lintas ke titik akhir relay menggunakan algoritma yang dapat dikonfigurasi.
-
Penyegaran titik akhir - Menjadwalkan panggilan balik berkala untuk mengambil titik akhir relai yang diperbarui dan token gateway pemain dari backend Anda.
Algoritma pemilihan titik akhir
SDK klien menyediakan dua algoritma bawaan untuk memilih titik akhir relai mana yang akan digunakan:
- Algoritma fallback
-
Menggunakan satu titik akhir sampai menjadi tidak sehat, kemudian beralih ke titik akhir lain. Terbaik untuk menu, lobi, dan game berbasis giliran di mana interupsi singkat dapat diterima. Selama failover endpoint, paket mungkin hilang untuk periode batas waktu yang dikonfigurasi (default: 2 detik).
- Algoritma rotasi prediktif
-
Terus berputar melalui semua titik akhir yang tersedia dan memprediksi kegagalan sebelum terjadi. Terbaik untuk gameplay real-time seperti first-person shooter dan game balap di mana pengiriman paket yang konsisten sangat penting. Membutuhkan server game untuk mengirim pesan pada frekuensi yang konsisten.
Anda juga dapat menerapkan algoritma kustom dengan memperluas kelas algoritma dasar SDK.
Sumber daya SDK klien
Untuk instruksi integrasi lengkap dan kode contoh, lihat sumber daya berikut:
- C++
-
SDK klien untuk C++ Amazon GameLift Serverstersedia di client SDK for
C++. - Unreal Engine
-
Plugin untuk Unreal Engine tersedia di SDK Amazon GameLift Servers klien untuk Unreal
Engine. Akses memerlukan keanggotaan dalam organisasi Epic Games pada GitHub. Lihat Unreal Engine GitHub untuk detailnya.
Uji integrasi Anda
Sebelum menerapkan ke armada, uji integrasi gateway pemain Anda secara lokal menggunakan alat pengujian gateway pemain. Alat ini mensimulasikan infrastruktur proxy UDP gateway pemain dan membantu Anda memverifikasi bahwa klien game Anda dengan benar menambahkan token gateway pemain, merutekan lalu lintas melalui beberapa titik akhir, dan menangani degradasi jaringan.
Untuk petunjuk penyiapan dan penggunaan, lihat aplikasi pengujian gateway pemain
Praktik terbaik
Ikuti praktik terbaik ini saat mengintegrasikan gateway pemain:
-
Segarkan titik akhir setiap 60 detik — Hubungi
GetPlayerConnectionDetailssetiap 60 detik untuk memastikan pemain menerima titik akhir yang diperbarui secara teratur. -
Panggilan API Batch — Saat memanggil
GetPlayerConnectionDetailsbeberapa pemain dalam sesi game yang sama, gabungkan panggilan bersama-sama untuk mengurangi overhead API. -
Pertahankan aktivitas koneksi — Pastikan arus lalu lintas antara klien game dan server game setidaknya sekali setiap 30 detik. Ini bisa berupa server-to-client lalu lintas client-to-server atau lalu lintas.
-
Tangani pembaruan titik akhir dengan anggun — Saat klien game Anda menerima titik akhir yang diperbarui dari backend, transisi ke titik akhir baru tanpa menjatuhkan koneksi pemain.
-
Pilih algoritma yang tepat — Pilih algoritma pemilihan titik akhir yang paling sesuai dengan kebutuhan game Anda. Gunakan algoritma fallback untuk game berbasis giliran dan algoritma rotasi prediktif untuk game waktu nyata.