Tambahkan Amazon GameLift ke klien game Anda - Amazon GameLift

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

Tambahkan Amazon GameLift ke klien game Anda

Integrasikan Amazon GameLift ke dalam komponen game yang membutuhkan informasi sesi game, buat sesi game baru, dan tambahkan pemain ke game. Bergantung pada arsitektur game Anda, fungsi ini ada di layanan backend yang menangani tugas-tugas seperti otentikasi pemain, perjodohan, atau penempatan sesi game.

catatan

Untuk informasi mendetail tentang cara mengatur perjodohan untuk game yang GameLift dihosting Amazon, lihat Panduan GameLift FlexMatchPengembang Amazon.

Siapkan Amazon GameLift di layanan backend

Tambahkan kode untuk menginisialisasi GameLift klien Amazon dan menyimpan pengaturan kunci. Kode ini harus berjalan sebelum kode apa pun bergantung pada Amazon GameLift.

  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 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 GameLift klien Amazon. Gunakan Aws:GameLift::: GameLiftClient () (C ++) atau AmazonGameLiftClient() (C #) dengan konfigurasi klien default atau konfigurasi klien khusus.

  3. Tambahkan mekanisme untuk menghasilkan pengenal unik bagi setiap pemain. Untuk informasi selengkapnya, lihat Hasilkan ID pemain.

  4. Kumpulkan dan simpan informasi berikut:

    • Armada target - Banyak permintaan GameLift API Amazon harus menentukan armada. Untuk melakukannya, gunakan ID armada atau ID alias yang menunjuk ke armada target. 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 yang akan digunakan.

    • AWS kredensial — Semua panggilan ke Amazon GameLift harus memberikan kredensi untuk yang Akun AWS menghosting game. Anda 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 API. Permintaan untuk mengambil peran mengembalikan satu set kredensyal keamanan sementara. Untuk informasi selengkapnya, lihat Beralih ke peran IAM (AWS API) di Panduan Pengguna IAM.

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

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

Dapatkan sesi permainan

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.

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".

Kelola 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 permainan, tergantung pada apakah Anda menerapkan game Anda di beberapa Wilayah AWS atau dalam satu Wilayah.

Buat sesi permainan dalam 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 menempatkan sesi permainan baru. Untuk informasi lebih lanjut tentang antrian dan cara menggunakannya, lihat. Menyiapkan GameLift antrean Amazon untuk 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, maka Amazon GameLift menggunakan informasi ini untuk menempatkan sesi permainan baru pada armada yang memberikan pengalaman gameplay yang ideal bagi para pemain.

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 membuat sesi permainan baru dan mengembalikan GameSessionobjek, 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 permainan didefinisikan dalam array pasangan kunci-nilai.

Jika Anda menggunakan fitur perlindungan GameLift sumber daya Amazon untuk membatasi jumlah sesi permainan yang dapat dibuat oleh satu 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.

  1. Pesan slot pemain dalam sesi permainan

    Untuk menyimpan slot pemain, buat sesi pemain baru untuk sesi game. Untuk informasi selengkapnya tentang sesi pemain, lihatBagaimana pemain terhubung ke game.

    Ada dua cara untuk membuat sesi pemain baru:

    Amazon GameLift pertama kali memverifikasi bahwa sesi permainan menerima pemain baru dan memiliki slot pemain yang tersedia. Jika berhasil, Amazon GameLift mencadangkan slot untuk pemain, membuat sesi pemain baru, dan mengembalikan PlayerSessionobjek. Objek ini berisi nama DNS, alamat IP, dan port yang dibutuhkan klien game untuk terhubung ke sesi permainan.

    Permintaan sesi pemain harus menyertakan ID unik untuk setiap pemain. Untuk informasi selengkapnya, lihat Hasilkan ID pemain.

    Sesi pemain dapat mencakup satu set data pemain khusus. Data ini disimpan dalam objek sesi pemain yang baru dibuat, yang dapat Anda ambil dengan memanggil DescribePlayerSessions(). Amazon GameLift juga meneruskan objek ini ke server game ketika pemain terhubung langsung ke sesi permainan. Saat meminta beberapa sesi pemain, berikan serangkaian data pemain untuk setiap pemain yang dipetakan ke ID pemain dalam permintaan.

  2. Connect ke sesi permainan

    Menambahkan kode untuk klien game guna mengambil objek PlayerSession, yang berisi informasi connection sesi game. Gunakan 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 membuat koneksi, klien game dan proses server berkomunikasi langsung tanpa melibatkan Amazon GameLift. Server memelihara komunikasi dengan Amazon GameLift 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.

Gunakan properti sesi game

Klien game Anda dapat meneruskan data ke sesi permainan dengan menggunakan properti game. Properti game adalah pasangan nilai kunci yang dapat ditambahkan, dibaca, dicantumkan, dan diubah oleh server game Anda. Anda dapat meneruskan properti game saat membuat sesi permainan baru, atau nanti saat sesi permainan aktif. Sesi permainan dapat berisi hingga 16 properti game. Anda tidak dapat menghapus properti game.

Misalnya, game Anda menawarkan tingkat kesulitan ini:Novice,Easy,Intermediate, danExpert. Seorang pemain memilihEasy, dan kemudian memulai permainan. Klien game Anda meminta sesi game baru dari Amazon GameLift dengan menggunakan salah satu StartGameSessionPlacement atau CreateGameSession seperti yang dijelaskan di bagian sebelumnya. Dalam permintaan tersebut, klien melewati ini:{"Key": "Difficulty", "Value":"Easy"}.

Menanggapi permintaan tersebut, Amazon GameLift membuat GameSession objek yang berisi properti game yang ditentukan. Amazon GameLift kemudian menginstruksikan server game yang tersedia untuk memulai sesi permainan baru dan melewati GameSession objek. Server game memulai sesi permainan dengan Difficulty aEasy.

Pelajari selengkapnya