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 hybrid dengan GameLift Server Amazon
Peta jalan ini memandu Anda melalui cara mengembangkan solusi hosting untuk game multipemain Anda. Amazon GameLift Serversmenawarkan beberapa opsi hosting game; untuk informasi lebih lanjut tentang opsi ini, lihatGameLift Server Amazon opsi hosting game.
Solusi hibrida menggunakan kombinasi sumber daya hosting, termasuk sumber daya berbasis cloud yang dikelola oleh Amazon GameLift Servers dan sumber daya hosting yang dikelola sendiri. Untuk diskusi yang lebih rinci tentang hosting hybrid, lihat artikel ini: Hosting server game hybrid dengan Any Amazon GameLift Servers where
Arsitektur hibrida terdiri dari komponen-komponen berikut:
-
Pembuatan server game tunggal, terintegrasi dengan SDK server untukAmazon GameLift Servers, untuk diterapkan di semua armada.
-
Klien game tunggal dan layanan backend, terintegrasi dengan AWS SDK, untuk berinteraksi dengan Amazon GameLift Servers layanan dan meminta sesi permainan.
-
An Amazon GameLift Servers trian bersama untuk menempatkan sesi game baru dengan server game yang tersedia dan menyeimbangkan beban di semua armada.
-
(Opsional) Agen manajer proses, yang digunakan dengan armada Anywhere, untuk menyederhanakan tugas manajemen proses server di seluruh komputasi di semua armada.
-
(Opsional) Seorang FlexMatch matchmaker untuk membuat pertandingan multi-pemain dan mengatur sesi permainan untuk mereka.
-
Satu atau lebih armada Amazon GameLift Servers terkelola, yang menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2) yang dioptimalkan untuk hosting game multipemain.
-
Satu atau lebih armada Any Amazon GameLift Servers where, yang menggunakan sumber daya hosting lokal atau lainnya yang ada, termasuk manajemen konfigurasi dan alat penerapan Anda. (Anda dapat menggunakan opsi AWS Systems Manager.)
Peta jalan ini menyajikan jalur yang efisien untuk membuat game multipemain Anda aktif dan berjalan dengan sukses dalam solusi hosting hibrida denganAmazon GameLift Servers. 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.
Mulailah dengan GameLift Server Amazon plugin
Jika Anda mengembangkan proyek dengan Unreal Engine atau Unity, mulailah menyiapkan game Anda untuk hosting dengan Amazon GameLift Servers plugin. Dengan plugin ini, Anda dapat menambahkan Amazon GameLift Servers SDK ke proyek game Anda dan menggunakan alur kerja yang dipandu untuk membangun versi kerja sederhana dari solusi hosting hybrid dengan armada Anywhere dan armada yang Amazon GameLift Servers dikelola. Anda kemudian dapat menggunakan dasar-dasar ini untuk membangun dan menyesuaikan sesuai kebutuhan.
Tambahkan fungsionalitas ke server game Anda sehingga dapat berkomunikasi dengan Amazon GameLift Servers layanan saat digunakan untuk hosting. Fungsionalitas yang sama diperlukan jika server game berjalan pada armada yang Amazon GameLift Servers dikelola atau armada Anywhere.
-
Dapatkan SDK server untuk Amazon GameLift Servers (versi 5.x) untuk proyek game Anda. Server SDK tersedia dalam C ++, C #, dan Go. Unduh SDK server untuk Amazon GameLift Servers
. -
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(). Sertakan kode untuk menentukan parameter server saat berjalan pada komputasi armada Anywhere. -
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
OnProcessTerminate(), danOnStartGameSession(). 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 prompt 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. Buat skrip instalasi dengan file build, dependensi, dan perangkat lunak pendukung Anda. Lihat Membuat paket file bangunan game Anda. Sebaiknya gunakan bucket Amazon Simple Storage Service (Amazon S3) untuk menyimpan versi build game Anda.
-
Uji integrasi server game Anda. Untuk tugas ini, sebaiknya siapkan armada Any Amazon GameLift Servers where dengan workstation lokal, seperti yang dijelaskan dalamSiapkan pengujian lokal dengan GameLift Server Amazon Dimana saja. Untuk langkah ini, instal server game Anda secara manual ke perangkat 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.
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 sama dengan workstation lokal untuk pengujian.
Selama fase pengembangan, jika Anda ingin menguji perilaku build game Anda dalam armada yang Amazon GameLift Servers dikelola, sebaiknya Anda juga menyiapkan lingkungan pengujian berbasis cloud. Solusi Amazon GameLift Servers Toolkit ini meniru perilaku armada yang dikelola tetapi memungkinkan Anda memperbarui build server game dengan waktu penyelesaian minimal.
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.
-
(Opsional) Tambahkan komponen per FlexMatch jodohan. Untuk panduan, lihat panduan Amazon GameLift ServersFlexMatch pengembang.
Sampai saat ini Anda telah bekerja dengan perangkat lokal (terdaftar sebagai komputasi armada Anywhere) untuk menguji dan mengulangi komponen game Anda. Langkah selanjutnya adalah mengatur jenis armada yang Anda perlukan untuk sistem produksi. Mulailah dengan armada Anywhere, dan tambahkan Amazon GameLift Servers Agen untuk mengelola beberapa tugas manajemen host komputasi utama. Untuk detail selengkapnya, lihat Bekerja dengan Amazon GameLift Servers Agen.
-
Dapatkan Amazon GameLift Servers Agen dan tambahkan ke paket instalasi server game Anda. Dapatkan dan buat kode sumber Agen, tersedia di GitHub repositori Amazon GameLift Servers Agen
. Tempatkan file JAR yang dihasilkan yang dapat dieksekusi ke direktori yang sama dengan game build yang dapat dieksekusi. -
Ubah skrip startup Anda untuk Agen sesuai kebutuhan. Pastikan bahwa Agent yang dapat dieksekusi diluncurkan segera setelah komputasi mulai berjalan. Lihat file readme di repo Agen untuk bantuan menginstal dan menjalankan Agen pada komputasi hosting Anda. Perintah peluncuran Anda harus menyertakan opsi untuk menentukan, minimal, ID armada Anywhere dan Wilayah AWS, lokasi khusus, dan nama komputasi.
Agen secara otomatis menangani tugas-tugas berikut untuk Anda, jadi jika Anda telah menangani tugas ini dengan skrip, Anda dapat menghapusnya:
-
Panggilan
RegisterCompute()untuk menambahkan komputasi ke armada Anywhere. -
Panggilan
GetComputeAuthToken()untuk mengotentikasi server game saat mereka terhubung ke Amazon GameLift Servers layanan. Agen mengelola mendapatkan dan menyegarkan token autentikasi, yang dapat digunakan oleh semua proses server game yang berjalan di komputasi. -
Memulai proses server baru pada komputasi berdasarkan serangkaian instruksi runtime.
-
-
Buat konfigurasi runtime untuk komputasi di armada Anywhere Anda. Minimal, tentukan jalur peluncuran untuk server game Anda yang dapat dieksekusi. Anda dapat menggunakan Amazon GameLift Servers konsol atau AWS CLI untuk membuat atau memodifikasi instruksi runtime untuk armada. Agen melaksanakan instruksi ini dan secara berkala meminta pembaruan dari Amazon GameLift Servers layanan.
-
Siapkan atau ubah antrian sesi game Anda sesuai kebutuhan. Buat antrian baru (atau perbarui yang sudah ada) dan tentukan tujuan untuk armada Anywhere yang digunakan dengan Amazon GameLift Servers Agen.
-
Uji integrasi Agen dengan armada Anywhere Anda. Periksa apakah Agen memulai proses server dengan benar berdasarkan konfigurasi runtime.
Buat armada Amazon GameLift Servers EC2 terkelola untuk melengkapi armada Anywhere Anda. Jika Anda menyiapkan lingkungan pengujian berbasis cloud di Langkah 2 untuk mempercepat pengembangan, rencanakan untuk membuat armada terkelola setelah Anda menyelesaikan sebagian besar pengembangan dan pengujian game Anda. Anda memerlukan armada yang dikelola sepenuhnya untuk mengonfigurasi dan menguji pengaturan tambahan seperti penskalaan kapasitas otomatis.
-
Kemas build server game Anda dan unggah keAmazon GameLift Servers. Buat skrip instalasi dengan file build, dependensi, dan perangkat lunak pendukung Anda. Anda dapat menggunakan perangkat lunak build yang sama dengan armada Anywhere dan yang dikelola. Lihat Buat build server game untuk GameLift Peladen Amazon. Anda dapat mengunggah build Anda Amazon GameLift Servers menggunakan konsol atau AWS CLI.
Sebelum mengunggah build Anda, putuskan apa yang ingin Wilayah AWS Anda buat untuk membuat armada terkelola. Anda harus mengunggah build ke Wilayah yang sama. Untuk informasi lebih lanjut tentang memilih lokasi armada, lihatLokasi geografis.
-
Buat armada EC2 terkelola. Anda dapat menggunakan Amazon GameLift Servers konsol atau AWS CLI untuk membuat armada yang dikelola. 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 EC2 yang dikelola. Minimal, lakukan hal berikut:
-
Beri nama armada dan tentukan build game mana yang diunggah untuk digunakan.
-
Pilih On-Demand Instans untuk armada Anda dan pilih jenis instans yang tersedia di lokasi armada Anda. Armada spot adalah pilihan yang berharga tetapi memerlukan desain dan konfigurasi tambahan.
-
Buat konfigurasi runtime dengan pengaturan serupa seperti yang Anda gunakan dengan armada Anywhere. Minimal, tentukan jalur peluncuran untuk server game Anda yang dapat dieksekusi.
-
Tentukan pengaturan port untuk memungkinkan lalu lintas masuk mengakses server game Anda.
-
-
Tambahkan armada yang dikelola ke antrian sesi game bersama Anda. Perbarui antrian dari Langkah 4 sehingga mencakup tujuan untuk armada yang dikelola dan armada Anywhere yang dikerahkan dengan Amazon GameLift Servers Agen.
-
Uji hosting game dengan armada terkelola Anda. Pada titik ini Anda harus dapat menguji seluruh siklus hosting, dengan klien game meminta sesi permainan, mendapatkan info koneksi, dan berhasil terhubung ke sesi game.
Saat Anda mempersiapkan peluncuran game, Anda harus menyempurnakan solusi hosting Anda. Beberapa keputusan yang perlu dipertimbangkan meliputi:
-
Untuk armada Anywhere, otomatiskan proses memulai dan mematikan komputasi sesuai kebutuhan, termasuk menginstal dan menjalankan perangkat lunak server game. Komputasi daur ulang berguna untuk memastikan bahwa mereka diperbarui secara teratur, dan mematikan komputasi dapat menghemat biaya saat tidak diperlukan.
-
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.
-
Untuk armada yang dikelola, pertimbangkan untuk menggunakan armada Spot untuk penghematan biaya. Lihat Kurangi biaya hosting game dengan armada Spot.
-
Optimalkan kinerja armada dengan memilih konfigurasi sumber daya komputasi, lalu konfigurasikan instruksi runtime Anda untuk menjalankan jumlah optimal proses server per komputasi. Lakukan ini untuk armada Anywhere dan armada yang dikelola. Lihat Optimalkan konfigurasi runtime server game pada managed Amazon GameLift Servers.
-
Bereksperimenlah dengan opsi penempatan sesi game untuk armada yang dikelola, termasuk menyesuaikan pengaturan prioritas. Lihat Kustomisasi antrian sesi permainan.
-
Untuk armada yang dikelola, siapkan penskalaan kapasitas otomatis untuk memenuhi permintaan pemain yang diharapkan. Lihat Menskalakan kapasitas hosting game dengan Amazon GameLift Servers.
-
Untuk armada Anywhere, buat mekanisme untuk menangani penskalaan kapasitas manual atau otomatis untuk memenuhi permintaan pemain yang diharapkan.
-
Merancang dan terapkan failover ke sumber daya lain jika diperlukan. Siapkan armada siaga di armada lain Wilayah AWS dan ubah antrian dan penskalaan otomatis untuk menangani failover jika diperlukan.
-
Siapkan alat pengamatan hosting, termasuk analitik dan pencatatan. Lihat Memantau GameLift Peladen Amazon. Buat grup metrik untuk mengumpulkan analitik untuk semua sumber daya hosting Anda.
-
Otomatiskan penerapan 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.
-