Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
GAMEPERF05-BP02 Pindahkan tugas komputasi yang tidak sensitif terhadap latensi ke alur kerja asinkron
Ketika Anda mengoptimalkan kinerja untuk game Anda, penting untuk diingat bahwa hanya beberapa interaksi antara klien dan backend game yang harus dilakukan secara sinkron. Anda harus mempertimbangkan setiap fitur dari perspektif pengalaman pemain dan menentukan apakah interaksi tertentu memerlukan komunikasi sinkron, yang memblokir dan padat sumber daya, atau apakah fitur-fitur tersebut dapat diimplementasikan secara asinkron. Saat Anda mengimplementasikan panggilan jaringan, gunakan pendekatan asinkron dan non-pemblokiran. Selain itu, backend game Anda juga harus dikonfigurasi untuk melakukan pekerjaan secara efisien dengan menurunkan tugas ke antrian dan memprioritaskan respons cepat kepada klien jika memungkinkan.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Tinggi
Panduan implementasi
Misalnya, memperbarui papan pemimpin di akhir sesi pemain dapat diimplementasikan secara asinkron sehingga klien tidak perlu menunggu pembaruan papan pemimpin selesai. Sebagai gantinya, terapkan ini secara asinkron pada klien game, dan pertimbangkan untuk merancang layanan backend Anda untuk mendorong jenis operasi ini ke dalam antrian, seperti Amazon SQS. Dengan arsitektur ini, konfigurasikan backend Anda untuk menerima permintaan, mengantrekannya di SQS yang membantu menyimpan pesan secara tahan lama untuk pemrosesan asinkron, dan segera membalas klien. Ketika pembaruan papan pemimpin selesai, backend dapat mengirim pembaruan ke klien game sehingga tampilan pemain tentang papan pemimpin diperbarui.
Atau, pemain dapat dengan mudah mengunjungi layar papan peringkat permainan Anda untuk mengambil data terbaru, yang dapat mengeluarkan permintaan web ke backend Anda untuk mengambil data terbaru dari cache.
Langkah-langkah implementasi
-
Tentukan apakah interaksi client-backend memerlukan komunikasi sinkron; terapkan pendekatan asinkron dan non-pemblokiran jika memungkinkan untuk mengoptimalkan penggunaan sumber daya.
-
Gunakan Amazon SQS untuk menurunkan tugas yang tidak penting seperti pembaruan papan peringkat.
-
Izinkan klien mengambil data yang diperbarui secara asinkron, seperti mengambil data papan peringkat terbaru sesuai permintaan atau melalui pembaruan latar belakang.