한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › L1 Proses game di klien

Bottleneck pemrosesan paket di main thread Network processing on the main thread

ID penyebab cg-net-mainthread · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika paket yang diterima hanya diproses dalam jumlah tertentu per frame, paket yang datang bertumpuk terus terdorong ke frame berikutnya.

Mengapa Di tempat ramai, ribuan update tiba setiap detik → Akibatnya Main thread terbentur batas jumlah pemrosesan per frame dan tidak sempat membaca semuanya → Di layar Gerakan pemain lain makin lama makin terlambat, lalu diterapkan sekaligus

Gejala
Fast forward, Input lag
Faktor
Stall, Latensi
Siapa yang mengalami
Lokasi/channel tertentu, Hanya saya
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: terima dan parse paket di thread terpisah, gabungkan update posisi lama untuk objek yang sama dan terapkan yang terbaru saja. Server: di tempat ramai, kirim update karakter yang jauh dengan frekuensi lebih rendah untuk mengurangi volume kirim.
Kisaran angka
Begitu paket yang belum diproses menumpuk, hanya butuh beberapa detik sampai tertinggal sebanyak 1 detik.
Di grafik
Naik mengikuti beban · Jumlah paket terima yang belum diproses, latensi dari diterima hingga diterapkan
Yang diperiksa
Catat di log jumlah paket yang tersisa karena tidak sempat diproses klien di setiap frame, serta latensi dari waktu paket tiba hingga diterapkan ke game, lalu periksa bersama jumlah pemain di sekitar
Cocok jika
Di tempat ramai, jumlah paket yang tersisa dan latensi penerapan terus bertambah, sedangkan pada saat yang sama ping dan interval kirim server normal
Tidak cocok jika
Tidak ada latensi penerapan, tetapi paketnya sendiri tiba terlambat: mengarah ke jalur jaringan. Frame time naik tajam: lebih mungkin “Beban rendering kerumunan besar”
Sarana pemeriksaan
Log dan metrik server atau klien game

Sumber

  1. Actor Priority in Unreal Engine Epic Games
    Jika bandwidth kurang, tidak semua actor direplikasi setiap kali; prioritas ditentukan dari jarak ke pengamat dan waktu sejak replikasi terakhir
  2. Replication Graph in Unreal Engine Epic Games
    Game dengan banyak pemain dan objek replikasi (MMORPG dan sebagainya) harus mengelompokkannya per lokasi dan hanya mengirim objek yang diperlukan agar terhindar dari bottleneck CPU server

Lihat juga

Lapisan yang sama: L1 Proses game di klien

Penyebab di lapisan lain dengan gejala yang sama (Fast forward)

Lihat kartu interaktif dengan gambar dan simulasi