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

Buku Putih Lag Game › L9 Proses game di server

Lonjakan broadcast Broadcast fan-out (N×N)

ID penyebab sp-broadcast · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)

Buka kartu interaktif dengan gambar dan simulasi →

Jika gerakan satu pemain dikirim ke semua yang melihatnya, jumlah update yang harus dikirim menjadi kuadrat dari jumlah pemain yang berkumpul.

Mengapa Perubahan satu pemain dikirim ke semua yang bisa melihatnya → Akibatnya Jika 1.000 pemain saling melihat, ada 1 juta update setiap tick → Di layar Antrean kirim dan bandwidth jenuh sehingga terjadi keterlambatan dan packet loss (input lag, fast forward, teleport)

Gejala
Input lag, Teleport, Fast forward
Faktor
Latensi, Packet loss
Siapa yang mengalami
Lokasi/channel tertentu, Seluruh server
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Turunkan frekuensi update menurut jarak dan tingkat kepentingan (musuh dekat setiap tick, pemain jauh beberapa kali per detik), batasi jumlah data yang dikirim ke satu pemain dan isi mulai dari yang paling penting, gabungkan beberapa update dalam satu paket, batasi jumlah pemain yang ditampilkan.
Tugas Tim Infrastruktur
Bandingkan bandwidth kirim dan jumlah paket per detik setiap server dengan batas jaringan NIC dan instance lalu pasang alert, pastikan ada ruang yang cukup sebelum event besar.
Kisaran angka
1.000 pemain × 1.000 pemain × 20 tick = 20 juta update per detik. Jika satu update 40 byte, totalnya sekitar 6,4 Gbps untuk seluruh server dan sekitar 6,4 Mbps per penerima. Jika jumlah pemain yang terlihat dibatasi 150, totalnya sekitar 1 Gbps dan sekitar 1 Mbps per pemain.
Di grafik
Naik mengikuti beban · Paket dan byte yang dikirim server, jumlah pemain di satu tempat
Yang diperiksa
Tampilkan txpck/s dan txkB/s (paket dan KB yang dikirim NIC server per detik) dari sar -n DEV 1 bersama grafik jumlah pemain. Untuk instance cloud, periksa counter batas terlampaui di ethtool -S (di AWS ENA: bw_out_allowance_exceeded dan pps_allowance_exceeded)
Cocok jika
Saat pemain yang berkumpul bertambah, paket dan byte kirim naik lebih tajam dari jumlah pemain (mendekati kuadrat), dan sejak menyentuh batas, counter batas terlampaui atau paket kirim yang dibuang bertambah
Tidak cocok jika
Volume kirim tidak berubah tetapi hanya waktu tick yang naik: lebih mungkin perhitungan jarak pandang atau logika game
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Kasus nyata
CCP Games 2014: Kelebihan beban server dalam pertempuran armada besar HED-GP di EVE Online

Sumber

  1. HED-GP Technical Retrospective: What a HED-ache CCP Games
    Pengiriman O(n²), yaitu aksi n pemain harus dilihat oleh n pemain, adalah faktor pembatas yang tidak terhindarkan dalam pertempuran armada besar
  2. Actor Priority in Unreal Engine Epic Games
    Jika bandwidth koneksi jenuh, setiap actor diberi prioritas (jarak, arah pandang, waktu sejak pengiriman terakhir) dan bandwidth dibagikan mulai dari yang paling penting
  3. Detailed Actor Replication Flow in Unreal Engine Epic Games
    Frekuensi update per actor ditetapkan dengan NetUpdateFrequency; actor dikirim menurut urutan prioritas, dan jika koneksi jenuh, sisanya ditunda ke tick berikutnya
  4. sar(1) — Linux manual page sysstat
    rxpck/s dan txpck/s (paket diterima dan dikirim per detik), rxkB/s dan txkB/s (KB diterima dan dikirim per detik) pada sar -n DEV
  5. Monitor network performance for ENA settings on your EC2 instance AWS
    Jumlah paket yang masuk antrean atau dibuang karena bw_out_allowance_exceeded (batas bandwidth kirim terlampaui) dan pps_allowance_exceeded (batas PPS terlampaui)

Lihat juga

Lapisan yang sama: L9 Proses game di server

Penyebab di lapisan lain dengan gejala yang sama (Input lag)

Lihat kartu interaktif dengan gambar dan simulasi