Plugin untuk Unity: Siapkan pengujian lokal dengan Amazon GameLift Anywhere - Amazon GameLift

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

Plugin untuk Unity: Siapkan pengujian lokal dengan Amazon GameLift Anywhere

Dalam alur kerja ini, Anda menambahkan kode game klien dan server untuk GameLift fungsionalitas Amazon dan menggunakan plugin untuk menunjuk workstation lokal Anda sebagai host server game uji. Ketika Anda telah menyelesaikan tugas integrasi, gunakan plugin untuk membangun klien game dan komponen server Anda.

Untuk memulai alur kerja Amazon GameLift Anywhere:
  • Di menu utama editor Unity, pilih Amazon GameLift dan pilih Host with Anywhere. Tindakan ini membuka halaman plugin untuk menyiapkan game Anda dengan Anywhere armada @. Halaman ini menyajikan proses lima langkah untuk mengintegrasikan, membangun, 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

catatan

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

Untuk langkah ini dalam alur kerja, 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.

Integrasikan kode server Anda

Jika Anda menggunakan proyek game Anda sendiri dengan adegan khusus, gunakan kode sampel yang disediakan untuk menambahkan kode server yang diperlukan ke proyek game Anda:

  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 GameLiftServer file.cs. dan salin ke folder Server 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. InitSDK()Panggilan dengan parameter server diperlukan untuk armada Amazon GameLift Anywhere. 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

Jika Anda menggunakan proyek game Anda sendiri dengan adegan khusus, maka Anda perlu mengintegrasikan fungsionalitas dasar ke dalam klien game Anda. Anda juga perlu menambahkan elemen UI sehingga pemain dapat masuk dan bergabung dengan sesi permainan. Gunakan API GameLift layanan Amazon (di AWS SDK) untuk mendapatkan informasi sesi game, membuat sesi game baru, atau bergabung dengan sesi game yang ada,

Saat membangun klien untuk pengujian lokal dengan armada Anywhere, Anda dapat menambahkan panggilan langsung ke GameLift layanan Amazon. Saat mengembangkan game untuk cloud hosting—atau jika berencana menggunakan armada Anywhere untuk hosting produksi—Anda harus membuat layanan backend sisi klien untuk menangani semua komunikasi antara klien game dan layanan Amazon. GameLift

Untuk mengintegrasikan Amazon GameLift ke dalam kode klien Anda, gunakan sumber daya berikut sebagai panduan.

  • Integrasikan klien dengan GameLiftCoreApi kelas di GitHub repo amazon-gamelift-plugin-unity aws/. Kelas ini menyediakan kontrol untuk otentikasi pemain dan untuk mengambil informasi sesi permainan.

  • Lihat contoh integrasi game, tersedia di GitHub repo amazon-gamelift-plugin-unity aws/,. Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs

  • Ikuti petunjuk di Tambahkan Amazon GameLift ke klien game Unity Anda.

Untuk klien game yang terhubung ke armada Anywhere, klien game Anda membutuhkan informasi berikut. Plugin secara otomatis memperbarui proyek game Anda untuk menggunakan sumber daya yang Anda buat di plugin.

  • FleetId - Pengidentifikasi unik untuk armada Anywhere Anda.

  • FleetLocation - Lokasi kustom armada Anywhere Anda.

  • AwsRegion - AWS Wilayah tempat armada Anywhere Anda dihosting. Ini adalah wilayah yang Anda tetapkan di profil pengguna Anda.

  • ProfileName - Profil AWS kredensyal di mesin lokal Anda yang memungkinkan akses ke AWS SDK untuk. GameLift Klien game menggunakan kredensyal ini untuk mengautentikasi permintaan ke layanan Amazon. GameLift

catatan

Profil kredensyal dihasilkan oleh plugin dan disimpan di mesin lokal. Akibatnya, Anda harus menjalankan klien di mesin lokal (atau pada mesin dengan profil yang sama).

Connect ke armada Anywhere

Pada langkah ini, Anda menunjuk armada Anywhere untuk digunakan. Armada Anywhere mendefinisikan kumpulan sumber daya komputasi, yang dapat ditemukan di mana saja, untuk hosting server game.

  • Jika AWS akun yang saat ini Anda gunakan memiliki armada Anywhere yang sudah ada, buka bidang tarik-turun nama Armada dan pilih armada. Dropdown ini hanya menampilkan armada Anywhere di AWS Region untuk profil pengguna yang sedang aktif.

  • Jika tidak ada armada yang ada—atau Anda ingin membuat armada baru, pilih Create new Anywhere fleet dan berikan nama armada.

Setelah Anda memilih armada Anywhere untuk proyek Anda, Amazon GameLift memverifikasi bahwa status armada adalah iklan aktif menampilkan ID armada. Anda dapat melacak kemajuan permintaan ini di log keluaran editor Unity.

Daftarkan komputasi

Pada langkah ini, Anda mendaftarkan workstation lokal Anda sebagai sumber daya komputasi di armada Anywhere yang baru.

  1. Masukkan nama komputasi untuk mesin lokal Anda. Jika Anda menambahkan lebih dari satu komputasi dalam armada, nama harus unik.

  2. Pilih Daftarkan komputasi. Anda dapat melacak kemajuan permintaan ini di log keluaran editor Unreal.

Plugin mendaftarkan workstation lokal Anda dengan alamat IP yang disetel ke localhost (127.0.0.1). Pengaturan ini mengasumsikan bahwa Anda akan menjalankan klien dan server game Anda di mesin yang sama.

Menanggapi tindakan ini, Amazon GameLift memverifikasi bahwa ia dapat terhubung ke komputasi dan mengembalikan informasi tentang komputasi yang baru terdaftar.

Luncurkan game

Pada langkah ini Anda membangun komponen game Anda dan meluncurkannya untuk memainkan game. Lakukan hal-hal berikut:

  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 Di Mana Saja. Tindakan ini memperbarui pengaturan klien game Anda untuk menggunakan armada Anywhere yang baru saja Anda atur.

  2. Bangun dan jalankan klien game Anda.

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

    2. Luncurkan satu atau beberapa contoh klien game yang baru dibangun yang dapat dieksekusi.

  3. Luncurkan server game di armada Anywhere Anda. Pilih Server: Luncurkan Server di Editor. Tugas ini memulai server langsung yang dapat dihubungkan oleh klien Anda selama editor Unity tetap terbuka.

  4. Mulai atau bergabunglah dengan sesi permainan. Dalam instance klien game Anda, gunakan UI untuk bergabung dengan setiap klien ke sesi game. Bagaimana Anda melakukan ini tergantung pada bagaimana Anda menambahkan fungsionalitas ke klien.

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.

Luncurkan dari server yang dapat dieksekusi (opsional)

Anda dapat membangun dan meluncurkan server game yang dapat dieksekusi untuk pengujian pada armada Anywhere.

  1. Bangun server yang dapat dieksekusi menggunakan proses pembuatan Unity standar. Di File, Build Settings, alihkan platform ke Dedicated Server dan build.

  2. Dapatkan token otentikasi jangka pendek dengan memanggil get-compute-auth-tokenperintah AWS CLI dengan ID AWS armada dan Wilayah Anywhere Anda. ID armada ditampilkan di Connect to Anywhere Fleet saat Anda membuat armada. AWS Wilayah ditampilkan di Atur Profil Anda saat Anda memilih profil aktif Anda.

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. Luncurkan server game yang baru dibangun yang dapat dieksekusi dari baris perintah dan teruskan token autentikasi yang valid.

    my_project.exe --authToken [token]