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

Buku Putih Lag Game › L1 Proses game di klien

Catch-up fixed timestep yang lepas kendali Fixed-timestep catch-up / spiral of death

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

Buka kartu interaktif dengan gambar dan simulasi →

Setelah sekali berhenti, game menghitung kerja yang tertunda sekaligus, dan perhitungan itu membuatnya tertinggal lagi.

Mengapa Simulasi game berjalan dengan interval tetap, lalu sekali berhenti → Akibatnya Step yang tertunda dihitung sekaligus dalam satu frame → Di layar Frame panjang terjadi beruntun dan melonjak, atau terbentur batas sehingga dunia game melambat

Gejala
Patah-patah, Fast forward, Slow motion
Faktor
Stall
Siapa yang mengalami
Hanya saya
Kapan
Sesekali secara acak, Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Batasi catch-up per frame, tangani sisa waktu dengan interpolasi.
Di grafik
Melonjak acak sesekali · Frame time, jumlah fixed step per frame
Yang diperiksa
Di profiler development build, periksa berapa kali fixed step berjalan dalam satu frame (di Unity, jumlah marker tahap FixedUpdate seperti FixedBehaviourUpdate) bersama frame time
Cocok jika
Setelah satu frame panjang, menyusul beruntun frame panjang yang menjalankan banyak step, dan saat menyentuh batas (Maximum Allowed Timestep di Unity) waktu game berjalan lebih lambat dari waktu nyata
Tidak cocok jika
Frame panjang hanya terjadi sekali: lebih mungkin “Lonjakan frame time” atau “Garbage collection di klien”
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Perhitungan fisika Unity (FixedUpdate) adalah contoh khas fixed step (default 0,02 detik, 50 kali per detik). Maximum Allowed Timestep di pengaturan Time (waktu maksimum yang dikejar dalam satu frame, default sekitar 0,33 detik) adalah batas catch-up. Jika satu frame lebih panjang dari itu, kelebihan waktunya dibuang, sehingga jam game tertinggal dari waktu nyata sebanyak itu.

Sumber

  1. Set fixed timestep to optimize physics simulation frequency Unity
    Default Fixed Timestep 0,02 detik (50 kali per detik); jika frame panjang, step fisika dijalankan beberapa kali dalam satu frame sehingga beban bertambah
  2. Handling variation in time Unity
    Default Maximum Allowed Timestep 1/3 detik (0.3333333); walaupun game berhenti 1 detik, waktu game hanya maju 0,333 detik; batas ini mencegah lingkaran setan ketika step catch-up memperlambat game lagi
  3. Profiler markers reference Unity
    FixedBehaviourUpdate: bagian eksekusi MonoBehaviour.FixedUpdate; marker fisika dipanggil di tahap FixedUpdate

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