Plugin for Unity: Terapkan game Anda ke armada EC2 yang dikelola - Amazon GameLift

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

Plugin for Unity: Terapkan game Anda ke armada EC2 yang dikelola

Dalam alur kerja ini, Anda menggunakan plugin untuk mempersiapkan game Anda untuk hosting pada sumber daya komputasi berbasis cloud yang dikelola oleh Amazon. GameLift Anda menambahkan kode game klien dan server untuk GameLift fungsionalitas Amazon, lalu unggah build server Anda ke GameLift layanan Amazon untuk hosting. Ketika alur kerja ini selesai, Anda akan memiliki server game yang berjalan di cloud dan klien game yang berfungsi yang dapat terhubung dengannya.

Untuk memulai alur kerja Amazon EC2 yang GameLift dikelola Amazon:
  • Di menu utama editor Unity, pilih Amazon GameLift dan pilih Host with Managed EC2. Alur kerja ini menyajikan proses enam langkah untuk mengintegrasikan, membangun, menyebarkan, dan meluncurkan komponen game Anda.

Tetapkan profil Anda

Pilih profil yang ingin Anda gunakan saat mengikuti alur kerja ini. Profil yang Anda pilih memengaruhi semua langkah dalam alur kerja. Semua sumber daya yang Anda buat dikaitkan dengan AWS akun profil dan ditempatkan di AWS Wilayah default profil. Izin pengguna profil menentukan akses Anda ke AWS sumber daya dan tindakan.

  1. Pilih profil dari daftar dropdown profil yang tersedia. Jika Anda belum memiliki profil atau ingin membuat yang baru, buka GameLift menu Amazon dan pilih Set AWS Account Profiles.

  2. Jika status bootstrap bukan “Aktif”, pilih profil Bootstrap dan tunggu statusnya berubah menjadi “Aktif”.

Integrasikan game Anda dengan Amazon GameLift

Untuk tugas ini, Anda membuat pembaruan untuk klien dan kode server dalam proyek game Anda.

  • Server game harus dapat berkomunikasi dengan GameLift layanan Amazon untuk menerima petunjuk untuk memulai sesi permainan, memberikan informasi koneksi sesi game, dan melaporkan status.

  • Klien game harus bisa mendapatkan informasi tentang sesi permainan, bergabung atau memulai sesi permainan, dan mendapatkan informasi koneksi untuk bergabung dengan game.

catatan

Jika Anda mengimpor contoh permainan, Anda dapat melewati langkah ini. Aset permainan sampel sudah memiliki server dan kode klien yang diperlukan.

Integrasikan kode server Anda

Saat menggunakan proyek game Anda sendiri dengan adegan khusus, gunakan kode sampel yang disediakan untuk menambahkan kode server yang diperlukan ke proyek game Anda. Jika Anda mengintegrasikan proyek game Anda untuk pengujian dengan armada Anywhere, Anda telah menyelesaikan instruksi dalam langkah ini.

  1. Dalam file proyek game Anda, buka Assets/Scripts/Server folder. Jika tidak ada, buatlah.

  2. Pergi ke GitHub repo aws/ amazon-gamelift-plugin-unity dan buka jalurnya. Samples~/SampleGame/Assets/Scripts/Server

  3. Temukan file GameLiftServer.cs dan salin ke Server folder proyek game Anda. Saat Anda membangun server yang dapat dieksekusi, gunakan file ini sebagai target build.

Kode sampel mencakup elemen minimum yang diperlukan ini, yang menggunakan SDK server Amazon GameLift C # (versi 5):

  • Menginisialisasi klien GameLift API Amazon. Panggilan initSDK () dengan parameter server diperlukan untuk armada Amazon Anywhere. GameLift Pengaturan ini secara otomatis diatur untuk digunakan dalam plugin.

  • Menerapkan fungsi callback yang diperlukan untuk menanggapi permintaan dari GameLift layanan Amazon, termasuk OnStartGameSessionOnProcessTerminate, dan. onHealthCheck

  • Panggilan ProcessReady() dengan port yang ditunjuk untuk memberi tahu GameLift layanan Amazon ketika proses server siap untuk meng-host sesi permainan.

Jika Anda ingin menyesuaikan kode server sampel, lihat sumber daya ini:

Integrasikan kode klien Anda

Untuk klien game yang terhubung ke server game berbasis cloud, sebaiknya gunakan layanan backend sisi klien untuk melakukan panggilan ke GameLift layanan Amazon, alih-alih melakukan panggilan langsung dari klien game.

