Nếu giờ server mà client ước tính bị sai, client sẽ giữ lại thông tin đối tượng vừa tới vì cho là “vẫn còn ở tương lai”, hoặc bỏ đi vì cho là “quá cũ”.
Vì sao Giờ server mà một client ước tính bị lệch nhiều (đo trong lúc loading, vừa thoát chế độ tiết kiệm điện) → Dẫn đến Thời điểm mốc của nội suy và thời điểm trong thông tin đối tượng không khớp → Trên màn hình Đối tượng xuất hiện muộn hoặc hiện ở trạng thái đứng yên
Sau khi để yên một lúc, Ngay sau đăng nhập hoặc bảo trì
Phụ trách
Phụ trách chính Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Đồng bộ thời gian lại định kỳ, nếu lệch nhiều thì đặt lại ngay, không dùng giá trị đo trong lúc loading hoặc ngay sau khi thoát chế độ tiết kiệm điện.
Trên đồ thị
Chỉ một phần cao · Sai số ước tính giờ server theo client
Chỗ cần xem
Ghi ở client giờ server ước tính, RTT, thời điểm đồng bộ thời gian lại, số lần giữ lại hoặc bỏ thông tin đối tượng. Tái hiện ngay sau loading hoặc ngay sau khi thoát chế độ tiết kiệm điện
Đúng nếu
chỉ client gặp sự cố có sai số ước tính vượt ngưỡng đặt lại (Unity là hardResetThresholdSec, mặc định 0,2 giây), có bản ghi giữ lại thông tin đối tượng vì cho là ở tương lai hoặc bỏ đi vì cho là quá khứ, và đồng bộ thời gian lại thì bình thường ngay
Loại trừ nếu
sai số ước tính nhỏ mà vẫn xuất hiện muộn → xem ngân sách gửi và mức ưu tiên theo kết nối hoặc nguyên nhân phía loading
Cách kiểm tra
Cần log và chỉ số của server, client game
Nguồn
NetworkTimeSystem class (Netcode for GameObjects 2.5)Unity Chênh lệch thời gian vượt hardResetThresholdSec (mặc định 0,2 giây) thì ép khớp ngay, bình thường thì dùng adjustmentRatio để chỉnh nhanh hoặc chậm từng chút