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

Buku Putih Lag Game › Desain sinkronisasi

Feedback baru tampil setelah server merespons (model request-response) Request-response (no client-side feedback)

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

Buka kartu interaktif dengan gambar dan simulasi →

Saat tombol ditekan, tidak ada animasi maupun suara sampai jawaban server datang. Ping langsung menjadi kecepatan respons.

Mengapa Skill, gerakan, dan pengambilan item baru diputar setelah konfirmasi server datang → Akibatnya Sejak tombol ditekan, tidak ada respons apa pun selama waktu pulang-pergi + waktu tunggu tick → Di layar Dengan ping 150 ms, setiap aksi terasa lamban 0,2 detik

Gejala
Input lag
Faktor
Latensi
Siapa yang mengalami
Hanya saya
Kapan
Selalu, Saat melakukan aksi tertentu
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: mulai animasi, suara, dan efek begitu tombol ditekan (feedback sisi klien), tampilkan hanya hasilnya (damage, hadiah) setelah server mengonfirmasi, terapkan gerakan dan serangan dasar langsung dengan prediksi, dan saat menerima koreksi posisi dari server, terapkan ulang input yang belum dikonfirmasi mulai dari posisi itu. Server: hitung sendiri gerakan dari input yang diterima, kirim nilai koreksi hanya jika selisihnya dengan posisi prediksi klien melewati batas.
Kisaran angka
Waktu respons ≈ ping + setengah interval tick + satu frame. Pada server 20 tick dengan ping 150 ms, sekitar 190 ms.
Di grafik
Selalu tinggi sejak awal · Waktu dari input sampai animasi dimulai, RTT (ping)
Yang diperiksa
Catat waktu tombol ditekan, waktu animasi atau suara pertama dimulai, dan waktu respons server tiba di log klien pada build development, lalu bandingkan berdampingan dengan RTT di dalam game. Ukur sambil mengubah ping dengan menambahkan latensi lewat emulasi jaringan engine (Unreal NetEmulation.PktLag) atau tc netem Linux di server uji
Cocok jika
Animasi selalu dimulai tepat saat respons server tiba, waktu dari input sampai animasi sebesar RTT + waktu tunggu tick, dan bertambah persis sebesar latensi yang ditambahkan
Tidak cocok jika
Animasi dimulai begitu tombol ditekan dan hanya hasil seperti angka damage yang terlambat: desainnya normal. Tetap terlambat lebih dari satu interval tick walaupun ping rendah: lebih mungkin menunggu tick dua kali atau masalah frame di klien
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Untuk game yang tidak butuh respons cepat, seperti game turn-based, kartu, atau idle, cara ini paling sederhana dan aman. Masalah muncul saat game dengan kontrol real-time juga membuat gerakan atau serangan dasar dengan cara ini.

Sumber

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    Klien yang hanya menunggu hasil dari server baru menampilkan setiap aksi 500 ms kemudian jika latensinya 500 ms. Diatasi dengan prediksi sisi klien dan rekonsiliasi server
  2. Using Gameplay Abilities in Unreal Engine Epic Games
    Local Predicted langsung dijalankan begitu tombol ditekan dan keputusan akhirnya di server, sedangkan Server Initiated tidak punya prediksi sehingga latensi terlihat oleh pemakainya
  3. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    Klien memprediksi dan menyimpan gerakan, server hanya mengoreksi jika selisihnya melewati batas toleransi (MAXPOSITIONERRORSQUARED), dan setelah koreksi gerakan yang disimpan diterapkan ulang
  4. 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
  5. 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

Lihat juga

Lapisan yang sama: Desain sinkronisasi

Penyebab di lapisan lain dengan gejala yang sama (Input lag)

Lihat kartu interaktif dengan gambar dan simulasi