Nếu bạn chưa có, tôi khuyên bạn nên đọc hai bài viết sâu sắc nhưng dễ hiểu này: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking và http://fabiensanglard.net/quake3/network.php .
Những điều này giải thích tại sao nên sử dụng gửi gói 'khoảng thời gian cố định'. Nói ngắn gọn, trên thực tế, điều này chủ yếu quan trọng đối với các gói được gửi bởi máy chủ.
Gửi một gói có chi phí cố định và kích thước tối đa của gói mạng là khoảng 1,5 KB. Vì vậy, nếu bạn có 16 người chơi trên máy chủ của mình, mỗi khung hình khi bạn tính toán chuyển động cho một người chơi, mã ngây thơ có thể gửi một gói cập nhật cho mỗi người chơi sau mỗi độ phân giải chuyển động, vì vậy 16 * 16 = 256 gói. Nếu bạn có tốc độ khung hình là 30, thì đó là 7680 gói.
Một cách tiếp cận tốt hơn, là tạo một bộ đệm trong mỗi đầu khung, nối vào đó cập nhật 16 vị trí được tính toán của bạn và sau đó gửi chúng cho 16 người chơi của bạn.
Bây giờ bạn chỉ gửi 480 gói theo giây cho kết quả tương tự.
Trong trường hợp người chơi đến máy chủ, điều đó chỉ có nghĩa là bạn nên gửi, trong cùng một gói dữ liệu tối đa, như; nhìn vị trí, hành động được gọi là khung này và như vậy.
Về phần thứ hai của câu hỏi của bạn - cách tôi chọn để giảm cảm giác trễ là gửi thông tin này đến máy chủ trên mỗi khung:
vị trí hiện tại của người chơi (được máy chủ sử dụng để kiểm tra xem vị trí phía máy chủ và phía người chơi không bị đồng bộ hóa quá nhiều).
Vị trí người chơi ước tính trong 1 giây: được tính bởi khách hàng: nếu người chơi không thay đổi hướng chuột và để bàn phím ở trạng thái hiện tại trong 1 giây thì người chơi sẽ ở đâu? (chúng tôi không quan tâm đến va chạm) Nếu người chơi không di chuyển, thì vị trí ước tính của anh ta trong 1 giây là vị trí hiện tại.
Vị trí anh nhìn vào.
Mỗi lần máy chủ nhận được thông tin này, nó sẽ cập nhật vị trí trong tương lai và vị trí nhìn, và cuối cùng thực thể người chơi sẽ tiến tới vị trí tương lai.
Người chơi không bao giờ được đồng bộ hóa chính xác, nhưng phản hồi đầu vào là tức thời (quan trọng nhất đối với tôi) và tôi thấy các vị trí dự đoán là đủ chính xác đối với tôi.