View a markdown version of this page

Hasilkan permintaan pengisian ulang manual dari layanan backend - Amazon GameLift Servers

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

Hasilkan permintaan pengisian ulang manual dari layanan backend

Sebagai alternatif untuk mengirim permintaan backfill dari server game, Anda mungkin ingin mengirimnya dari layanan game sisi klien. Untuk menggunakan opsi ini, layanan sisi klien harus memiliki akses ke data terkini tentang aktivitas sesi game dan koneksi pemain; jika game Anda menggunakan layanan direktori sesi, ini mungkin pilihan yang baik.

Topik ini mengasumsikan bahwa Anda telah membangun FlexMatch komponen yang diperlukan dan berhasil menambahkan proses perjodohan ke server game Anda dan layanan game sisi klien. Untuk detail lebih lanjut tentang pengaturanFlexMatch, lihatPeta jalan: Tambahkan perjodohan ke solusi hosting Amazon GameLift Servers.

Untuk mengaktifkan backfill kecocokan untuk game Anda, tambahkan fungsionalitas berikut:

Seperti fungsionalitas klien lainnya, layanan game sisi klien menggunakan AWS SDK dengan API. Amazon GameLift Servers SDK ini tersedia dalam C++, C#, dan beberapa bahasa lainnya. Untuk deskripsi umum klien APIs, lihat Referensi Amazon GameLift Servers API, yang menjelaskan API layanan untuk Amazon GameLift Servers tindakan dan tautan ke panduan referensi khusus bahasa.

