Klien Anda menampilkan gerakan lebih dulu, tetapi jika server menghitungnya berbeda, karakter Anda tertarik kembali.
Mengapa Klien bergerak lebih dulu sebelum konfirmasi server (prediksi) → Akibatnya Server menghitung collision, kecepatan gerak, atau buff secara berbeda, atau tidak menerima perintahnya → Di layar Saat konfirmasi datang, karakter Anda tertarik ke belakang
Saat bergerak atau pindah area, Sesekali secara acak
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: pakai kode gerakan yang sama dengan server, kirim input secara duplikat, haluskan koreksi. Server: pakai kode gerakan yang sama dengan klien, saring input duplikat berdasarkan nomor input agar hanya diproses sekali.
Kisaran angka
Jarak karakter tertarik adalah “lama ketidakcocokan × kecepatan gerak”. Hilangnya beberapa perintah saja sudah membuat karakter tertarik 1–3 m.
Di grafik
Melonjak acak sesekali · Jumlah rekonsiliasi server (prediksi gagal)
Yang diperiksa
Catat jumlah dan jarak koreksi posisi yang dikirim server. Di Unreal, hitung koreksi ClientAdjustPosition dari server; di Unity Netcode for Entities, hitung berapa kali simulasi diputar mundur dan dihitung ulang karena prediksi gagal
Cocok jika
Koreksi menumpuk pada waktu laporan rubber banding, dan jarak koreksi berulang kali besar pada buff, medan, atau skill gerak tertentu
Tidak cocok jika
Koreksi hanya menumpuk saat packet loss tinggi: mengarah ke paket input yang hilang (koneksi). Tidak ada koreksi, tetapi hanya karakter lain yang terlihat tertarik: lebih mungkin “Ekstrapolasi berlebihan (dead reckoning)”
Sarana pemeriksaan
Log dan metrik server atau klien game
Sumber
Introduction to prediction (Netcode for Entities 6.5)Unity Klien dan server memprediksi dengan kode simulasi yang sama; jika berbeda dari state server (prediksi gagal), simulasi diputar mundur dan dihitung ulang, dan koreksinya terlihat