Mengintegrasikan game dengan Amazon GameLift ServersRealtime - Amazon GameLift Servers

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 ServersRealtime

Topik ini memberikan gambaran umum tentang Amazon GameLift Servers Realtime solusi yang dikelola Amazon GameLift Servers dengan. Ikhtisar menjelaskan kapan solusi ini cocok untuk game Anda, dan bagaimana Amazon GameLift Servers Realtime mendukung game multipemain.

Apa itu Realtime server?

Realtimeserver ringan, server ready-to-go game yang Amazon GameLift Servers menyediakan untuk Anda gunakan dengan game multipemain Anda. Realtimeserver menghapus proses pengembangan, pengujian, dan penyebaran server game kustom. Solusi ini dapat membantu meminimalkan waktu dan upaya yang diperlukan untuk menyelesaikan permainan Anda.

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

  • Fungsionalitas server game inti

  • Logika server yang dapat disesuaikan

  • Pembaruan langsung untuk Realtime konfigurasi dan logika server

  • FlexMatchperjodohan

  • Kontrol sumber daya hosting yang fleksibel

Siapkan Realtime server dengan membuat armada dan menyediakan skrip konfigurasi.

Bagaimana Amazon GameLift ServersRealtime mengelola sesi permainan

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

Bagaimana Realtime klien dan server berinteraksi

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

Selain itu, Anda dapat menyesuaikan bagaimana klien dan server berinteraksi dengan menambahkan logika permainan ke Realtime skrip. Dengan logika permainan khusus, Realtime server mungkin menerapkan callback untuk memulai respons berbasis peristiwa.

Protokol komunikasi

Realtimeserver 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 Servers kirim pesan menggunakan TCP sebagai fallback.

Konten 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 oleh pengembang. Klien game Anda bertindak berdasarkan OpCodes dalam pesan yang diterimanya.

Grup pemain

Amazon GameLift ServersRealtimemenyediakan fungsionalitas untuk mengelola kelompok pemain. Secara default, Amazon GameLift Servers 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.

Amazon GameLift ServersRealtimedengan sertifikat TLS

Dengan Amazon GameLift ServersRealtime, 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 Realtime server, server secara otomatis merespons dengan sertifikat TLS, yang divalidasi klien. Amazon GameLift Serversmenangani enkripsi menggunakan TLS untuk komunikasi TCP (WebSockets) dan DTLS untuk lalu lintas UDP.

Menyesuaikan server Realtime

RealtimeServer berfungsi sebagai server relay stateless. RealtimeServer menyampaikan paket pesan dan data game antara klien game yang terhubung ke game. Namun, Realtime server 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 Realtime skrip. Dengan logika game, misalnya, Anda dapat membangun game stateful dengan tampilan server-otoritatif dari status game.

Amazon GameLift Serversmendefinisikan satu set 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 mengirim pesan dari pemain tertentu atau ke pemain target, atau melakukan pemrosesan tambahan sebagai tanggapan.

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

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

Menyebarkan dan memperbarui Amazon GameLift ServersRealtime

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

Mulailah mengintegrasikan game Anda dengan Amazon GameLift ServersRealtime: