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

Buku Putih Lag Game › Desain sinkronisasi

Event diputar begitu tiba tanpa timestamp Events played on arrival (no timestamps)

ID penyebab sy-no-timestamp · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika event dari server diputar begitu diterima tanpa diberi waktu kejadian, jitter jaringan langsung membuat timing animasi tidak beraturan.

Mengapa Event “mulai serang” atau “putar efek” dijalankan begitu tiba → Akibatnya Waktu tiba setiap paket berbeda sehingga intervalnya tidak beraturan → Di layar Gerakan serangan beruntun kadang cepat kadang lambat, timing pola boss berbeda setiap kali

Gejala
Patah-patah, Fast forward
Faktor
Jitter
Siapa yang mengalami
Hanya saya
Kapan
Selalu
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: putar event sesuai waktu yang menyertainya (event terjadwal, buffer interpolasi). Server: sertakan waktu kejadian (waktu server) saat mengirim event.
Di grafik
Melonjak acak sesekali · Interval pemutaran event, interval kedatangan paket
Yang diperiksa
Cocokkan waktu kejadian event di log server dengan waktu tiba dan waktu putar di log klien berdasarkan nomor event, lalu bandingkan intervalnya. Di build development, coba reproduksi dengan menambahkan jitter (nilai jitter di tc netem, latensi minimum dan maksimum di emulasi jaringan Unreal)
Cocok jika
Interval kejadian di server tetap, tetapi interval pemutaran persis mengikuti interval kedatangan yang tidak beraturan
Tidak cocok jika
Interval kedatangan rata tetapi pemutaran tidak beraturan: masalah frame di klien (lonjakan frame time). Interval kejadian di server sudah goyah sejak awal: tick melewati budget
Sarana pemeriksaan
Log dan metrik server atau klien game

Sumber

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    Setiap update diberi waktu server, dan objek digambar di posisi pada waktu target, yaitu waktu sekarang dikurangi waktu interpolasi (100 ms)
  2. Snapshot Interpolation Gaffer On Games
    Jika snapshot yang diterima langsung digambar, gerakan tersendat karena jitter; jika dikumpulkan sebentar di buffer interpolasi lalu digambar, gerakan mulus
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    Contoh RPC yang membawa waktu pengiriman agar pihak penerima memutar efek sesuai waktu server
  4. tc-netem(8) — Linux manual page iproute2
    Tools pengujian yang meniru jaringan nyata dengan menambahkan latensi dan jitter (delay TIME JITTER) serta packet loss (loss random PERCENT) ke paket keluar
  5. Using Network Emulation in Unreal Engine Epic Games
    Pengujian dengan memasukkan latensi minimum dan maksimum serta rasio packet loss ke server dan klien; di konsol diatur seperti NetEmulation.PktLag

Lihat juga

Lapisan yang sama: Desain sinkronisasi

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

Lihat kartu interaktif dengan gambar dan simulasi