Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Arsitektur backend game berbasis tanpa server
Banyak pengembang game tidak ingin mengelola infrastruktur, dan sebaliknya lebih suka membangun game mereka menggunakan teknologi yang memungkinkan mereka untuk fokus pada perangkat lunak. Arsitektur tanpa server direkomendasikan dalam skenario ini karena memungkinkan Anda untuk membangun dan merilis fitur lebih cepat, dan dengan overhead 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 cara membangun game menggunakan arsitektur tanpa server.
Arsitektur referensi backend game berbasis tanpa server
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 permainan sebagai fungsi tanpa server: Fitur game dan logika bisnis backend dijalankan sebagai AWS Lambda fungsi yang dimulai sebagai respons terhadap peristiwa, yang menekan biaya karena Anda hanya membayar saat 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 dapat memilih untuk mengembangkan fungsi Lambda Node.js jika Anda ingin memprogram frontend dan backend untuk game berbasis web keduanya di. JavaScript
-
NoSQL Data Store untuk data game dan pemain: Gunakan DynamoDB untuk menyimpan data pemain dan game Anda, karena ini dibuat khusus untuk menyimpan sejumlah besar data dari layanan mikro. Seperti yang diilustrasikan dalam arsitektur ini, ini adalah praktik terbaik untuk menggunakan penyimpanan data terpisah untuk setiap kebutuhan penyimpanan data fitur game, yang membuatnya mudah bagi Anda untuk memantau dan mengelola fitur secara mandiri. Ini juga menciptakan batasan 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 RESTful backend yang dihosting dengan API HTTP Amazon API Gateway yang memanggil fungsi Lambda yang sesuai untuk mendapatkan dan mengatur data dalam tabel DynamoDB. Saat gameplay selesai, backend juga mengirimkan notifikasi ke topik Amazon SNS yang memulai fungsi Lambda secara asinkron untuk menyimpan kemajuan dan statistik pemain.
-
Gameplay multipemain: Fitur game multipemain mengharuskan pemain untuk dapat berinteraksi dengan game untuk point-to-point komunikasi, serta menyiarkan dan menerima pembaruan dari pemain lain yang terhubung. WebSockets Implementasi cocok untuk point-to-point komunikasi 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 one-to-many komunikasi diperlukan antara pemain, AWS IoT Core berikan dukungan untuk pengiriman pesan menggunakan 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 langsung dalam game 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 Lambda berkemampuan VPC untuk mengakses sumber daya di subnet pribadi Anda: Konfigurasikan fungsi Lambda berkemampuan VPC untuk mengakses sumber daya di subnet pribadi VPC Anda, seperti Amazon, yang digunakan untuk mengurangi waktu kueri untuk kumpulan data latensi ElastiCache rendah seperti papan peringkat langsung.
Untuk informasi selengkapnya, lihat Panduan untuk Hosting Backend Game Kustom