View a markdown version of this page

Serverless-based arsitektur backend game - Lensa Industri Game

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

Serverless-based arsitektur backend game

Banyak pengembang game tidak ingin mengelola infrastruktur, dan malah lebih memilih untuk membangun game mereka menggunakan teknologi yang memungkinkan mereka untuk fokus pada perangkat lunak. Arsitektur tanpa server direkomendasikan dalam skenario ini karena memungkinkan Anda membangun dan merilis fitur lebih cepat, dan dengan biaya operasional yang lebih sedikit. Arsitektur tanpa server dirancang menggunakan layanan cloud yang dapat menskalakan secara dinamis berdasarkan permintaan tanpa perlu mengatur, mengelola, dan menskalakan server. Arsitektur referensi berikut menggambarkan bagaimana membangun game menggunakan arsitektur tanpa server.

Serverless-based arsitektur referensi backend game

Serverless-based arsitektur referensi backend game

Arsitektur referensi ini menggambarkan permainan trivia berbasis web yang menyediakan fitur pemain tunggal dan multipemain.

  • Otentikasi pemain: Pemain mengautentikasi menggunakan Amazon Cognito, yang menyediakan otentikasi aman dengan direktori pengguna untuk manajemen identitas pemain.

  • Logika game sebagai fungsi tanpa server: Fitur game dan logika bisnis backend berjalan sebagai AWS Lambda fungsi yang dimulai sebagai respons terhadap peristiwa, yang membuat biaya tetap rendah karena Anda hanya membayar ketika fungsi berjalan. Lambda memberi Anda fleksibilitas untuk menulis setiap fitur game sebagai layanan mikro terpisah menggunakan bahasa pemrograman pilihan Anda. Misalnya, Anda dapat memilih untuk mengembangkan fungsi.NET Lambda jika Anda memiliki pengalaman menggunakan C # untuk membangun game Unity, atau Anda mungkin memilih untuk mengembangkan fungsi Node.js Lambda jika Anda ingin memprogram frontend dan backend untuk game berbasis web keduanya. JavaScript

  • NoSQL Data Store untuk data game dan pemain: Gunakan DynamoDB untuk menyimpan data pemain dan game Anda, karena dirancang khusus untuk menyimpan data dalam jumlah besar dari layanan mikro. Seperti yang diilustrasikan dalam arsitektur ini, ini adalah praktik terbaik untuk menggunakan penyimpanan data terpisah untuk kebutuhan penyimpanan data setiap fitur game, yang membuatnya mudah bagi Anda untuk memantau dan mengelola fitur secara mandiri. Ini juga menciptakan batas pemisahan jika kepemilikan fitur atau layanan berubah dalam tim Anda. Dalam arsitektur referensi ini, tabel DynamoDB digunakan untuk menyimpan data seperti status koneksi, detail permainan, kemajuan pemain, dan informasi papan peringkat.

  • Gameplay pemain tunggal: Fitur pemain tunggal memungkinkan pemain untuk melakukan tindakan seperti memilih dan memainkan game dan melihat papan peringkat. Fitur-fitur ini diimplementasikan sebagai layanan backend RESTful yang dihosting dengan API HTTP API Gateway Amazon yang memanggil fungsi Lambda yang sesuai untuk mendapatkan dan mengatur data dalam tabel DynamoDB. Ketika gameplay selesai, backend juga mengirimkan pemberitahuan ke topik Amazon SNS yang memulai fungsi Lambda secara asinkron untuk menyimpan kemajuan dan statistik pemain.

  • Gameplay multipemain: Fitur permainan multipemain mengharuskan pemain untuk dapat berinteraksi dengan game untuk komunikasi point-to-point, serta menyiarkan dan menerima pembaruan dari pemain lain yang terhubung. WebSockets Implementasi cocok untuk komunikasi point-to-point dalam game ringan, seperti trivia. Pemain dapat membuat WebSockets koneksi ke Amazon API Gateway WebSockets, yang mengelola koneksi dan hanya memanggil fungsi Lambda ketika ada pesan untuk dikirim atau diterima untuk pemain. Untuk kasus penggunaan di mana komunikasi satu-ke-banyak diperlukan antara pemain, AWS IoT Core menyediakan dukungan untuk pengiriman pesan WebSockets melalui MQTT, yang memungkinkan klien untuk berlangganan topik dan bertindak berdasarkan pesan yang diterimanya. Dalam arsitektur ini, WebSockets over MQTT digunakan untuk mendukung kasus penggunaan seperti menyiarkan pembaruan dalam game langsung dan mengajukan pertanyaan kepada pemain yang terhubung. Sebagai alternatif AWS IoT, Anda dapat memilih Redis Pub/Sub untuk pengiriman pesan atau Redis Streams jika Anda memerlukan penyimpanan pesan.

  • Gunakan fungsi VPC-enabled Lambda untuk mengakses sumber daya di subnet pribadi Anda: Konfigurasikan fungsi VPC-enabled Lambda untuk mengakses sumber daya di subnet pribadi VPC Anda, seperti Amazon ElastiCache, yang digunakan untuk mengurangi waktu kueri untuk kumpulan data latensi rendah seperti papan peringkat langsung.

Untuk informasi selengkapnya, lihat Panduan untuk Hosting Backend Game Kustom di AWS.