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

Buku Putih Lag Game › L1 Proses game di klien

Beban rendering kerumunan besar Render/animation cost of crowds

ID penyebab cg-crowd · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Saat ratusan karakter masuk ke satu layar seperti di siege atau world boss, biaya menggambarnya saja sudah tidak sanggup ditangani.

Mengapa Ratusan karakter dan efek bertumpuk di satu layar → Akibatnya Biaya animasi, bayangan, name tag, dan efek naik sebanding dengan jumlah karakter → Di layar FPS turun 60 → 15 sehingga semua gerakan patah-patah dan input juga terlambat

Gejala
Patah-patah, Input lag
Faktor
Stall
Siapa yang mengalami
Lokasi/channel tertentu, Hanya saya
Kapan
Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Sederhanakan model berdasarkan jarak (LOD), batasi jumlah karakter yang ditampilkan, sediakan opsi penyederhanaan efek, turunkan frekuensi update animasi.
Kisaran angka
Meskipun hanya 0,02–0,1 ms per karakter, 300 karakter berarti 6–30 ms. Frame budget pada 60 FPS adalah 16,7 ms, jadi itu saja sudah memakai lebih dari 1/3-nya, dan kalau banyak bisa melewatinya.
Di grafik
Naik mengikuti beban · Frame time, jumlah karakter di layar
Yang diperiksa
Bandingkan frame time serta CPUBusy dan GPUBusy di PresentMon sebelum dan sesudah siege atau world boss. Di development build, gunakan stat Unit di Unreal (waktu game thread, rendering thread, dan GPU)
Cocok jika
Frame time ikut naik seiring bertambahnya karakter di layar, dan langsung membaik jika batas jumlah karakter yang ditampilkan atau opsi penyederhanaan efek diaktifkan
Tidak cocok jika
Melonjak tanpa kaitan dengan jumlah karakter: lebih mungkin “Lonjakan frame time” atau “Garbage collection di klien”. FPS normal, tetapi hanya gerakan pemain lain yang tertinggal: lebih mungkin “Bottleneck pemrosesan paket di main thread”
Sarana pemeriksaan
Lingkungan pemain sendiri

Sumber

  1. Introduction to level of detail Unity
    Tanpa LOD, objek yang terlihat kecil di layar pun digambar dengan kompleksitas yang sama; LOD mengurangi beban menggambar
  2. Animation Budget Allocator in Unreal Engine Epic Games
    Mengurangi update (tick) animasi skeletal mesh secara dinamis untuk menjaga waktu animasi tetap dalam budget
  3. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Membedakan apakah CPU atau GPU yang memperlambat frame dengan FrameTime, CPUBusy, dan GPUBusy
  4. Stat Commands in Unreal Engine Epic Games
    stat Unit: frame time total serta waktu game thread, rendering thread, dan GPU

Lihat juga

Lapisan yang sama: L1 Proses game di klien

Penyebab di lapisan lain dengan gejala yang sama (Patah-patah)

Lihat kartu interaktif dengan gambar dan simulasi