Mengintegrasikan game dengan Amazon GameLift Realtime Server - Amazon GameLift

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

Mengintegrasikan game dengan Amazon GameLift Realtime Server

Topik ini memberikan ikhtisar solusi Amazon GameLift dengan Realtime Server yang dikelola. Ringkasan menjelaskan kapan solusi ini cocok untuk game Anda, dan bagaimana Realtime Server mendukung game multipemain.

Untuk peta jalan lengkap agar game Anda aktif dan berjalan, lihat. Peta jalan hosting yang GameLift dikelola Amazon

Tip

Untuk mencoba hosting server GameLift game Amazon, lihatMemulai dengan Amazon GameLift.

Apa itu server Realtime?

Server realtime adalah server ready-to-go game ringan yang GameLift disediakan Amazon untuk Anda gunakan dengan game multipemain Anda. Server waktu nyata menghapus proses pengembangan, pengujian, dan penyebaran server game khusus. Solusi ini dapat membantu meminimalkan waktu dan usaha yang diperlukan untuk menyelesaikan permainan Anda.

Fitur kunci
  • Tumpukan jaringan penuh untuk interaksi klien dan server game

  • Fungsionalitas server game inti

  • Logika server yang dapat disesuaikan

  • Pembaruan langsung untuk konfigurasi Realtime dan logika server

  • FlexMatchperjodohan

  • Kontrol sumber daya hosting yang fleksibel

Siapkan server Realtime dengan membuat armada dan menyediakan skrip konfigurasi. Untuk informasi selengkapnya tentang membuat server Realtime dan cara mempersiapkan klien game Anda, lihatSiapkan server Realtime.

Bagaimana Realtime Server mengelola sesi game

Anda dapat menambahkan logika khusus untuk manajemen sesi game dengan membangunnya ke dalam skrip Realtime. Anda dapat menulis kode untuk mengakses objek khusus server, menambahkan logika berdasarkan peristiwa menggunakan callback, atau menambahkan logika berdasarkan skenario non-peristiwa.

Cara klien dan server Realtime berinteraksi

Selama sesi permainan, klien game berinteraksi dengan mengirim pesan ke server Realtime melalui layanan backend. Layanan backend kemudian menyampaikan pesan di antara klien game untuk bertukar aktivitas, status permainan, dan data game yang relevan.

Selain itu, Anda dapat menyesuaikan cara client dan server berinteraksi dengan menambahkan logika game ke skrip Realtime. Dengan logika game khusus, server Realtime mungkin mengimplementasikan callback untuk memulai respons berdasarkan peristiwa.

Protokol komunikasi

Server realtime dan klien game yang terhubung berkomunikasi melalui dua saluran: koneksi TCP untuk pengiriman yang andal, dan saluran UDP untuk pengiriman cepat. Saat membuat pesan, client game memilih protokol mana yang akan digunakan tergantung pada sifat pesan. Pengiriman pesan diatur ke UDP secara default. Jika saluran UDP tidak tersedia, Amazon GameLift mengirim pesan menggunakan TCP sebagai fallback.

Isi pesan

Isi pesan terdiri dari dua elemen: kode operasi yang diperlukan (opCode) dan muatan opsional. OpCode pesan mengidentifikasi aktivitas pemain atau peristiwa permainan tertentu, dan payload menyediakan data tambahan yang terkait dengan kode operasi. Kedua elemen ini didefinisikan pengembang. Klien game Anda bertindak berdasarkan OPCodes dalam pesan yang diterimanya.

Grup pemain

Realtime Servers menyediakan fungsionalitas untuk mengelola grup pemain. Secara default, Amazon GameLift menempatkan semua pemain yang terhubung ke game dalam grup “semua pemain”. Selain itu, pengembang dapat mengatur grup lain untuk game mereka, dan pemain dapat menjadi anggota dari beberapa grup secara bersamaan. Anggota grup dapat mengirim pesan dan berbagi data game dengan semua pemain dalam grup. Satu kemungkinan penggunaan untuk grup adalah menyiapkan tim pemain dan mengelola komunikasi tim.

Server Realtime dengan sertifikat TLS

Dengan Server Realtime, otentikasi server dan enkripsi paket data dibangun ke dalam layanan. Fitur keamanan ini diaktifkan saat Anda mengaktifkan pembuatan sertifikat TLS. Ketika klien game mencoba terhubung dengan server Realtime, server secara otomatis merespons dengan sertifikat TLS, yang divalidasi klien. Amazon GameLift menangani enkripsi menggunakan komunikasi TLS untuk TCP (WebSockets) dan DTLS untuk lalu lintas UDP.

Menyesuaikan server Realtime

Server Realtime berfungsi sebagai server relay stateless. Server Realtime menyampaikan paket pesan dan data game antara klien game yang terhubung ke game. Namun, server Realtime tidak mengevaluasi pesan, memproses data, atau melakukan logika gameplay apa pun. Digunakan dengan cara ini, setiap klien game mempertahankan pandangannya sendiri tentang status permainan dan memberikan pembaruan kepada pemain lain melalui server relai. Setiap client game bertanggung jawab untuk menggabungkan pembaruan ini dan menyesuaikan status gamenya sendiri.

Anda dapat menyesuaikan server Anda dengan menambahkan fungsionalitas skrip Realtime. Dengan logika permainan, misalnya, Anda dapat membangun permainan stateful dengan tampilan server-otoritatif dari status permainan.

Amazon GameLift mendefinisikan sekumpulan callback sisi server untuk skrip Realtime. Menerapkan callback ini untuk menambahkan fungsionalitas berdasarkan kejadian ke server Anda. Sebagai contoh, Anda dapat:

  • Mengautentikasi pemain ketika client game mencoba untuk menyambung ke server.

  • Validasi apakah pemain dapat bergabung dengan grup berdasarkan permintaan.

  • Tentukan kapan harus mengirimkan pesan dari pemain tertentu atau ke pemain target, atau lakukan pemrosesan tambahan sebagai tanggapan.

  • Beri tahu semua pemain saat pemain meninggalkan grup atau memutuskan sambungan dari server.

  • Lihat konten objek sesi game atau objek pesan, dan gunakan data.

Menerapkan dan memperbarui Server Realtime

Keuntungan utama dari Realtime Server adalah kemampuan untuk memperbarui skrip Anda kapan saja. Saat Anda memperbarui skrip, Amazon GameLift mendistribusikan versi baru ke semua sumber daya hosting dalam hitungan menit. Setelah Amazon GameLift menerapkan skrip baru, semua sesi permainan baru yang dibuat setelah titik itu akan menggunakan versi skrip baru. (Sesi game yang ada akan terus menggunakan versi aslinya.)

Mulai mengintegrasikan game Anda dengan Server Realtime: