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)
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
HED-GP Technical Retrospective: What a HED-acheCCP Games Pengiriman O(n²), yaitu aksi n pemain harus dilihat oleh n pemain, adalah faktor pembatas yang tidak terhindarkan dalam pertempuran armada besar
Actor Priority in Unreal EngineEpic Games Jika bandwidth koneksi jenuh, setiap actor diberi prioritas (jarak, arah pandang, waktu sejak pengiriman terakhir) dan bandwidth dibagikan mulai dari yang paling penting
Detailed Actor Replication Flow in Unreal EngineEpic Games Frekuensi update per actor ditetapkan dengan NetUpdateFrequency; actor dikirim menurut urutan prioritas, dan jika koneksi jenuh, sisanya ditunda ke tick berikutnya
sar(1) — Linux manual pagesysstat 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