Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Plugin untuk Unity: Terapkan game Anda ke armada EC2 yang dikelola
Dalam alur kerja ini, Anda menggunakan plugin untuk mempersiapkan game Anda untuk hosting di sumber daya komputasi berbasis cloud yang dikelola olehAmazon GameLift Servers. Anda menambahkan kode permainan klien dan server untuk Amazon GameLift Servers fungsionalitas, lalu mengunggah build server Anda ke Amazon GameLift Servers layanan untuk hosting. Ketika alur kerja ini selesai, Anda akan memiliki server game yang berjalan di cloud dan klien game yang berfungsi yang dapat terhubung ke mereka.
Untuk memulai GameLift Server Amazon alur kerja Amazon EC2 yang dikelola:
Di menu utama editor Unity, pilih Amazon GameLift Servers dan pilih Host dengan Managed EC2. Alur kerja ini menyajikan proses enam langkah untuk mengintegrasikan, membangun, menerapkan, 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 Wil AWS ayah default profil. Izin pengguna profil menentukan akses Anda ke AWS sumber daya dan tindakan.
-
Pilih profil dari daftar dropdown profil yang tersedia. Jika Anda belum memiliki profil atau ingin membuat yang baru, buka Amazon GameLift Servers menu dan pilih Set Ac AWS count Profiles.
-
Jika status bootstrap bukan “Aktif”, pilih profil Bootstrap dan tunggu status berubah menjadi “Aktif”.
Integrasikan game Anda dengan GameLift Server Amazon
Untuk tugas ini, Anda membuat pembaruan ke kode klien dan server dalam proyek game Anda.
-
Server game harus dapat berkomunikasi dengan Amazon GameLift Servers layanan untuk menerima petunjuk untuk memulai sesi game, memberikan informasi koneksi sesi game, dan melaporkan status.
-
Klien game harus bisa mendapatkan informasi tentang sesi game, bergabung atau memulai sesi game, dan mendapatkan informasi koneksi untuk bergabung dengan game.
catatan
Jika Anda mengimpor game sampel, Anda dapat melewati langkah ini. Aset game 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.
-
Di file proyek game Anda, buka
Assets/Scripts/Serverfolder. Jika tidak ada, buatlah. -
Pergi ke GitHub repo aws/amazon -gamelift-plugin-
unity dan buka jalurnya. Samples~/SampleGame/Assets/Scripts/Server -
Temukan file
GameLiftServer.csdan salin keServerfolder 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 Servers C# (versi 5):
-
Menginisialisasi klien Amazon GameLift Servers API. Panggilan initSDK () dengan parameter server diperlukan untuk armada AnywhereAmazon GameLift Servers. Pengaturan ini secara otomatis diatur untuk digunakan dalam plugin.
-
Mengimplementasikan fungsi callback yang diperlukan untuk menanggapi permintaan dari Amazon GameLift Servers layanan, termasuk
OnStartGameSession,OnProcessTerminate, danonHealthCheck. -
Panggilan
ProcessReady()dengan port yang ditunjuk untuk memberi tahu Amazon GameLift Servers layanan ketika proses server siap untuk menyelenggarakan sesi permainan.
Jika Anda ingin menyesuaikan kode server sampel, lihat sumber daya berikut:
Integrasikan kode klien Anda
Untuk klien game yang terhubung ke server game berbasis cloud, sebaiknya gunakan layanan backend sisi klien untuk melakukan panggilan ke Amazon GameLift Servers layanan, alih-alih melakukan panggilan langsung dari klien game.
Dalam alur kerja plugin untuk hosting pada armada EC2 terkelola, setiap skenario penerapan menyertakan layanan backend yang dibuat sebelumnya yang mencakup komponen berikut:
-
Satu set fungsi Lambda dan tabel DynamoDB yang digunakan untuk meminta sesi permainan dan mengambil informasi sesi permainan. Komponen-komponen ini menggunakan gateway API sebagai proxy.
-
Kumpulan pengguna Amazon Cognito yang menghasilkan ID pemain unik dan mengotentikasi 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.
-
Integrasikan klien dengan GameLiftCoreApi
kelas di GitHub repo aws/amazon - gamelift-plugin-unity. Kelas ini menyediakan kontrol untuk otentikasi pemain dan untuk mengambil informasi sesi game. -
Untuk melihat contoh integrasi game, buka GitHub repo aws/amazon -
gamelift-plugin-unity,. Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs -
Mengintegrasikan GameLift Server Amazon fungsionalitas klien game.
(Hanya Unity 6.3+) Integrasikan skrip install.sh
Unity 6.3 di Linux membutuhkan glibc 2.35. Amazon Linux 2023 menyertakan glibc 2.34. Skrip install.sh disediakan yang menangani pembuatan glibc 2.35 dari sumber dan mengonfigurasi binari Unity untuk menggunakan glibc 2.35.
-
Pergi ke GitHub repo aws/amazon -gamelift-plugin-
unity dan buka jalurnya. ExtraServerResources -
Temukan file
install.shdan salin ke folder yang berisi build server Anda. -
Jika Anda memiliki yang sudah ada
install.sh, gabungkan konten kedua skrip menjadi satuinstall.sh.
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.
Single-region armada: Menyebarkan server game Anda ke satu armada sumber daya hosting di AWS wilayah default 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 fleet (On-Demand) dengan build server game Anda diinstal dan berjalan.
Kumpulan pengguna dan klien Amazon Cognito untuk memungkinkan pemain mengotentikasi dan memulai permainan.
Otorisasi gateway API yang menghubungkan 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 + fungsi Lambda bagi pemain untuk mendapatkan info koneksi untuk permintaan game mereka.
FlexMatch armada: Menyebarkan server game Anda ke satu set armada dan menyiapkan FlexMatch matchmaker dengan aturan untuk membuat pertandingan pemain. Skenario ini menggunakan hosting Spot berbiaya rendah dengan struktur multi-armada dan multi-lokasi untuk ketersediaan yang tahan lama. Pendekatan ini berguna ketika Anda siap untuk mulai merancang komponen matchmaker 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 diatur untuk menerima permintaan pemain dan membentuk pertandingan.
-
Tiga AWS armada dengan build server game Anda diinstal dan berjalan di beberapa lokasi. Termasuk dua armada Spot dan satu On-Demand armada sebagai cadangan.
-
AWS antrian penempatan sesi permainan yang memenuhi permintaan untuk pertandingan yang diusulkan dengan menemukan sumber daya hosting terbaik (berdasarkan kelangsungan hidup, biaya, latensi pemain, dll.) Dan memulai sesi permainan.
-
Kumpulan pengguna dan klien Amazon Cognito untuk memungkinkan pemain mengotentikasi dan memulai permainan.
-
Otorisasi gateway API yang menghubungkan 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
StartMatchmaking(). -
API gateway + fungsi Lambda 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+fungsi Lambda untuk menangani GameSessionQueue peristiwa.
Mengatur parameter permainan
Pada langkah ini, Anda menjelaskan permainan Anda untuk diunggah AWS.
-
Nama permainan: Ber ikan nama yang bermakna untuk proyek game Anda. Nama ini digunakan dalam plugin.
-
Nama armada: Ber ikan nama yang berarti untuk armada EC2 terkelola Anda. Amazon GameLift Serversmenggunakan nama ini (bersama dengan ID armada) saat mencantumkan sumber daya di AWS konsol.
-
Nama build: Ber ikan nama yang bermakna untuk build server Anda. AWS menggunakan nama ini untuk merujuk pada salinan build server Anda yang diunggah ke Amazon GameLift Servers 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: Ber ikan jalur ke folder lokal yang berisi build server Anda.
-
File server game: T entukan 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 saat AWS memvalidasi build server Anda, menyediakan sumber daya hosting, menginstal server game Anda, meluncurkan proses server, dan membuatnya siap untuk menyelenggarakan sesi game.
Untuk memulai penerapan, pilih Deplo y CloudFormation. Anda dapat melacak status hosting game Anda di sini. Untuk informasi selengkapnya, Anda dapat masuk ke konsol AWS Manajemen untuk AWS dan melihat notifikasi acara. Pastikan untuk masuk menggunakan akun, pengguna, dan Wil AWS ayah yang sama dengan profil pengguna aktif di plugin.
Ketika penerapan selesai, server game Anda diinstal pada instans AWS EC2. Setidaknya satu proses server sedang 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.
-
Konfigurasikan klien game Anda. Pada langkah ini, Anda meminta plugin untuk memperbarui
GameLiftClientSettingsaset untuk proyek game Anda. Plugin menggunakan aset ini untuk menyimpan informasi tertentu yang dibutuhkan klien game Anda untuk terhubung ke Amazon GameLift Servers layanan.-
Jika Anda tidak mengimpor dan menginisialisasi game sampel, buat
GameLiftClientSettingsaset baru. Di menu utama editor Unity, pilih Assets, Create, Amazon GameLift, Client Settings. Jika Anda membuat beberapa salinanGameLiftClientSettingsdalam proyek Anda, plugin secara otomatis mendeteksi ini dan memberi tahu Anda aset mana yang akan diperbarui plugin. -
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.
-
-
Bangun klien game Anda. Membangun klien yang dapat dieksekusi menggunakan proses build Unity standar. Di File, Build Settings, alihkan platform ke Windows, Mac, Linux. Jika Anda mengimpor game sampel dan menginisialisasi pengaturan, daftar build dan target build akan diperbarui secara otomatis.
-
Luncurkan klien game yang baru dibangun yang dapat dieksekusi. Untuk mulai memainkan game, mulai dua hingga empat instance klien dan gunakan UI di masing-masing untuk bergabung dengan sesi game.
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 permainan bergabung 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 game yang ada.
-
Sesi permainan dengan empat slot pemain. Anda dapat meluncurkan hingga empat instans klien game secara bersamaan dan mereka akan bergabung dengan sesi game yang sama.