Integrasikan fungsionalitas klien Amazon GameLift Servers game - Amazon GameLift Servers

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

Integrasikan fungsionalitas klien Amazon GameLift Servers 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 dalam sesi permainan yang ada.

  • Buat sesi permainan baru untuk sekelompok pemain.

  • Minta perjodohan untuk satu atau lebih pemain.

  • Berikan data terbaru untuk sesi permainan yang ada.

Lihat Interaksi klien/server game dengan Amazon GameLift Servers untuk detail tambahan tentang bagaimana komponen hosting game berinteraksi melalui Amazon GameLift Servers SDKs.

Siapkan Amazon GameLift Servers 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 berjalan sebelum kode apa pun bergantung padaAmazon GameLift Servers.

  1. 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 menghubungi. Amazon GameLift Servers Wilayah mengidentifikasi kumpulan sumber daya yang digunakan (armada, antrian, dan mak comblang) untuk digunakan. Konfigurasi klien default menetapkan lokasi ke Wilayah AS Timur (Virginia N.). Untuk menggunakan Wilayah lain, buat konfigurasi khusus.

  2. Inisialisasi Amazon GameLift Servers klien. Gunakan Aws:GameLift::: GameLiftClient () (C ++) atau AmazonGameLiftClient() (C #) dengan konfigurasi klien default atau konfigurasi klien khusus.

  3. Jika Anda menggunakan sesi pemain, tambahkan mekanisme untuk menghasilkan pengenal unik untuk setiap pemain. Untuk informasi selengkapnya, lihat Hasilkan pemain IDs.

  4. Kumpulkan dan simpan informasi berikut:

    • Armada target — Jika Anda membuat sesi permainan secara manual pada armada tertentu, berikan ID armada atau ID alias yang mengarah 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 permainan baru, tentukan nama antrian untuk mengirim permintaan penempatan.

    • AWS kredensyal — Semua panggilan Amazon GameLift Servers harus memberikan kredensyal untuk Akun AWS yang menjadi tuan rumah game. Anda dapat memperoleh kredensyal ini dengan membuat pengguna pemain, seperti yang dijelaskan dalam. Siapkan akses terprogram untuk game Anda Bergantung pada bagaimana 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 kredenal keamanan sementara. Untuk informasi selengkapnya, lihat Beralih ke peran IAM (AWS API) di Panduan Pengguna IAM.

      • Jika Anda memiliki kredensyal keamanan jangka panjang, konfigurasikan kode Anda untuk menemukan dan menggunakan kredensyal yang disimpan. Lihat Mengautentikasi menggunakan kredensyal jangka panjang di dalam Panduan Referensi Alat AWS SDKs dan Alat. Untuk informasi tentang menyimpan kredensyal, lihat referensi AWS API untuk (C++) dan (.NET).

      • Jika Anda memiliki kredensyal keamanan sementara, tambahkan kode untuk menyegarkan kredensyal secara teratur menggunakan AWS Security Token Service (AWS STS), seperti yang dijelaskan dalam Menggunakan kredensyal keamanan sementara dengan Panduan Pengguna IAM. AWS SDKs Kode harus meminta kredensi baru sebelum yang lama kedaluwarsa.

Dapatkan sesi permainan aktif

Tambahkan kode untuk menemukan sesi permainan yang tersedia dan mengelola pengaturan sesi permainan dan metadata.

Cari sesi permainan aktif

Gunakan SearchGameSessionsuntuk mendapatkan informasi tentang sesi permainan tertentu, semua sesi aktif, atau sesi yang memenuhi serangkaian kriteria pencarian. Panggilan ini mengembalikan GameSessionobjek 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 permainan.

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 permainan yang penuh:CurrentPlayerSessionCount = MaximumPlayerSessionCount.

  • Pilih sesi permainan berdasarkan lamanya waktu sesi telah berjalan: EvaluasiCreationTime.

  • Temukan sesi game berdasarkan properti game khusus:gameSessionProperties.gameMode = "brawl".

Mengelola data sesi permainan

Gunakan salah satu operasi berikut untuk mengambil atau memperbarui informasi sesi game.

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 permainan dengan antrian multi-lokasi

Gunakan StartGameSessionPlacementuntuk menempatkan permintaan untuk sesi permainan baru dalam antrian. Untuk menggunakan operasi ini, buat antrian. Ini menentukan di mana Amazon GameLift Servers menempatkan sesi permainan baru. Untuk informasi lebih lanjut tentang antrian dan cara menggunakannya, lihat. Konfigurasikan penempatan sesi game

Saat membuat penempatan sesi permainan, tentukan nama antrian yang akan digunakan, nama sesi game, jumlah maksimum pemain bersamaan, dan kumpulan 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, Amazon GameLift Servers gunakan informasi ini untuk menempatkan sesi permainan baru pada armada yang memberikan pengalaman gameplay yang ideal bagi para pemain.

Untuk mendapatkan pengukuran latensi yang akurat, gunakan ping Amazon GameLift Servers beacon 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 lebih lanjut tentang penggunaan suar ping UDP untuk mengukur latensi, lihat. Suar ping UDP

Penempatan sesi game adalah proses asynchronous. Setelah Anda mengajukan permintaan, Anda dapat membiarkannya berhasil atau time out. Anda juga dapat membatalkan permintaan kapan saja menggunakan StopGameSessionPlacement. Untuk memeriksa status permintaan penempatan Anda, hubungi DescribeGameSessionPlacement.

Buat sesi permainan pada armada tertentu

Gunakan CreateGameSessionuntuk 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 GameSessionobjek, Anda dapat bergabung dengan pemain untuk itu.

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 permainan 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 permainan. Tindakan ini tersedia jika game Anda menggunakan sesi pemain dengan pemain unik IDs. Untuk informasi selengkapnya tentang sesi pemain, lihatAmazon GameLift Serversdan pengalaman pemain.

  1. Pesan slot pemain dalam sesi permainan

    Untuk memesan slot pemain, buat sesi pemain untuk sesi permainan. Ada dua cara untuk melakukan hal ini:

    Permintaan sesi pemain harus menyertakan ID pemain unik. Untuk informasi selengkapnya, lihat Hasilkan pemain IDs. Saat menerima permintaan, Amazon GameLift Servers verifikasi bahwa sesi permainan menerima pemain baru dan memiliki slot pemain yang tersedia. Jika berhasilAmazon GameLift Servers, pesan slot untuk pemain, buat sesi pemain baru, dan kembalikan PlayerSessionobjek.

    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.

  2. Connect ke sesi permainan

    Tambahkan kode ke layanan backend untuk mengambil PlayerSession objek (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, sambungkan menggunakan nama dan port DNS.

    • Jika server game Anda memvalidasi koneksi pemain yang masuk, maka rujuk ID sesi pemain.

    Setelah melakukan koneksi, klien game dan proses server berkomunikasi langsung tanpa melibatkanAmazon GameLift Servers. Server memelihara 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.

Teruskan data game khusus ke sesi game

Klien game Anda dapat meneruskan data ke sesi permainan. Saat membuat sesi permainan, Anda dapat menyertakan sekumpulan properti game (pasangan nilai kunci) atau data sesi game (nilai string) dalam permintaan. Anda juga dapat memperbarui sesi permainan 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 game Anda mendefinisikan tingkat kesulitan:Novice,, EasyIntermediate, danExpert. Seorang pemain memilih untuk bergabung dengan Easy permainan. Klien game Anda, melalui layanan backend, meminta sesi game baru dengan properti game berikut:. {"Key": "Difficulty", "Value":"Easy"} Sebagai tanggapan, Amazon 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 game.

Pelajari selengkapnya