Untuk menghemat bandwidth dalam permainan multi - pemain saya , saya tidak memperbarui setiap objek setiap server centang, sebaliknya setiap objek memiliki updateRate yang memberi tahu permainan bahwa objek ini diharapkan akan diperbarui setiap kutu server X.
Ketika saya menerima pesan pembaruan untuk objek saya menghitung waktu saya mengharapkan pembaruan berikutnya datang:
origin = serverCurrentPosition
diff = serverNextPosition - origin
arriveTime = now + timeBetweenTicks * updateRate
Ketika saya menggambar objek saya menghitung waktu yang tersisa sampai pembaruan berikutnya dan menginterpolasi posisi sesuai:
step = 100 / timeBetweenTicks * updateRate
delta = 1 - step * ((arriveTime - now) / 100)
position = origin + diff * delta
Ini bekerja ... tetapi masih ada sedikit kegugupan dalam gambar, meskipun dalam teori saya, semua hal akan berjalan dengan baik, karena penskalaan harus menangani beberapa kelambatan, bukan?
Jadi pertanyaannya di sini adalah, apakah ini pendekatan terbaik? Haruskah saya memasukkan kelambatan aktual ke dalam perhitungan? Jika demikian, bagaimana saya melakukannya? Saya melakukan beberapa pengalaman, tetapi kegugupan hanya bertambah buruk.