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 Amazon GameLift Servers Anywhere
Peta jalan ini memandu Anda melalui cara mengembangkan solusi hosting untuk game multipemain Anda untuk digunakan dengan sumber daya Anda sendiri (perangkat keras lokal atau mesin virtual). Amazon GameLift Serversmenawarkan beberapa opsi hosting game; untuk informasi lebih lanjut tentang opsi ini, lihatAmazon GameLift Serverssolusi.
Dengan hosting Amazon GameLift Servers Anywhere, server game Anda di-host pada sumber daya komputasi yang Anda suplai dan kelola. Anda dapat membuat armada Anywhere dengan konfigurasi yang Anda butuhkan dan secara geografis terletak di mana pun pemain Anda berada. Amazon GameLift Serversmemberikan fitur-fitur berikut untuk armada Anywhere:
-
Menangani proses penempatan sesi permainan untuk Anda berdasarkan konfigurasi Anda, termasuk:
-
Melacak ketersediaan server game di seluruh armada Anywhere Anda.
-
Memproses permintaan game dari layanan klien game Anda dan mencocokkan permintaan game dengan server yang tersedia.
-
Meminta server game di armada Anywhere untuk memulai sesi permainan.
-
Mengkomunikasikan detail koneksi kembali ke klien game.
-
-
Mengumpulkan metrik kinerja untuk proses penempatan sesi dan metrik penggunaan untuk sesi permainan dan pemain.
-
Mendukung set fitur FlexMatch perjodohan lengkap, sehingga Anda dapat membangun mak comblang dan mengintegrasikannya dengan sistem penempatan sesi permainan.
-
Menawarkan Amazon GameLift Servers Agen untuk menangani tugas manajemen host utama pada armada Anywhere.
-
Mendukung penggabungan dengan armada Amazon GameLift Servers terkelola untuk solusi hybrid yang fleksibel.
Solusi Amazon GameLift Servers Anywhere terdiri dari komponen-komponen berikut:
-
Satu atau beberapa armada Amazon GameLift Servers Anywhere dengan sumber daya hosting lokal atau lainnya, dikelola dengan manajemen konfigurasi dan perkakas penerapan yang ada. (Anda dapat secara opsional menggunakan AWS Systems Manager.)
-
Sebuah build server game, terintegrasi dengan SDK server untukAmazon GameLift Servers, untuk digunakan di semua armada.
-
Klien game dan layanan backend, terintegrasi dengan AWS SDK, untuk berinteraksi dengan Amazon GameLift Servers layanan dan meminta sesi permainan.
-
Amazon GameLift ServersAntrian untuk menempatkan sesi permainan baru dengan server game yang tersedia di semua armada.
-
(Opsional) FlexMatch Mak comblang untuk membuat pertandingan multi-pemain dan mengatur sesi permainan untuk mereka.
Peta jalan ini menyajikan jalur yang efisien untuk membuat game multipemain Anda aktif dan berjalan dengan sukses dengan Amazon GameLift Servers hosting Anywhere. Setelah Anda memiliki komponen yang diperlukan, Anda dapat terus mengulangi pengembangan game dan menyesuaikan solusi hosting Anda. Saat Anda semakin dekat dengan peluncuran, lihat ini Mempersiapkan game Anda untuk diluncurkan dengan Amazon GameLift Servers hosting untuk bantuan dalam mempersiapkan solusi hosting Anda untuk penggunaan tingkat produksi.
Mulailah dengan Amazon GameLift Servers plugin untuk Unreal Engine dan Unity
Untuk penyebaran yang lebih cepat, coba Amazon GameLift Serversplugin
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.x) untuk proyek game Anda. Server SDK tersedia dalam C ++, C #, dan Go. Unduh SDK Amazon GameLift Servers server
. -
Ubah kode server game Anda untuk menambahkan fungsionalitas SDK server. Untuk panduan, lihat Integrasikan game dengan server game khusus. Minimal, lakukan hal berikut:
-
Tambahkan kode untuk menginisialisasi Amazon GameLift Servers SDK dan membuat WebSocket koneksi dengan layanan. Amazon GameLift Servers Gunakan tindakan SDK server
InitSdk()
dan sertakan parameter server, yang diperlukan untuk armada Anywhere. -
Tambahkan kode untuk melaporkan ke Amazon GameLift Servers layanan ketika proses server siap untuk meng-host sesi permainan. Gunakan tindakan
ProcessReady()
SDK server. -
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
ProcessEnding()
SDK server.
-
-
Package build server game Anda. Buat skrip penginstalan 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, kami sarankan menyiapkan armada Amazon GameLift Servers Anywhere untuk workstation lokal, seperti yang dijelaskan dalamSiapkan pengujian lokal dengan Amazon GameLift Servers Anywhere. 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 permainan.
Buat cara bagi klien game Anda untuk meminta 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.
-
Bangun fungsionalitas layanan backend untuk hosting. Layanan backend berkomunikasi dengan Amazon GameLift Servers layanan dan memberikan informasi koneksi ke klien game. Fungsionalitas ini termasuk memulai sesi permainan, menempatkan pemain ke dalam game, dan mengambil informasi sesi permainan. Untuk panduan, lihat Integrasikan game dengan server game khusus. 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 Amazon GameLift Servers pada layanan backend.
-
Tambahkan fungsionalitas untuk memanggil aksi AWS SDK
CreateGameSession()
dan memberikan informasi koneksi sesi game ke klien game. Lihat Membuat sesi permainan pada armada tertentu.Memanggil
CreateGameSession()
adalah titik awal yang nyaman untuk meminta sesi permainan baru, Setelah Anda memiliki sistem penempatan sesi permainan di tempat (lihat Langkah 3), Anda akan mengganti kode ini dengan panggilan keStartGameSessionPlacement()
(atauStartMatchmaking()
jika Anda menggunakanFlexMatch).Untuk panduan tentang merancang layanan backend Anda, lihat. Rancang layanan klien game Anda
-
-
Tambahkan fungsionalitas ke klien game Anda yang memungkinkan pemain bergabung dengan sesi game yang dihosting. Klien game membuat permintaan ke layanan backend Anda, tidak langsung ke. Amazon 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.
Sesuaikan cara Anda Amazon GameLift Servers ingin memproses permintaan untuk sesi permainan 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 permainan, Amazon GameLift Servers cari penempatan “terbaik” berdasarkan serangkaian prioritas yang ditentukan seperti latensi minimum, biaya, dan ketersediaan.
-
Buat antrian sesi permainan untuk menempatkan sesi permainan 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 opsional.
-
-
Dalam kode layanan backend Anda, ubah
CreateGameSession()
panggilan ke.StartGameSessionPlacement()
Lihat Membuat sesi permainan dalam antrean multi-lokasi. -
Buat mekanisme untuk memberi tahu klien game saat sesi permainan 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 FlexMatch perjodohan. Untuk panduan, lihat panduan Amazon GameLift ServersFlexMatch pengembang.
Hingga 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. Untuk sumber daya ini, gunakan Amazon GameLift Servers Agen untuk mengelola beberapa tugas manajemen host on-compute 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 repositori Amazon GameLift ServersAgen Github
. 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 Agen 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, setidaknya, 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 mengautentikasi 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 pada komputasi. -
Memulai proses server baru pada komputasi berdasarkan serangkaian instruksi runtime.
-
-
Buat konfigurasi runtime untuk komputasi di armada Anywhere Anda. 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 permainan Anda sesuai kebutuhan. Buat antrian baru (atau perbarui yang sudah ada) untuk menggunakan armada Anywhere yang disebarkan dengan Agen. Amazon GameLift Servers
-
Uji integrasi Agen dengan armada Anywhere Anda. Periksa apakah Agen memulai proses server dengan benar berdasarkan konfigurasi runtime.
Saat Anda mempersiapkan peluncuran game, Anda harus menyempurnakan sumber daya hosting terkelola Anda. Beberapa keputusan yang perlu dipertimbangkan meliputi:
-
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 berkala, dan mematikan komputasi dapat menghemat biaya saat tidak diperlukan.
-
Jika server game Anda perlu mengkomunikasikan AWS sumber daya lain, siapkan peran IAM untuk mengelola akses. Lihat Berkomunikasi dengan AWS sumber daya lain dari armada Anda.
-
Tentukan di mana secara geografis Anda ingin memposisikan server game. Tambahkan lokasi jarak jauh ke armada terkelola Anda. Lihat Sesuaikan Amazon GameLift Servers EC2 armada yang dikelola.
-
Optimalkan kinerja armada dengan memilih konfigurasi sumber daya komputasi, lalu konfigurasikan instruksi runtime untuk menjalankan jumlah optimal proses server per komputasi.
-
Bereksperimenlah dengan opsi penempatan sesi game untuk armada terkelola, termasuk menyesuaikan pengaturan prioritas. Lihat Kustomisasi antrian sesi permainan.
-
Buat mekanisme untuk menangani penskalaan kapasitas manual atau otomatis untuk memenuhi permintaan pemain yang diharapkan. Pertimbangkan faktor apa yang harus mendorong sistem untuk menambah atau mengurangi jumlah komputasi yang tersedia untuk menyelenggarakan sesi permainan.
-
Rancang dan implementasikan failover ke sumber daya lain jika diperlukan.
-
Siapkan alat observabilitas hosting, termasuk analitik dan pencatatan. Lihat Pemantauan Amazon GameLift Servers.