Untuk menyiapkan layanan game sisi klien untuk mengisi ulang game yang cocok, selesaikan tugas berikut.

  1. Memicu permintaan untuk penimbunan ulang. Umumnya, game memulai permintaan backfill setiap kali game yang cocok memiliki satu atau beberapa slot pemain kosong. Anda mungkin ingin mengaitkan permintaan backfill dengan keadaan tertentu, seperti untuk mengisi peran karakter penting atau menyeimbangkan tim. Anda mungkin juga ingin membatasi backfill berdasarkan usia sesi game. Apa pun yang Anda gunakan untuk pemicu, minimal Anda akan membutuhkan informasi berikut. Anda bisa mendapatkan informasi ini dari objek sesi permainan (GameSession) dengan menelepon DescribeGameSessionsdengan ID sesi game.

    • Jumlah slot pemain yang saat ini kosong. Nilai ini dapat dihitung dari batas pemain maksimum sesi game dan jumlah pemain saat ini. Jumlah pemain saat ini diperbarui setiap kali server game Anda menghubungi Amazon GameLift Servers layanan untuk memvalidasi koneksi pemain baru atau melaporkan pemain yang dijatuhkan.

    • Kebijakan pembuatan. Pengaturan ini menunjukkan apakah sesi game saat ini menerima pemain baru.

    Objek sesi game berisi informasi lain yang berpotensi berguna, termasuk waktu mulai sesi game, properti game kustom, dan data pembuat kecocokan.

  2. Buat permintaan isi ulang. Tambahkan kode untuk membuat dan mengirim permintaan pengisian ulang kecocokan ke FlexMatch mak comblang. Permintaan isi ulang ditangani menggunakan klien ini: APIs

    Untuk membuat permintaan backfill, panggil StartMatchBackfill dengan menyertakan informasi berikut. Permintaan backfill mirip dengan permintaan pencocokan (lihat Meminta matchmaking untuk pemain), tetapi juga mengidentifikasi sesi game yang ada. Untuk membatalkan permintaan backfill, hubungi StopMatchmaking dengan menyertakan ID tiket permintaan backfill.

    • ID Tiket — Berikan ID tiket pencocokan (atau memilih untuk membuatnya otomatis). Anda dapat menggunakan mekanisme yang sama untuk menetapkan tiket IDs ke permintaan perjodohan dan pengisian ulang. Tiket untuk pencocokan dan backfill diproses dengan cara yang sama.

    • Pembuat kecocokan — Identifikasi nama konfigurasi pencocokan untuk digunakan. Umumnya, Anda ingin menggunakan pembuat kecocokan yang sama untuk backfill yang digunakan untuk membuat kecocokan asli. Informasi ini ada di objek sesi permainan (GameSession), MatchmakerData properti, di bawah konfigurasi perjodohan ARN. Nilai nama adalah string berikut "" konfigurasi perjodohan / ". (Misalnya, dalam nilai ARN "arn:aws:gamelift: us-west-2: 111122223333: konfigurasi perjodohan / MM-4v4", nama konfigurasi perjodohan adalah "MM-4v4".)

    • ARN sesi game — Menentukan sesi permainan yang akan diisi ulang. Gunakan properti GameSessionId dari objek sesi game; ID ini menggunakan nilai ARN yang Anda butuhkan. Tiket perjodohan (MatchmakingTicket) untuk permintaan isi ulang memiliki ID sesi permainan saat sedang diproses; tiket untuk permintaan perjodohan baru tidak mendapatkan ID sesi permainan sampai pertandingan ditempatkan; kehadiran ID sesi permainan adalah salah satu cara untuk membedakan antara tiket untuk pertandingan baru dan tiket untuk pengisian ulang.

    • Data pemain — Sertakan informasi pemain (Pemain) untuk semua pemain saat ini dalam sesi game yang sedang Anda backfill. Informasi ini memungkinkan pembuat kecocokan untuk menemukan kecocokan pemain terbaik untuk para pemain saat ini dalam sesi game. Anda harus menyertakan keanggotaan tim untuk setiap pemain. Jangan tentukan tim jika Anda tidak menggunakan backfill. Jika server game Anda telah melaporkan status koneksi pemain secara akurat, Anda seharusnya dapat memperoleh data ini sebagai berikut:

      1. Call DescribePlayerSessions() dengan ID sesi game untuk menemukan semua pemain yang saat ini terhubung ke sesi permainan. Setiap sesi pemain menyertakan ID pemain. Anda dapat menambahkan filter status untuk mengambil sesi pemain aktif saja.

      2. Tarik data pemain dari objek sesi permainan (GameSession), MatchmakerData properti (lihatTentang data mak comblang. Gunakan pemain yang IDs diperoleh pada langkah sebelumnya untuk mendapatkan data hanya untuk pemain yang terhubung saat ini. Karena data pembuat kecocokan tidak diperbarui saat pemain keluar, Anda hanya perlu mengekstrak data untuk pemain saat ini.

      3. Untuk latensi pemain, jika pembuat kecocokan meminta data latensi, kumpulkan nilai latensi baru dari semua pemain saat ini dan sertakan dalam objek Player. Jika data latensi dihilangkan dan pembuat kecocokan memiliki aturan latensi, permintaan tidak akan berhasil dicocokkan. Permintaan backfill memerlukan data latensi hanya untuk wilayah tempat sesi game saat ini berada. Anda bisa mendapatkan wilayah sesi game dari properti GameSessionId dari objek GameSession; nilai ini adalah ARN, yang mencakup wilayah.

  3. Lacak status permintaan isi ulang. Tambahkan kode untuk mendengarkan pembaruan status tiket pencocokan. Anda dapat menggunakan mekanisme yang diatur untuk melacak tiket untuk permintaan pencocokan baru (lihat Melacak peristiwa pencocokan) menggunakan pemberitahuan acara (lebih disukai) atau polling. Meskipun Anda tidak perlu memicu aktivitas penerimaan pemain dengan permintaan backfill, dan informasi pemain diperbarui di server game, Anda masih perlu memantau status tiket untuk menangani kegagalan permintaan dan pengiriman ulang.

    Pembuat kecocokan hanya dapat memproses satu permintaan backfill kecocokan dari sesi game pada satu waktu. Jika Anda perlu membatalkan permintaan, hubungi StopMatchmaking. Jika Anda perlu mengubah permintaan, panggil StopMatchmaking kemudian kirim permintaan yang diperbarui.

    Setelah permintaan pengurukan pertandingan berhasil, server game Anda menerima GameSession objek dan menangani tugas-tugas yang diperlukan untuk bergabung dengan pemain baru untuk sesi permainan. Lihat selengkapnya di Memperbarui data kecocokan pada server game.