Dalam alur kerja plugin untuk hosting pada armada EC2 terkelola, setiap skenario penerapan mencakup layanan backend pra-bangun yang mencakup komponen-komponen berikut:

  • Satu set fungsi Lambda dan tabel DynamoDB yang digunakan untuk meminta sesi permainan dan mengambil informasi sesi permainan. Komponen ini menggunakan gateway API sebagai proxy.

  • Kumpulan pengguna Amazon Cognito yang menghasilkan ID pemain unik dan mengautentikasi koneksi pemain.

Untuk menggunakan komponen ini, klien game Anda memerlukan fungsionalitas untuk mengirim permintaan ke layanan backend untuk melakukan hal berikut:

  • Buat pengguna pemain di kumpulan pengguna AWS Cognito dan autentikasi.

  • Bergabunglah dengan sesi permainan dan terima informasi koneksi.

  • Bergabunglah dengan permainan menggunakan perjodohan.

Gunakan sumber daya berikut sebagai panduan.

Pilih skenario penerapan

Pada langkah ini, Anda memilih solusi hosting game yang ingin Anda terapkan saat ini. Anda dapat memiliki beberapa penerapan game Anda, menggunakan salah satu skenario.

  • Armada wilayah tunggal: Menyebarkan server game Anda ke satu armada sumber daya hosting di wilayah default AWS profil aktif. Skenario ini adalah titik awal yang baik untuk menguji integrasi server Anda dengan AWS dan konfigurasi build server. Ini menyebarkan sumber daya berikut:

    • AWS armada (On-Demand) dengan build server game Anda diinstal dan dijalankan.

    • Kumpulan pengguna dan klien Amazon Cognito untuk memungkinkan pemain mengautentikasi dan memulai permainan.

    • Authorizer gateway API yang menautkan kumpulan pengguna dengan API.

    • WebACL untuk membatasi panggilan pemain yang berlebihan ke gateway API.

    • API gateway +Fungsi Lambda bagi pemain untuk meminta slot game. Fungsi ini memanggil CreateGameSession() jika tidak ada yang tersedia.

    • API gateway +Lambda berfungsi bagi pemain untuk mendapatkan info koneksi untuk permintaan game mereka.

  • FlexMatch armada: Menyebarkan server game Anda ke satu set armada dan menyiapkan mak FlexMatch comblang dengan aturan untuk membuat pertandingan pemain. Skenario ini menggunakan hosting Spot berbiaya rendah dengan struktur multi-armada, multi-lokasi untuk ketersediaan yang tahan lama. Pendekatan ini berguna ketika Anda siap untuk mulai merancang komponen mak comblang untuk solusi hosting Anda. Dalam skenario ini, Anda akan membuat sumber daya dasar untuk solusi ini, yang dapat Anda sesuaikan nanti sesuai kebutuhan. Ini menyebarkan sumber daya berikut:

    • FlexMatch konfigurasi perjodohan dan aturan perjodohan ditetapkan untuk menerima permintaan pemain dan pertandingan formulir.

    • Tiga AWS armada dengan build server game Anda diinstal dan berjalan di beberapa lokasi. Termasuk dua armada Spot dan satu armada On-Demand sebagai cadangan.

    • AWS antrian penempatan sesi permainan yang memenuhi permintaan untuk pertandingan yang diusulkan dengan menemukan sumber daya hosting terbaik (berdasarkan kelayakan, biaya, latensi pemain, dll.) Dan memulai sesi permainan.

    • Kumpulan pengguna dan klien Amazon Cognito untuk memungkinkan pemain mengautentikasi dan memulai permainan.

    • Authorizer gateway API yang menautkan kumpulan pengguna dengan API.

    • WebACL untuk membatasi panggilan pemain yang berlebihan ke gateway API.

    • API gateway +Fungsi Lambda bagi pemain untuk meminta slot game. Fungsi ini memanggilStartMatchmaking().

    • API gateway +Lambda berfungsi bagi pemain untuk mendapatkan info koneksi untuk permintaan game mereka.

    • Tabel Amazon DynamoDB untuk menyimpan tiket perjodohan untuk pemain dan informasi sesi permainan.

    • Topik SNS+Lambda berfungsi untuk GameSessionQueue menangani acara.

Tetapkan parameter permainan

