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

Buku Putih Lag Game › L9 Proses game di server

Lonjakan perhitungan jarak pandang (AOI, N²) Area-of-interest explosion

ID penyebab sp-aoi · Penanggung jawab utama Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika siapa bisa melihat siapa dihitung dengan membandingkan semua pemain satu sama lain, saat jumlah pemain naik 10 kali, perhitungannya naik 100 kali.

Mengapa Jarak dibandingkan antara semua karakter, atau walaupun sudah dibagi dengan grid, ratusan pemain berkumpul di dekat satu sel → Akibatnya 100 pemain berarti sekitar 10.000 perbandingan, 1.000 pemain sekitar 1 juta perbandingan → Di layar Di tempat ramai seperti world boss atau siege, waktu tick melonjak sehingga terjadi slow motion atau patah-patah

Gejala
Slow motion, Patah-patah
Faktor
Stall
Siapa yang mengalami
Lokasi/channel tertentu, Seluruh server
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Bagi dengan grid atau zona dan bandingkan hanya objek di sekitar, perbarui objek yang jauh lebih jarang, batasi jumlah pemain yang bisa dilihat satu pemain.
Kisaran angka
Jika perbandingan jarak dan pembaruan daftar terlihat/tidak terlihat dihitung 0,1 µs (sepersepuluh juta detik) per pasangan, 1.000 pemain (sekitar 1 juta pasangan) butuh 100 ms per tick. Itu dua kali budget server 20 tick (50 ms).
Di grafik
Naik mengikuti beban · Waktu tick server, jumlah pemain di satu tempat
Yang diperiksa
Tampilkan jumlah pemain per zona dan channel dalam satu grafik dengan waktu tick, beserta waktu yang dipakai untuk perhitungan jarak pandang di dalam tick yang diukur terpisah. Jika tidak ada pengukuran terpisah, periksa porsi CPU per fungsi proses game dengan perf top -p
Cocok jika
Saat jumlah pemain di satu tempat naik 2 kali, waktu tick naik hampir 4 kali, dan fungsi perhitungan jarak pandang dan jarak memakan sebagian besar waktu CPU
Tidak cocok jika
Waktu tick naik sebanding dengan jumlah pemain, atau porsi fungsi pengiriman dan serialisasi besar: lebih mungkin lonjakan broadcast atau biaya serialisasi dan kompresi
Sarana pemeriksaan
Log dan metrik server atau klien game

Sumber

  1. Comparing Interest Management Algorithms for Massively Multiplayer Games ACM
    Paper NetGames 2006 (versi yang dipublikasikan penulis). Cara mengukur jarak semua pasangan tidak sanggup menampung pemain yang bertambah; jika dibagi dengan grid persegi, cukup periksa 9 sel di sekitarnya
  2. Replication Graph in Unreal Engine Epic Games
    Cara dasar yang memeriksa semua koneksi untuk setiap actor menjadi bottleneck CPU server jika pemain dan actor banyak; MMORPG dan sejenisnya membagi dunia dengan grid dan memakai ulang daftar per sel
  3. perf-top(1) — Linux manual page perf
    Menampilkan porsi pemakaian CPU per fungsi (simbol) secara real-time untuk proses (-p) atau thread (-t) yang sedang berjalan

Lihat juga

Lapisan yang sama: L9 Proses game di server

Penyebab di lapisan lain dengan gejala yang sama (Slow motion)

Lihat kartu interaktif dengan gambar dan simulasi