Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengintegrasikan GameLift Server Amazon fungsionalitas klien game
Integrasikan fungsionalitas hosting Amazon GameLift Servers game ke dalam komponen solusi apa pun yang perlu berkomunikasi dengan Amazon GameLift Servers layanan, seperti untuk mendapatkan informasi sesi game atau membuat sesi game baru. Dalam kebanyakan kasus, fungsi ini dibangun ke dalam komponen layanan backend. Tambahkan fungsionalitas untuk tugas inti, termasuk:
-
Minta informasi dan status sesi permainan aktif.
-
Pesan slot untuk pemain baru di sesi permainan yang ada.
-
Buat sesi permainan baru untuk sekelompok pemain.
-
Minta perjodohan untuk satu atau lebih pemain.
-
Berikan data terbaru untuk sesi game yang ada.
Lihat client/server Interaksi permainan dengan GameLift Server Amazon untuk detail tambahan tentang bagaimana komponen hosting game berinteraksi melalui Amazon GameLift Servers SDK.
Siapkan GameLift Server Amazon API
Tambahkan AWS SDK untuk C++ dengan Amazon GameLift Servers ke proyek.
Tambahkan kode untuk menginisialisasi Amazon GameLift Servers klien dan menyimpan pengaturan kunci. Kode ini harus dijalankan sebelum kode apa pun bergantung padaAmazon GameLift Servers.
-
Siapkan konfigurasi klien. Gunakan konfigurasi klien default atau buat objek konfigurasi klien kustom. Untuk informasi selengkapnya, lihat AWS::Client::ClientConfiguration
(C++) atau AmazonGameLiftConfig (C#). Konfigurasi klien menentukan wilayah target dan titik akhir yang akan digunakan saat menghubungiAmazon GameLift Servers. Wilayah mengidentifikasi kumpulan sumber daya yang digunakan (armada, antrian, dan pencocokan) untuk digunakan. Konfigurasi klien default menetapkan lokasi ke Wilayah AS Timur (Virginia Utara). Untuk menggunakan Wilayah lain, buat konfigurasi khusus.
-
Inisialisasi Amazon GameLift Servers klien. Gunakan Aws:GameLift:: GameLiftClient ()
(C++) atau AmazonGameLiftClient () (C#) dengan konfigurasi klien default atau konfigurasi klien khusus. -
Jika Anda menggunakan sesi pemain, tambahkan mekanisme untuk menghasilkan pengenal unik untuk setiap pemain. Untuk informasi selengkapnya, lihat Hasilkan pemain IDs.
-
Kumpulkan dan simpan informasi berikut:
-
Armada target — Jika Anda membuat sesi game secara manual pada armada tertentu, berikan ID armada atau ID alias yang menunjuk ke armada target. Jika armada multi-lokasi, tentukan lokasi armada. Sebagai praktik terbaik, gunakan alias armada sehingga Anda dapat mengalihkan pemain dari satu armada ke armada lainnya tanpa harus memperbarui layanan backend Anda.
-
Antrian target — Untuk game yang menggunakan antrian multi-armada untuk menempatkan sesi game baru, tentukan nama antrian untuk mengirim permintaan penempatan.
-
AWS kredenSIAL — Semua panggilan ke Amazon GameLift Servers harus memberikan kredenSIAL untuk host game. Akun AWS Anda dapat memperoleh kredenSIAL ini dengan membuat pengguna pemain, seperti yang dijelaskan dalamSiapkan akses terprogram untuk game Anda. Tergantung pada cara Anda mengelola akses untuk pengguna pemain, lakukan hal berikut:
-
Jika Anda menggunakan peran untuk mengelola izin pengguna pemain, tambahkan kode untuk mengambil peran sebelum memanggil Amazon GameLift Servers API. Permintaan untuk mengambil peran mengembalikan satu set kredenSIAL keamanan sementara. Untuk informasi selengkapnya, lihat Ber alih ke peran IAM (AWS API) di Panduan Pengguna IAM.
-
Jika Anda memiliki kredenSIAL keamanan jangka panjang, konfigurasikan kode Anda untuk menemukan dan menggunakan kredenSIAL yang tersimpan. Lihat Men gotentikasi menggunakan kredentif jangka panjang di AWS Panduan Referensi SDK dan Alat. Untuk informasi tentang menyimpan kredenSIAL, lihat referensi AWS API untuk (C++)
dan (.NET). -
Jika Anda memiliki kredenSIAL keamanan sementara, tambahkan kode untuk menyegarkan kredenSIAL secara teratur menggunakan AWS Security Token Service (AWS STS), seperti yang dijelaskan dalam Menggunakan kredenSIAL keamanan sementara dengan AWS SDK di Panduan Pengguna IAM. Kode harus meminta kredenSIAL baru sebelum yang lama kedaluwarsa.
-
-
Dapatkan sesi permainan aktif
Tambahkan kode untuk menemukan sesi permainan yang tersedia dan mengelola pengaturan sesi game dan metadata.
Cari sesi permainan aktif
Gunakan SearchGameSessions untuk mendapatkan informasi tentang sesi permainan tertentu, semua sesi aktif, atau sesi yang memenuhi serangkaian kriteria pencarian. Panggilan ini mengembalikan GameSession objek untuk setiap sesi permainan aktif yang cocok dengan permintaan pencarian Anda. Objek ini berisi nama DNS, alamat IP, dan port, yang dibutuhkan klien game untuk terhubung ke sesi game.
Gunakan kriteria pencarian untuk mendapatkan daftar sesi game aktif yang telah difilter agar pemain dapat bergabung. Misalnya, Anda dapat memfilter sesi sebagai berikut:
-
Kecualikan sesi game yang penuh:
CurrentPlayerSessionCount = MaximumPlayerSessionCount. -
Pilih sesi permainan berdasarkan lamanya waktu sesi telah berjalan: Evaluasi
CreationTime. -
Temukan sesi game berdasarkan properti game khusus:
gameSessionProperties.gameMode = "brawl".
Kelola data sesi game
Gunakan salah satu operasi berikut untuk mengambil atau memperbarui informasi sesi game.
-
DescribeGameSessionDetails() — Dapatkan status perlindungan sesi game selain informasi sesi game.
-
UpdateGameSession() — Ubah metadata dan pengaturan sesi game sesuai kebutuhan.
-
GetGameSessionLogUrl— Akses log sesi game yang disimpan.
Buat sesi permainan
Tambahkan kode untuk memulai sesi game baru di armada yang Anda gunakan dan sediakan untuk pemain. Ada dua opsi untuk membuat sesi game, tergantung pada bagaimana solusi hosting game Anda mengelola penempatan sesi game.
Buat sesi game dengan antrian multi-lokasi
Gunakan StartGameSessionPlacement untuk menempatkan permintaan sesi permainan baru dalam antrian. Untuk menggunakan operasi ini, buat antrian. Ini menentukan di mana Amazon GameLift Servers menempatkan sesi permainan baru. Untuk informasi selengkapnya tentang antrian dan cara menggunakannya, lihatKonfigurasikan penempatan sesi game.
Saat membuat penempatan sesi game, tentukan nama antrian yang akan digunakan, nama sesi game, jumlah maksimum pemain bersamaan, dan serangkaian properti game opsional. Anda juga dapat secara opsional memberikan daftar pemain untuk secara otomatis bergabung dengan sesi permainan. Jika Anda menyertakan data latensi pemain untuk Wilayah yang relevan, maka Amazon GameLift Servers gunakan informasi ini untuk menempatkan sesi game baru pada armada yang memberikan pengalaman bermain yang ideal bagi para pemain.
Untuk mendapatkan pengukuran latensi yang akurat, gunakan Amazon GameLift Servers suar ping UDP. Titik akhir ini memungkinkan Anda mengukur latensi jaringan UDP aktual antara perangkat pemain dan lokasi hosting potensial, menghasilkan keputusan penempatan yang lebih akurat daripada menggunakan ping ICMP. Untuk informasi selengkapnya tentang menggunakan suar ping UDP untuk mengukur latensi, lihat. UDP ping beacon
Penempatan sesi game adalah proses asynchronous. Setelah Anda mengajukan permintaan, Anda dapat membiarkannya berhasil atau waktunya habis. Anda juga dapat membatalkan permintaan kapan saja menggunakan StopGameSessionPlacement. Untuk memeriksa status permintaan penempatan Anda, hubungi DescribeGameSessionPlacement.
Buat sesi permainan pada armada tertentu
Gunakan CreateGameSession untuk membuat sesi baru pada armada tertentu. Keberhasilan operasi sinkron ini tergantung pada apakah armada memiliki sumber daya yang tersedia untuk menjadi host sesi game baru. Setelah Amazon GameLift Servers membuat sesi permainan baru dan mengembalikan GameSession objek, Anda dapat bergabung dengan pemain ke sana.
Saat Anda menggunakan operasi ini, berikan ID armada atau ID alias, nama sesi, dan jumlah maksimum pemain bersamaan untuk permainan. Atau, Anda dapat menyertakan satu set properti game. Properti game didefinisikan dalam array pasangan kunci-nilai.
Jika Anda menggunakan fitur perlindungan Amazon GameLift Servers sumber daya untuk membatasi jumlah sesi permainan yang dapat dibuat pemain, berikan ID pemain pembuat sesi game.
Bergabunglah dengan pemain ke sesi permainan
Tambahkan kode untuk memesan slot pemain dalam sesi permainan aktif dan menghubungkan klien game ke sesi game. Tindakan ini tersedia jika game Anda menggunakan sesi pemain dengan ID pemain unik. Untuk informasi selengkapnya tentang sesi pemain, lihatAmazon GameLift Serversdan pengalaman pemain.
-
Pesan slot pemain dalam sesi permainan
Untuk memesan slot pemain, buat sesi pemain untuk sesi permainan. Ada dua cara untuk melakukan hal ini:
-
Jika Anda menggunakan StartGameSessionPlacement atau StartMatchmaking membuat sesi permainan, Anda dapat menyertakan satu atau lebih pemain dalam permintaan untuk membuat sesi pemain untuk mereka di sesi permainan baru.
-
Untuk menambahkan pemain ke sesi permainan yang ada, hubungi CreatePlayerSession atau CreatePlayerSessions dengan ID sesi game.
Permintaan sesi pemain harus menyertakan ID pemain yang unik. Untuk informasi selengkapnya, lihat Hasilkan pemain IDs. Setelah menerima permintaan, Amazon GameLift Servers memverifikasi bahwa sesi permainan menerima pemain baru dan memiliki slot pemain yang tersedia. Jika berhasilAmazon GameLift Servers, cadangkan slot untuk pemain, membuat sesi pemain baru, dan mengembalikan PlayerSession objek.
Sesi pemain dapat mencakup satu set data pemain khusus. Data ini disimpan dalam objek sesi pemain yang baru dibuat. Amazon GameLift Serversmeneruskan objek ini ke server game ketika pemain terhubung langsung ke sesi permainan. Saat meminta beberapa sesi pemain, petakan setiap string data pemain ke ID pemain.
-
-
Hubungkan ke sesi permainan
Tambahkan kode ke layanan backend untuk mengambil
PlayerSessionobjek (seperti dengan memanggil DescribePlayerSessions ()) dan meneruskannya kembali ke klien game. Objek ini berisi nama DNS, alamat IP, dan port. Klien game dapat menggunakan informasi ini untuk membuat koneksi langsung ke server.-
Anda dapat terhubung menggunakan port yang ditentukan dan nama DNS atau alamat IP yang ditetapkan untuk proses server.
-
Jika armada Anda mengaktifkan pembuatan sertifikat TLS, maka sambungkan menggunakan nama dan port DNS.
-
Jika server game Anda memvalidasi koneksi pemain yang masuk, maka rujuk ID sesi pemain.
Setelah membuat koneksi, klien game dan proses server berkomunikasi secara langsung tanpa melibatkanAmazon GameLift Servers. Server menjaga komunikasi dengan Amazon GameLift Servers untuk melaporkan status koneksi pemain, status kesehatan, dan banyak lagi.
Jika server game memvalidasi pemain yang masuk, maka itu memverifikasi bahwa ID sesi pemain cocok dengan slot yang dicadangkan dalam sesi permainan, dan menerima atau menolak koneksi pemain. Saat pemain terputus, proses server melaporkan connection yang terhenti.
-
Berikan data game khusus ke sesi game
Klien game Anda dapat meneruskan data ke sesi game. Saat Anda membuat sesi game, Anda dapat menyertakan satu set properti game (pasangan kunci-nilai) atau data sesi game (nilai string) dalam permintaan. Anda juga dapat memperbarui sesi game yang ada dengan data game baru atau yang diperbarui. Data ini diteruskan ke proses server game yang menjadi tuan rumah sesi game, untuk digunakan oleh kode server game. Anda tidak dapat menghapus properti game.
Sebagai contoh, katakanlah permainan Anda menentukan tingkat kesulitan:Novice,Easy,Intermediate, danExpert. Seorang pemain memilih untuk bergabung dengan permainan. Easy Klien game Anda, melalui layanan backend, meminta sesi game baru dengan properti game berikut:{"Key":
"Difficulty", "Value":"Easy"}. Sebagai tanggapanAmazon GameLift Servers, meminta server game yang tersedia untuk memulai sesi permainan baru dan melewati GameSession objek. Proses server game menggunakan properti game yang disediakan untuk mengatur tingkat kesulitan sesi permainan.