Saya memiliki antarmuka tipe titik & klik pada klien, yang menjalankan A * di server, untuk pencarian jalur.
Gim ini dikendalikan seperti RTS, tetapi dunia ini gigih, sehingga pemain harus dapat bergabung / pergi kapan saja, dan hanya akan ada paling banyak 30 unit di layar.
Apa cara terbaik untuk menyinkronkan pergerakan pemain antara server dan klien, setelah saya menghitung jalurnya?
Apakah server perlu menyinkronkan klien pada setiap langkah / bingkai animasi? atau bisakah ia memberi tahu klien "pergi ke posisi X, Y" untuk setiap node di jalan, dan setiap pemain yang bergerak? Atau apakah yang terbaik untuk hanya menjalankan timer animasi pada klien dan server, dan apakah itu disinkronkan secara implisit seperti itu?
Seperti apa pertukaran data pada gerakan berbasis jalur?
EDIT:
Beberapa dari Anda telah menyarankan berbaris, karena saya mengatakan "RTS", tetapi gim ini bukan RTS, hanya memiliki antarmuka yang sama. Perbedaan besar adalah saya harus bisa membuat pemain bergabung dan meninggalkan permainan kapan saja . Maaf karena tidak lebih spesifik.
sumber
Setelah jalur dihitung, server hanya menggunakan jalur itu untuk mengontrol karakter. Kehadiran jalur tidak membuat perbedaan untuk masalah ini - Anda masih mengirim data yang sama, apakah itu pembaruan posisi biasa atau apa pun. Biasanya tidak apa-apa untuk mengirim posisi reguler (diinterpolasi pada klien untuk memperhalusnya) dan pesan terpisah ketika unit berhenti.
sumber
Dalam permainan saya (permainan jenis RPG multipemain) saya mengirim bagian dari jalur ke klien (untuk NPC terdekat), yaitu. 3 posisi berikutnya dan Waktu ketika NPC harus ada di sana. Untuk pemain saya hanya mengirim posisi valid terbaru + stempel waktu sehingga pada klien saya dapat melakukan perhitungan mati (atau sesuatu yang lebih rumit jika diinginkan).
Ini berfungsi sepenuhnya baik sebagian besar karena tidak ada tabrakan antara pemain / NPC (dengan lag rendah Anda tidak benar-benar melihat apa pun, dengan, katakanlah 250+ msec lag Anda melihat perbedaannya jika Anda dapat melihat dua layar (dari dua pemain) ) pada saat yang sama tetapi masih tidak benar-benar terlihat pada 'satu layar').
Jadi saya akan mengatakan: lanjutkan dengan penulisan server (posisi validasi + cap waktu pemain dan juga untuk AI di awal, Anda dapat membuat sistem yang lebih rumit untuk NPC nanti tanpa masalah besar) + prediksi klien.
ps. Saya menggunakan presisi milidetik yang berfungsi dengan sangat baik kecuali bahwa int yang ditandatangani hanya berlaku selama 3 minggu sebelum saya harus me-restart server.
Anda mungkin juga ingin memeriksa prediksi waktu (mis. Mencoba menyinkronkan sedekat mungkin dengan server).
sumber