Input lawan diprediksi dan ditampilkan lebih dulu; jika prediksinya salah, game diputar mundur lalu dihitung ulang. Makin tinggi ping, makin lebar rentang rewind.
Mengapa Lawan mengubah input (berbeda dari prediksi) → Akibatnya Input sebenarnya tiba terlambat sebesar setengah ping, jadi game diputar mundur sebesar itu lalu dihitung ulang → Di layar Gerakan lawan melompati beberapa frame atau tiba-tiba berubah
Dengan ping 100 ms (satu arah 50 ms), pada 60 fps sekitar 3 frame diputar mundur. Jika input delay 2 frame diterapkan, berkurang menjadi 1 frame.
Di grafik
Melonjak acak sesekali · Jumlah frame yang diputar mundur, RTT (ping)
Yang diperiksa
Catat di klien setiap rewind: jumlah frame yang diputar mundur, RTT saat itu, pengaturan input delay, dan waktu yang dipakai untuk rewind dan menghitung ulang
Cocok jika
Pada saat gerakan lawan dilaporkan melompat, jumlah frame yang diputar mundur besar, rata-rata rentang rewind kira-kira (latensi satu arah − input delay) ÷ waktu per frame, dan makin tinggi ping makin besar
Tidak cocok jika
Rentang rewind kecil tetapi tetap terjadi patah-patah: masalah performa, yaitu perhitungan ulang melebihi waktu satu frame. Hasil di dua layar tetap berbeda setelah rewind: hasil komputasi menyimpang (desync)
Sarana pemeriksaan
Log dan metrik server atau klien game
Sumber
GGPO Rollback Networking SDKGGPO Input lawan diprediksi dan game berjalan lebih dulu; jika input sebenarnya berbeda, game dihitung ulang dari titik penyimpangan sampai sekarang