Tôi đã đọc bài viết của Valve về kết nối nhiều người chơi , được chuyển thể từ bài báo năm 2001 của Yahn Bernier có tên Phương thức bù trừ trễ trong Thiết kế và tối ưu hóa giao thức trong trò chơi / máy chủ . Tôi đang tạo một trò chơi nhiều người chơi thời gian thực bằng máy chủ node.js được kết nối với máy khách thông qua socket.io và tôi có một vài câu hỏi liên quan đến các nguyên tắc chi tiết bên dưới:
Nội suy thực thể
[Nội suy] ngăn chặn chuyển động lộn xộn, điều này thường sẽ dẫn đến bằng cách đệm các bản cập nhật máy chủ sau đó phát lại chúng với các khoảng trống được nội suy trơn tru giữa. Nó cũng có thể bảo vệ chống lại sự cố do mất gói.
Dự đoán phía khách hàng
Dự đoán là khái niệm của khách hàng dự đoán ảnh hưởng của các hành động của người chơi cục bộ mà không cần chờ máy chủ xác nhận chúng. Trạng thái dự đoán của một thực thể được kiểm tra đối với các lệnh máy chủ khi chúng đến cho đến khi phát hiện khớp hoặc khớp sai.
Bồi thường
Lag bù là khái niệm máy chủ sử dụng độ trễ của người chơi để tua lại thời gian khi xử lý [đầu vào của người dùng], để xem người chơi đã thấy gì khi lệnh được gửi. Kết hợp với dự đoán, bù độ trễ có thể giúp chống lại độ trễ của mạng đến mức gần như loại bỏ nó khỏi tầm nhìn của kẻ tấn công.
Các nguyên tắc có áp dụng cho TCP như chúng làm với UDP không và có bất kỳ sự khác biệt nào trong việc triển khai không? Tôi có thể thấy rằng phép nội suy thực thể sẽ không cần phải bảo vệ chống mất gói nhưng đó là về nó.
Tôi thậm chí có thể giao tiếp giữa máy chủ và trình duyệt web và ngược lại bằng UDP và Node.js không?
Vì bài báo đã hơn một thập kỷ, những nguyên tắc này vẫn còn được sử dụng hay công nghệ khác đã xuất hiện?
Bất kì sự trợ giúp nào đều được đánh giá cao.