Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Orientasi cepat dengan pembungkusnya Amazon GameLift Servers
Selamat datang di tutorial orientasi untukAmazon GameLift Servers. Dalam tutorial ini, Anda dengan cepat menyebarkan server game Anda untuk di-host pada armada sumber daya komputasi berbasis cloud. Gunakan tutorial ini untuk melewatkan pekerjaan mengintegrasikan SDK server Amazon GameLift Servers ke dalam kode game Anda, dan sebagai gantinya menyebarkan game Anda dengan fungsionalitas minimal untuk berkomunikasi dengan Amazon GameLift Servers layanan dan menjalankan sesi permainan. Anda akan menyiapkan solusi hosting dasar dan menggunakannya untuk mengalami berbagai fitur seperti penskalaan otomatis dan perjodohan. Ini juga merupakan cara yang bagus untuk meng-host prototipe game Anda sebagai bagian dari demo langsung atau untuk pengujian.
Manfaat utama dari metode orientasi ini:
-
Gunakan server game Anda dengan cepat untuk hosting dengan cepat.
-
Tidak ada perubahan kode game dan tidak ada modifikasi yang diperlukan.
-
Gunakan metode ini dengan game apa pun yang dapat dieksekusi, terlepas dari mesin game.
-
Jelajahi semua alat Amazon GameLift Servers manajemen, termasuk pemantauan aktivitas sesi game dan kesehatan hosting.
catatan
Pembungkus dimaksudkan untuk evaluasi dan penggunaan produksi dasar. Fitur-fitur canggih seperti manajemen sesi pemain terperinci memerlukan integrasi SDK server penuh.
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki:
-
A Akun AWS dengan izin yang sesuai
-
AWS CLI dipasang
-
Pergi 1.18+
-
Server game multipemain yang dapat dieksekusi
-
Membuat (Linux/Mac)
-
Git diinstal dengan akun aktif
Gambaran Umum
Dalam tutorial ini Anda akan:
-
Dapatkan dan bangun pembungkusnya
-
Siapkan game build
-
Konfigurasikan pembungkusnya
-
Unggah build server game
-
Buat EC2 armada yang dikelola
-
Buat dan sambungkan ke sesi permainan
-
Pantau dan kelola server game Anda
-
Skala server game Anda
Langkah 1: Dapatkan dan bangun pembungkus server game
Gunakan perintah berikut untuk mendapatkan sumber pembungkus server game dan membangun pembungkusnya. Perintah ini menggunakan SSH, tetapi Anda juga dapat pergi ke repositori Github secara langsung.
Windows
> git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git > cd amazon-gamelift-servers-game-server-wrapper > powershell -file .\build.ps1
Mac dan Linux
$ git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git $ cd amazon-gamelift-servers-game-server-wrapper $ make
Pada build yang berhasil, direktori “out” ditambahkan keamazon-gamelift-servers-game-server-wrapper
. Dalam direktori ini ada tiga folder, satu untuk setiap opsi armada hosting yang didukung, yang berisi satu set artefak build. Untuk tutorial ini, Anda menyebarkan ke EC2 armada terkelola, jadi Anda akan menggunakan folder tersebut. gamelift-servers-managed-ec2
Langkah 2: Siapkan build server game Anda
Pada langkah ini, Anda menyiapkan file build server game Anda untuk diunggah ke file. Amazon GameLift Servers
Buat direktori game
Sekarang, siapkan direktori game di mesin lokal Anda. Direktori ini harus berisi semua file yang Anda butuhkan untuk menjalankan server game AndaAmazon GameLift Servers. Ini termasuk pembungkus server game, build server game Anda, dan config.yaml yang membuat pembungkus berfungsi dengan server game Anda.
Gunakan langkah-langkah berikut:
-
EC2 Armada yang dikelola. Di folder keluaran pembungkus server game, temukan artefak build untuk digunakan ke armada Terkelola. EC2 Build akan ditulis ke direktori out seperti yang ditunjukkan di sini:
out\linux\amd64\gamelift-servers-managed-ec2
. -
Salin server game Anda yang dapat dieksekusi dan semua file terkait yang diperlukan untuk masuk ke folder.
gamelift-servers-managed-ec2
Anda dapat memiliki direktori bersarang sesuai kebutuhan.
Contoh struktur direktori akan terlihat seperti ini:
gamelift-servers-managed-ec2 │-- config.yaml │-- amazon-gamelift-servers-game-server-wrapper │-- MyGame │ │-- server-executable.exe │ │-- my-game-settings │ │ ......
Langkah 3: Konfigurasikan pembungkus untuk armada Anda
Amazon GameLift Serversmengelola siklus hidup instance komputasi armada, memutar instans baru dengan build server yang diinstal dan mendaur ulang instans sesuai kebutuhan. Layanan ini mengelola siklus hidup proses server game yang berjalan pada setiap instance. EC2 Armada yang Dikelola dapat memiliki instance di beberapa lokasi untuk mendukung pemain di mana pun mereka berada.
Edit file config.yaml untuk mengonfigurasi pembungkus untuk logging, pengaturan port, dan inisialisasi server.
-
Konfigurasikan pengaturan logging. Pembungkus server game menghasilkan pesan log untuk setiap proses server game. Secara default, level log diatur ke debug untuk verbositas maksimum. Ini sangat berguna selama pengaturan dan pemecahan masalah dan menentukan seberapa detail pesan log - dalam hal ini, yang paling bertele-tele. Opsi termasuk debug, info, peringatan, dan kesalahan (paling tidak bertele-tele).
-
Tentukan jalur ke direktori log server game. Jalur default untuk log server game adalah
./game-server-logs
. Direktori ini berisi semua log yang dihasilkan oleh server game Anda dan setiap instance memilikinya. Log secara otomatis diunggah ke Amazon GameLift Servers tempat mereka diakses dari tab Acara. Lihat bagian Pemecahan Masalah untuk detail selengkapnya. -
Tentukan konfigurasi port jaringan. Atur port game ke apa pun yang Anda inginkan. Untuk tutorial ini, tentukan satu port saja, karena Anda akan membuat armada yang hanya menjalankan satu proses server game bersamaan per instance. Jika Anda memutuskan untuk menjalankan beberapa proses sekaligus, Anda harus mengonfigurasi port yang cukup untuk setiap proses bersamaan. Nilai defaultnya adalah 37016 seperti yang ditunjukkan pada file konfigurasi, tetapi secara umum, untuk armada yang menggunakan build Linux menggunakan port 22 dan 1026-60000. Untuk armada yang menggunakan build Windows, gunakan port 1026-60000.
-
Siapkan jalur ke server game yang dapat dieksekusi. Untuk
./MyGame/my-server-executable.exe
menyesuaikan jalur ke server game Anda yang dapat dieksekusi dengan nama dan lokasi sebenarnya untuk itu. Ini adalah titik masuk untuk meluncurkan server game Anda. -
Konfigurasikan argumen server game. Minimal, tentukan argumen -port dan gunakan nilai port game yang sama yang Anda tentukan sebelumnya. Nilai “pos” 0 menunjukkan ini adalah argumen pertama. Tambahkan argumen lain sesuai kebutuhan. Argumen ini diteruskan ke server game Anda saat diluncurkan, memungkinkan Anda mengonfigurasi perilaku runtime-nya.
-
Argumen:
"--port"
-
Nilai:
"{{.port number here}}"
-
Posisi:
0
(Argumen pertama dalam daftar)
-
Contoh konfigurasi:
log-config: wrapper-log-level: debug game-server-logs-dir: ./game-server-logs ports: gamePort: 37016 game-server-details: executable-file-path: ./MyGame/my-server-executable game-server-args: - arg: "--port" val: "{{.gameport}}" pos: 0
Langkah 4: Unggah build server game
Anda sekarang telah menyelesaikan semua elemen yang diperlukan dari pembuatan server game Anda (pembungkus server game, config.yaml, dan file server game Anda), dan Anda siap mengunggah build game Anda untuk hosting. Amazon GameLift Servers Cara tercepat untuk mengunggah build game Anda adalah dengan menggunakan AWS CLI perintah upload-build
seperti yang ditunjukkan pada contoh berikut.
Mengunggah build game dengan Windows:
aws gamelift upload-build \ --name gamelift-test-2025-03-11-1 \ --build-version gamelift-test-2025-03-11-1 \ --build-root out/windows/amd64/gamelift-servers-managed-ec2 \ --operating-system WINDOWS_2016 \ --server-sdk-version 5.3.0 \ --region us-west-2
catatan
Untuk build Mac dan Linux, gunakan --operating-system AMAZON_LINUX_2023
Saat Anda membuat build, rekam ID build dari respons API untuk digunakan untuk pembuatan armada.
Langkah 5: Buat EC2 armada yang dikelola
Langkah-langkah berikut menjelaskan konfigurasi armada minimal, sehingga Anda dapat aktif dan berjalan sesegera mungkin.
Untuk membuat armada Anda:
-
Masuk ke AWS Management Console dan navigasikan keAmazon GameLift Servers.
-
Pada bilah menu di bagian atas jendela konsol, periksa untuk memastikan wilayah build Anda berada. Catat itu karena armada Anda harus berada di wilayah yang sama atau Anda tidak akan dapat menemukan atau memilih bangunan Anda.
-
Di panel navigasi di EC2 bagian Dikelola, pilih Builds.
-
Pilih build yang Anda unggah sebelumnya untuk menampilkan halaman Detail Build.
-
Di bagian Armada pilih Buat Armada yang menampilkan halaman Tentukan detail EC2 armada Terkelola tempat Anda dapat melacak status armada Anda serta melihat peristiwa pembuatan armada di tab Acara.
-
Isi nama dan deskripsi dan pilih Berikutnya.
-
Di halaman Tentukan detail instance, wilayah build ditampilkan secara default. Pilih wilayah tambahan yang ingin Anda tambahkan.
-
Untuk tipe Armada pilih On-Demand.
-
Di bawah Jenis instans pilih c5.large dan pilih Berikutnya.
-
Di bawah konfigurasi Runtime, Karena build game yang Anda unggah menggunakan wrapper, Anda harus menunjuk ke wrapper executable sebagai gantinya. Untuk server game Windows ini
C:\game\amazon-gamelift-servers-game-server-wrapper.exe
. Untuk server game Linux, ini/local/game/amazon-gamelift-servers-game-server-wrapper
.Misalnya:
LaunchPath": "/local/game/amazon-gamelift-servers-game-server-wrapper", "ConcurrentExecutions": 1, "Parameters": "—port 37016
Selain itu, konfigurasikan nilai port game dengan rentang yang memungkinkan port yang ditetapkan dalam parameter peluncuran konfigurasi runtime
config.yaml
dan runtime. Port diconfig.yaml
tidak perlu cocok dengan yang ditentukan dalam konfigurasi runtime armada, tetapi saat runtime jika konfigurasi menentukan port yang berbeda, nilai itu menggantikan apa yang ada di port.config.yaml
Parameter peluncuran yang dimasukkan dalam konfigurasi runtime juga mengganti apa yang ada di.config.yaml
Pada halaman Tinjau dan buat, periksa ulang semua konfigurasi, lalu pilih Kirim untuk membuat armada Anda. Status armada akan berubah karena meningkatkan kapasitas untuk meng-host server game, dan segera menunjukkan status Aktif. Setelah aktivasi selesai dan armada dikerahkan, layanan meluncurkan pembungkus yang siap menerima permintaan sesi permainan.
Langkah 6: Buat dan sambungkan ke sesi permainan
Ketika status armada Anda menunjukkan Aktif, ini berarti server game siap dan menunggu untuk menyelenggarakan sesi permainan. Untuk memulai sesi permainan, buat permintaan sesi permainan ke Amazon GameLift Servers layanan. Di sini, Anda akan menggunakan AWS CLI untuk membuat permintaan ini.
catatan
Perlu diingat bahwa membuat sesi permainan menggunakan AWS CLI berguna untuk menguji dan menjadi akrab dengan prosesnya. Pada titik tertentu, Anda akan menambahkan panggilan AWS SDK terprogram ke layanan backend game Anda sebagai bagian dari sistem perjodohan atau penempatan sesi game Anda.
Gunakan yang berikut ini untuk membuat sesi permainan:
aws gamelift create-game-session \ --fleet-id <FLEET_ID> \ --game-properties '[{"Key": "exampleProperty", "Value": "exampleValue"}]' \ --maximum-player-session-count 3 \ --region us-west-2
Anda juga dapat meneruskan properti game yang disesuaikan ke server yang dapat dieksekusi. Lihat Argumen Server Game di README untuk detailnya. Ketika menerima create-game-session panggilan, Amazon GameLift Servers menginformasikan pembungkus untuk meluncurkan server game yang dapat dieksekusi dan memulai sesi permainan. Apa yang ada di config.yaml
mempengaruhi konfigurasi server game, dan parameter peluncuran yang diatur di konsol menentukan konfigurasi sesi game itu sendiri.
Contoh format untuk menambahkan properti game:
defaultArgs: - arg: "--port" val: "{{.GamePort}}" pos: 0 - arg: "--ipAddress" val: "{{.IpAddress}}" pos: 1 - arg: "--gameSessionId" val: "{{.GameSessionId}}" pos: 2
Langkah 7: Kelola dan pantau armada Anda
Sekarang armada server game Anda sudah diatur dan sesi permainan dimulai, Anda dapat mengelola dan memantaunya dari Amazon GameLift Servers konsol. Cara terbaik untuk melakukannya adalah dari halaman detail Armada tempat Anda dapat mengedit detail armada atau mengubah penskalaan dan kapasitas armada di tab Penskalaan. Lihat bagian berikut tentang penskalaan server game Anda.
Pilih tab Metrik untuk melihat grafik yang menggambarkan pemantauan untuk metrik Aktivitas dan Perangkat Keras. Untuk detail tentang grafik metrik, pilih tautan Info di sebelah ID armada Anda. Selain itu, meskipun Anda dapat memonitor server game Anda dari tab Metrik, Anda juga dapat menambahkan alarm ke metrik ini di dasbor. CloudWatch
Untuk menavigasi ke CloudWatch dasbor dari konsol:
-
Ketik CloudWatch "" di bilah pencarian dan pilih dari daftar hasil pencarian untuk menampilkan CloudWatch Ikhtisar.
-
Gulir ke bawah dan pilih Lihat GameLift dasbor untuk melihat grafik berdasarkan metrik utama untuk armada dan sesi permainan Anda.
Langkah 8: Skala server game Anda
Untuk langkah selanjutnya, Anda mengatur penskalaan otomatis. Dengan penskalaan otomatis, Anda secara dinamis menskalakan kapasitas armada Anda sebagai respons terhadap aktivitas server game. Saat pemain tiba dan memulai sesi permainan, penskalaan otomatis menambahkan lebih banyak instance, dan saat permintaan pemain menurun, penskalaan otomatis melepaskan instance yang tidak digunakan. Ini adalah cara yang efektif untuk meminimalkan sumber daya dan biaya hosting Anda sambil tetap memberikan pengalaman pemain yang lancar dan cepat.
Saat Anda mempersiapkan peluncuran game, Anda akan ingin mengatur penskalaan otomatis untuk armada Anda. Penskalaan otomatis direkomendasikan sebagai cara yang efektif untuk meminimalkan sumber daya dan biaya hosting Anda sambil tetap memberikan pengalaman pemain yang lancar dan cepat.
Untuk mengatur kapasitas armada secara manual
Untuk mengatur kapasitas armada secara manual
-
Buka tab Penskalaan di halaman detail untuk armada Anda.
-
Pilih lokasi dan pilih Edit.
-
Ubah nilai instans yang diinginkan dan ubah setelan ukuran Min dan Maks untuk skala melampaui nilai saat ini.
catatan
Gunakan pengaturan instans maks sebagai stop gap untuk mencegah penskalaan dan biaya yang berlebihan.
-
Pilih Konfirmasi.
Untuk menggunakan penskalaan otomatis berbasis target
Untuk menggunakan penskalaan otomatis berbasis target
Penskalaan otomatis berbasis target (pelacakan target) menghubungkan penskalaan armada ke persentase sesi permainan yang tersedia. Saat pemain melonjak untuk memainkan game Anda dan sesi permainan yang tersedia berkurang, itu merespons dengan secara otomatis menambahkan lebih banyak instance ke armada.
-
Di bawah kebijakan penskalaan otomatis berbasis target, pilih Tambahkan kebijakan dan atur kapasitas armada untuk berubah secara otomatis saat mencapai ambang persentase sesi game yang tersedia yang Anda tetapkan. Buffer yang lebih besar dapat menangani lonjakan dengan lebih baik, membuat pemain baru masuk ke game dengan cepat, tetapi juga dapat menyebabkan biaya hosting yang lebih tinggi.
-
Pilih Konfirmasi untuk menerima perubahan.
Penskalaan otomatis berbasis aturan memberi Anda kontrol yang lebih terperinci, seperti kemampuan untuk menautkan penskalaan ke metrik armada lainnya dan menetapkan ambang batas khusus dan respons penskalaan. Ini menawarkan opsi yang kuat, tetapi juga membutuhkan penggunaan CLI dan pengujian signifikan untuk memahami bagaimana aturan khusus berperilaku dalam tindakan. Tutorial ini berfokus pada pengaturan pertama pendekatan berbasis target.
Memecahkan masalah umum
Berikut ini adalah masalah umum yang mungkin Anda temui saat menjalankan server game dan sesi game Anda. Ketika server atau sesi game tidak berjalan dengan baik, langkah pertama adalah memeriksa log yang mungkin mengungkapkan salah satu masalah yang dijelaskan di bawah ini untuk penerapan atau game baru dalam produksi.
Berikut ini sering terungkap dalam log:
-
Proses server game tidak dapat diluncurkan. Ini mungkin kesalahan dalam konfigurasi pembungkus—verifikasi file memiliki jalur peluncuran yang benar dan parameter serta argumen peluncuran yang benar.
-
Pembuatan server game tidak dapat dijalankan. Ini kemungkinan kesalahan dalam kode game.
-
Pemain tidak dapat terhubung ke sesi permainan. Ini kemungkinan kesalahan konfigurasi port.
-
Lag atau koneksi lambat. Tinjau kebijakan dan ambang batas penskalaan.
-
Tidak ada koneksi. Verifikasi aturan dan konfigurasi port untuk armada Anda.
Untuk melihat log peristiwa untuk Amazon GameLift Servers armada Anda
Untuk melihat log peristiwa untuk Amazon GameLift Servers armada Anda
-
Buka konsol Amazon GameLift Servers.
-
Pada halaman Detail Armada pilih tab Acara dan unduh log. Anda juga dapat memantau metrik aktivitas dan perangkat keras untuk kesehatan server game dan aktivasi sesi game dari tab Metrik.
Untuk melihat log sesi permainan
Untuk melihat log sesi permainan
-
Dari konsol, buka armada Anda dan buka tab Sesi permainan.
-
Pilih ID sesi game dari daftar untuk menampilkan halaman Ikhtisar untuknya.
-
Pilih Unduh log untuk mengunduh file log secara lokal.
Untuk melihat log sesi game dengan CLI gunakan API. GetGameSessionLogURL
Amazon GameLift Serverssecara otomatis menyimpan log selama 14 hari.
Anda juga dapat mengonfigurasi CloudWatch log Amazon untuk armada Anda. Ini memberikan kemampuan logging tambahan dan integrasi dengan layanan AWS pemantauan lainnya.
Untuk akses log waktu nyata atau periode retensi yang diperpanjang melalui CloudWatch:
-
Di bagian atas dasbor Amazon GameLift Servers konsol Anda ketik CloudWatch "" di bilah pencarian dan pilih dari drop-down hasil.
-
Buka Grup CloudWatch Log dan cari sesi tertentu. Metode termudah adalah dengan mengklik Cari Semua dan filter menggunakan gameSessionId atau ClientID.