Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Peta jalan pengembangan untuk hosting dengan GameLift Server Amazon kontainer yang dikelola
Peta jalan ini memandu Anda melalui cara mengembangkan solusi hosting Amazon GameLift Servers terkelola untuk server game kontainer Anda. Managed container hanyalah salah satu solusi hosting yang ditawarkan olehAmazon GameLift Servers. Untuk informasi lebih lanjut tentang opsi hosting, lihatGameLift Server Amazon opsi hosting game.
Solusi kontainer terkelola dengan Amazon GameLift Servers memiliki komponen berikut:
-
Gambar wadah dengan build server game Anda, diunggah ke repositori pribadi Amazon Elastic Container Registry (Amazon ECR). Pembuatan server game terintegrasi dengan SDK server untuk Amazon GameLift Servers dan dibangun untuk berjalan di Linux.
-
Layanan backend yang berinteraksi dengan Amazon GameLift Servers layanan atas nama klien game Anda. Layanan backend menggunakan fungsionalitas dalam API layanan untukAmazon GameLift Servers, yang merupakan bagian dari AWS SDK.
-
Antrian sesi Amazon GameLift Servers game atau mekanisme penempatan lain yang memproses permintaan untuk sesi game baru, mencari server game yang tersedia di semua armada, dan meminta server game untuk memulai sesi game.
-
(Opsional) Seorang FlexMatch matchmaker untuk membuat pertandingan multi-pemain dan mengatur sesi permainan untuk mereka.
-
Satu atau lebih armada kontainer, yang menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2) dan dioptimalkan untuk hosting game multipemain.
Peta jalan ini menyajikan jalur yang efisien untuk mengaktifkan dan menjalankan server game kontainer Anda dengan sukses dengan kontainer terkel Amazon GameLift Servers ola. Setelah Anda memiliki komponen yang diperlukan, Anda dapat terus mengulangi pengembangan game dan menyesuaikan solusi hosting Anda. Saat Anda semakin dekat untuk peluncuran, lihat ini Bersiaplah untuk peluncuran dengan GameLift Server Amazon mengadakan untuk bantuan menyiapkan solusi hosting Anda untuk penggunaan tingkat produksi.
Percepat orientasi dengan alat berikut untuk wadah terkelola:
Kit starter kontainer mer
ampingkan integrasi dan pengaturan armada. Ini menambahkan fitur manajemen sesi game penting ke server game Anda, dan menggunakan templat yang telah dikonfigurasi sebelumnya untuk membangun armada kontainer dan pipeline penerapan otomatis untuk server game Anda. Setelah penerapan, gunakan Amazon GameLift Servers konsol dan alat API untuk memantau kinerja armada, mengelola sesi game, dan menganalisis metrik. Untuk pengembang Unreal Engine dan Unity, gunakan Amazon GameLift Servers plugin
untuk mengintegrasikan server game Anda dan membangun armada kontainer dari dalam lingkungan pengembangan mesin game Anda. Alur kerja terpandu plugin membantu Anda membuat solusi cepat dan sederhana dengan hosting berbasis cloud menggunakan wadah terkelola. Anda dapat membangun fondasi ini untuk membuat solusi hosting khusus untuk game Anda.
Tambahkan fungsionalitas ke server game Anda sehingga dapat berkomunikasi dengan Amazon GameLift Servers layanan saat digunakan untuk hosting.
-
Dapatkan SDK server untuk Amazon GameLift Servers (versi 5.2 atau lebih tinggi) untuk proyek game Anda. Server SDK tersedia dalam C ++, C #, dan Go. Unduh SDK server untuk Amazon GameLift Servers
. Server SDK tersedia dalam C ++, C #, dan Go. -
Ubah kode server game Anda untuk menambahkan fungsionalitas SDK server. Untuk panduan, lihat Siapkan game untuk hosting dengan Amazon GameLift Servers. Minimal, lakukan hal berikut:
-
Tambahkan kode untuk menginisialisasi Amazon GameLift Servers SDK dan membuat WebSocket koneksi dengan Amazon GameLift Servers layanan. Gunakan tindakan SDK server
InitSdk(). -
Tambahkan kode untuk melaporkan ke Amazon GameLift Servers layanan saat proses server siap untuk menyelenggarakan sesi game. Gunakan tindakan SDK server
ProcessReady(). -
Menerapkan fungsi callback yang diperlukan
OnStartGameSession(), danOnProcessTerminate(). Dengan fungsi-fungsi ini, proses server game dapat mempertahankan koneksi dengan Amazon GameLift Servers layanan, memulai sesi permainan ketika diminta olehAmazon GameLift Servers, dan menanggapi permintaan untuk mengakhiri proses server game. -
Tambahkan kode untuk melaporkan ke Amazon GameLift Servers layanan saat proses server mengakhiri sesi permainan. Gunakan tindakan SDK server
ProcessEnding().
-
-
Kemas build server game Anda. Bangun server game Anda untuk berjalan di Linux. Siapkan build dan file lain yang diperlukan untuk menjalankan server game. Jika Anda mengembangkan di Windows, langkah ini mungkin melibatkan pengaturan ruang kerja Linux terpisah atau menggunakan alat seperti Windows subsistem untuk Linux (WSL). Anda akan memerlukan lingkungan Linux untuk menguji build server game Anda, dan juga untuk membangun dan menguji gambar kontainer Anda.
-
Uji integrasi server game Anda. Pastikan server game terintegrasi Anda dapat terhubung ke Amazon GameLift Servers layanan dan menanggapi permintaan. Sebaiknya siapkan armada Any Amazon GameLift Servers where sederhana dengan workstation lokal sebagai host uji, seperti yang dijelaskan dalamSiapkan pengujian lokal dengan GameLift Server Amazon Dimana saja. Instal server game Anda build ke host uji dan mulai proses server. Gunakan AWS CLI untuk meminta sesi permainan baru, dan verifikasi bahwa Amazon GameLift Servers layanan berhasil meminta proses server Anda untuk memulai sesi game.
Setelah Anda berhasil mengintegrasikan server game Anda, buat gambar kontainer dengan server game Anda yang dapat dieksekusi. Simpan di repositori Amazon Elastic Container Registry (Amazon ECR) untuk digunakan bersamaAmazon GameLift Servers. Untuk petunjuk mendetail, lihat Membangun gambar kontainer untuk Amazon GameLift Servers.
-
Dapatkan template Dockerfile untuk wadah server game (disediakan olehAmazon GameLift Servers). Ubah file untuk file build server game Anda.
-
Bangun gambar wadah server game. Bekerja di lingkungan Linux, gunakan alat Docker untuk membuat gambar Anda.
-
Dorong gambar wadah Anda ke Amazon ECR. Buat repositori publik atau pribadi di Amazon ECR, menggunakan yang sama Akun AWS dan Wilayah AWS di mana Anda berencana untuk menyebarkan armada kontainer Anda. Dorong gambar wadah Anda ke sana.
-
Uji gambar kontainer Anda menggunakan armada Anywhere Anda (opsional). Anda mungkin ingin menguji gambar kontainer Anda secara lokal sebelum menerapkannya ke armada kontainer yang di-host cloud. Anda dapat menggunakan armada Amazon GameLift Servers Anywhere yang ada dengan workstation lokal untuk pengujian. Instal dan jalankan wadah server game dan verifikasi bahwa: (1) Amazon GameLift Servers layanan berhasil meminta proses server Anda untuk memulai sesi game, dan (2) klien game dapat terhubung ke sesi game.
Hingga saat ini Anda telah bekerja dengan armada Anywhere yang dikelola sendiri untuk menguji dan mengulangi komponen game Anda. Jika Anda memiliki build server game yang berfungsi yang terintegrasiAmazon GameLift Servers, Anda dapat mulai menyiapkan sumber daya hosting armada Amazon GameLift Servers kontainer terkelola berbasis cloud yang Anda perlukan untuk lingkungan produksi.
-
Buat definisi grup kontainer. Definisi grup kontainer menggambarkan arsitektur kontainer untuk armada. dan mengidentifikasi gambar kontainer mana yang akan digunakan. Lihat Buat definisi grup kontainer untuk armada Amazon GameLift Servers kontainer. Buat definisi grup kontainer Anda di Wilayah AWS tempat yang sama di mana gambar kontainer disimpan. Untuk informasi lebih lanjut tentang memilih lokasi armada, lihatLokasi geografis. Minimal, lakukan hal berikut:
-
Buat definisi grup kontainer server game.
-
Tambahkan definisi wadah dengan gambar wadah dengan build server game Anda.
-
Konfigurasikan rentang port untuk proses server game container.
-
-
Buat armada kontainer terkelola. Saat Anda membuat armada, Amazon GameLift Servers segera mulai menerapkan build server game Anda untuk hosting. Anda dapat mengonfigurasi banyak aspek dari armada yang dikelola. Untuk panduan, lihat Buat sebuah GameLift Server Amazon armada kontainer terkelola. Minimal, lakukan hal berikut:
-
Siapkan peran layanan AWS Identity and Access Management (IAM) untuk armada kontainer. Lihat Menyiapkan peran layanan IAM untuk Amazon GameLift Servers.
-
Tentukan definisi grup kontainer server game untuk diterapkan ke instance armada.
-
Gunakan nilai default jika tersedia untuk semua parameter lainnya. Amazon GameLift Serversmenghitung beberapa parameter untuk konfigurasi optimal.
-
-
Tambahkan armada kontainer ke antrian Anda. Dalam antrian sesi permainan Anda, ganti armada uji Anywhere dengan armada kontainer terkelola Anda.
-
Uji hosting game dengan armada kontainer Anda. Pada titik ini Anda harus dapat menguji seluruh solusi. Mulai klien game dan minta sesi game melalui layanan backend. Dapatkan info koneksi dan sambungkan ke sesi permainan di armada kontainer.
-
Lakukan iterasi pada penerapan armada Anda. Anda dapat memperbarui definisi grup kontainer dan konfigurasi armada, lalu menerapkan pembaruan ke armada yang ada.
Buat cara bagi klien game Anda untuk meminta untuk bergabung dengan sesi game, mendapatkan info koneksi, dan kemudian terhubung langsung ke sesi game yang dihosting. Pendekatan yang paling umum adalah mengatur fungsionalitas layanan backend yang berfungsi sebagai perantara antara klien game Anda dan layanan. Amazon GameLift Servers Pendekatan ini melindungi sumber daya hosting Anda dan memberi Anda kontrol yang lebih besar atas bagaimana pemain ditempatkan ke dalam sesi permainan.
-
Membangun fungsionalitas layanan backend untuk hosting. Layanan backend berkomunikasi dengan Amazon GameLift Servers layanan dan memberikan informasi koneksi ke klien game. Fungsi ini termasuk memulai sesi permainan, menempatkan pemain ke dalam game, dan mengambil informasi sesi game. Untuk panduan, lihat Siapkan game untuk hosting dengan Amazon GameLift Servers. Minimal, lakukan hal berikut:
-
Dapatkan AWS SDK untuk Amazon GameLift Servers dan tambahkan ke proyek layanan backend Anda. Lihat sumber daya Amazon GameLift Servers SDK untuk layanan klien.
-
Tambahkan kode untuk menginisialisasi Amazon GameLift Servers klien dan menyimpan pengaturan kunci. Lihat Siapkan GameLift Server Amazon API.
-
Tambahkan fungsionalitas untuk memanggil tindakan AWS SDK
CreateGameSession()dan memberikan informasi koneksi sesi game ke klien game. Lihat Membuat sesi permainan pada armada tertentu.Mem
CreateGameSession()anggil adalah titik awal yang nyaman untuk meminta sesi permainan baru. Setelah Anda memiliki sistem penempatan sesi game (lihat Langkah 3), Anda akan mengganti kode ini dengan panggilan keStartGameSessionPlacement()(atauStartMatchmaking()jika Anda menggunakanFlexMatch).Untuk panduan merancang layanan backend Anda, lihatMembangun layanan backend untuk GameLift Server Amazon.
-
-
Tambahkan fungsionalitas ke klien game Anda yang memungkinkan pemain bergabung dengan sesi game yang dihosting. Klien game membuat permintaan ke layanan backend Anda, bukan langsung keAmazon GameLift Servers. Setelah layanan backend menyediakan informasi koneksi sesi game, klien game terhubung langsung dengan sesi game untuk memainkan game.
-
Uji integrasi klien game Anda. Anda dapat menggunakan armada Amazon GameLift Servers Anywhere yang ada dengan workstation lokal untuk pengujian. Gunakan layanan backend baru untuk meminta sesi permainan baru, dan verifikasi bahwa: (1) Amazon GameLift Servers layanan berhasil meminta proses server Anda untuk memulai sesi permainan, dan (2) klien game dapat terhubung ke sesi game.
Sesuaikan cara Anda Amazon GameLift Servers ingin memproses permintaan untuk sesi game baru dan temukan server game yang tersedia untuk meng-host mereka. Amazon GameLift Serverssecara otomatis melacak ketersediaan semua server game di semua armada. Ketika klien game mengirim permintaan untuk bergabung dengan sesi game, Amazon GameLift Servers cari penempatan “terbaik mungkin” berdasarkan serangkaian prioritas yang ditentukan seperti latensi minimum, biaya, dan ketersediaan.
-
Buat antrian sesi game untuk menempatkan sesi game baru dengan server game yang tersedia. Antrian adalah mekanisme utama untuk penempatan sesi permainan. Untuk panduan, lihat Buat antrean sesi game.
-
Minimal, tambahkan armada Anywhere Anda sebagai tujuan dalam antrian Anda. Semua pengaturan lainnya adalah penyesuaian opsional.
-
-
Dalam kode layanan backend Anda, konversi
CreateGameSession()panggilan keStartGameSessionPlacement(). Lihat Membuat sesi game dalam antri an multi-lokasi. -
Buat mekanisme untuk memberi tahu klien game ketika sesi game siap untuk bergabung. Saat dalam pengembangan, Anda dapat melakukan polling untuk status sesi game menggunakan panggilan ke
DescribeGameSessionPlacement. Namun, sebelum menggunakan antrian untuk memproses volume tinggi, Anda harus mengaktifkan notifikasi acara. Lihat Atur notifikasi kejadian untuk penempatan sesi game. -
Tambahkan per FlexMatch jodohan (opsional). Buat set aturan perjodohan dan buat konfigurasi perjodohan untuk bekerja dengan antrian sesi game Anda. Untuk panduan menyiapkan sistem perjodohan, lihat panduan Amazon GameLift ServersFlexMatch pengembang.
-
Uji sistem penempatan. Anda dapat menggunakan armada Amazon GameLift Servers Anywhere yang ada dengan workstation lokal untuk pengujian. Gunakan layanan backend untuk meminta sesi permainan baru, dan verifikasi bahwa Amazon GameLift Servers layanan berhasil meminta proses server Anda untuk memulai sesi game.
Saat Anda mempersiapkan peluncuran game, Anda harus menyempurnakan sumber daya hosting terkelola Anda. Beberapa keputusan yang perlu dipertimbangkan meliputi:
-
Optimalkan konfigurasi armada kontainer Anda. Lihat Sesuaikan sebuah GameLift Server Amazon armada kontainer.
Pertimbangkan untuk menambahkan armada Spot untuk penghematan biaya. Lihat Kurangi biaya hosting game dengan armada Spot.
-
Jika server game Anda perlu mengkomunikasikan AWS sumber daya lain, atur peran IAM untuk mengelola akses. Lihat Hubungkan Anda GameLift Server Amazon server game yang di-host ke yang lain AWS sumber daya.
Tentukan di mana secara geografis Anda ingin memposisikan server game. Tambahkan lokasi jarak jauh ke armada terkelola Anda. Lihat Kustomisasi sumber daya hosting.
Bereksperimenlah dengan opsi penempatan sesi game untuk armada yang dikelola, termasuk menyesuaikan pengaturan prioritas. Lihat Kustomisasi antrian sesi permainan.
-
Siapkan penskalaan kapasitas otomatis untuk memenuhi permintaan pemain yang diharapkan. Lihat Menskalakan kapasitas hosting game dengan Amazon GameLift Servers.
-
Buat armada di armada lain Wilayah AWS dan ubah antrian dan penskalaan otomatis untuk menangani failover sesuai kebutuhan.
-
Siapkan alat pengamatan hosting, termasuk analitik dan pencatatan. Lihat Memantau GameLift Peladen Amazon.
-
Otomatiskan penerapan armada Anda menggunakan infrastruktur sebagai kode (IaC). Lihat Kelola GameLift Server Amazon sumber daya hosting menggunakan CloudFormation.
Amazon GameLift Serversmendukung penggunaan AWS CloudFormation templat untuk konfigurasi khusus penerapan apa pun. Anda juga dapat menggunakan AWS Cloud Development Kit (AWS CDK) untuk menentukan Amazon GameLift Servers sumber daya Anda. Untuk informasi selengkapnya AWS CDK, lihat Panduan Peng AWS Cloud Development Kit (AWS CDK) embang.
Untuk mengelola penerapan tumpu CloudFormation kan Anda, sebaiknya gunakan alat dan layanan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) seperti AWS CodePipeline. Alat-alat ini membantu Anda menerapkan secara otomatis atau dengan persetujuan setiap kali Anda membangun biner server game. Dengan CI/CD alat atau layanan, penyebaran sumber daya untuk versi server game baru dapat terlihat seperti ini:
-
Bangun dan uji biner server game Anda.
-
Unggah biner keAmazon GameLift Servers.
-
Terapkan armada baru dengan build baru.
-
Tambahkan armada baru ke antrian sesi game Anda dan hapus armada dengan versi build sebelumnya.
-
Ketika armada dengan build sebelumnya tidak lagi menjadi tuan rumah sesi game aktif, hapus tumpukan CloudFormation armada tersebut.
-