Pada langkah ini, Anda menjelaskan game Anda untuk diunggah. AWS

  • Nama game: Berikan nama yang berarti untuk proyek game Anda. Nama ini digunakan dalam plugin.

  • Nama armada: Berikan nama yang berarti untuk armada EC2 terkelola Anda. Amazon GameLift menggunakan nama ini (bersama dengan ID armada) saat mencantumkan sumber daya di AWS konsol.

  • Nama build: Berikan nama yang berarti untuk build server Anda. AWS menggunakan nama ini untuk merujuk ke salinan build server Anda yang diunggah ke Amazon GameLift dan digunakan untuk penerapan.

  • Parameter peluncuran: Masukkan instruksi opsional untuk dijalankan saat meluncurkan server yang dapat dieksekusi pada instance armada EC2 terkelola. Panjang maksimum adalah 1024 karakter.

  • Folder server game: Berikan jalur ke folder lokal yang berisi build server Anda.

  • File server game: Tentukan nama file server yang dapat dieksekusi.

Menyebarkan skenario

Pada langkah ini, Anda menerapkan game Anda ke solusi hosting cloud berdasarkan skenario penerapan yang Anda pilih. Proses ini dapat memakan waktu beberapa menit sambil AWS memvalidasi pembuatan server Anda, menyediakan sumber daya hosting, menginstal server game Anda, meluncurkan proses server, dan membuatnya siap untuk meng-host sesi game.

Untuk memulai penerapan, pilih CloudFormationDeploy. Anda dapat melacak status hosting game Anda di sini. Untuk informasi selengkapnya, Anda dapat masuk ke konsol AWS Manajemen untuk AWS dan melihat pemberitahuan acara. Pastikan untuk masuk menggunakan akun, pengguna, dan AWS Wilayah yang sama dengan profil pengguna aktif di plugin.

Saat penerapan selesai, server game Anda diinstal pada instans AWS EC2. Setidaknya satu proses server berjalan dan siap untuk memulai sesi permainan.

Luncurkan klien game

Ketika armada Anda berhasil digunakan, Anda sekarang memiliki server game yang berjalan dan tersedia untuk menyelenggarakan sesi game. Anda sekarang dapat membangun klien Anda, meluncurkannya, terhubung untuk bergabung dengan sesi permainan.

  1. Konfigurasikan klien game Anda. Pada langkah ini, Anda meminta plugin untuk memperbarui GameLiftClientSettings aset untuk proyek game Anda. Plugin menggunakan aset ini untuk menyimpan informasi tertentu yang dibutuhkan klien game Anda untuk terhubung ke GameLift layanan Amazon.

    1. Jika Anda tidak mengimpor dan menginisialisasi game sampel, buat GameLiftClientSettings aset baru. Di menu utama editor Unity, pilih Assets, Create, GameLift, Client Settings. Jika Anda membuat beberapa salinan GameLiftClientSettings dalam proyek Anda, plugin secara otomatis mendeteksi ini dan memberi tahu Anda aset mana yang akan diperbarui plugin.

    2. Di Luncurkan Game, pilih Konfigurasi Klien: Terapkan Pengaturan EC2 Terkelola. Tindakan ini memperbarui pengaturan klien game Anda untuk menggunakan armada EC2 terkelola yang baru saja Anda gunakan.

  2. Bangun klien game Anda. Bangun klien yang dapat dieksekusi menggunakan proses pembuatan Unity standar. Di File, Build Settings, alihkan platform ke Windows, Mac, Linux. Jika Anda mengimpor contoh game dan menginisialisasi pengaturan, daftar build dan target build akan diperbarui secara otomatis.

  3. Luncurkan klien game build baru yang dapat dieksekusi. Untuk mulai bermain game, mulai dua hingga empat instance klien dan gunakan UI di masing-masing untuk bergabung dengan sesi permainan.

Jika Anda menggunakan klien game sampel, ia memiliki karakteristik sebagai berikut:

  • Komponen login pemain. Saat menghubungkan ke server game di armada Anywhere, tidak ada validasi pemain. Anda dapat memasukkan nilai apa pun untuk bergabung dengan sesi permainan.

  • UI game gabungan sederhana. Ketika klien mencoba untuk bergabung dengan permainan, klien secara otomatis mencari sesi permainan aktif dengan slot pemain yang tersedia. Jika tidak ada sesi permainan yang tersedia, klien meminta sesi permainan baru. Jika sesi permainan tersedia, klien meminta untuk bergabung dengan sesi permainan yang tersedia. Saat menguji game Anda dengan beberapa klien bersamaan, klien pertama memulai sesi permainan, dan klien yang tersisa secara otomatis bergabung dengan sesi permainan yang ada.

  • Sesi permainan dengan empat slot pemain. Anda dapat meluncurkan hingga empat instance klien game secara bersamaan dan mereka akan bergabung dengan sesi game yang sama.