Đây là một câu hỏi tôi thấy rất nhiều. Hầu hết mọi người nói rằng UDP luôn tốt hơn cho các trò chơi thời gian thực so với TCP. Tôi hiểu rằng TCP cố gắng gửi lại các gói nhiều lần cho đến khi phía bên kia nhận được chúng trong khi UDP không quan tâm.
Hầu hết những điều tôi đã đọc là UDP là điều bắt buộc đối với bất kỳ trò chơi thời gian thực nào và TCP rất tệ. Nhưng vấn đề là, hầu hết mọi người dường như thực hiện một số hình thức TCP trên đầu trang của UDP. Và tôi cũng đã nghe nói rằng sự khác biệt giữa hai loại này là không đáng kể do chúng ta không còn ở thập niên 80 nữa và internet bây giờ khá nhanh và đáng tin cậy.
Là hiểu biết chung của tôi ở đây sai? Ai đó có thể làm rõ điều này cho tôi?
t0
không bao giờ nhận được, thì bạn gửi trạng thái thế giới mới tại thời điểm đó t1
, bạn không phải đợi cho đến khi khách hàng thực sự nhận được gói đầu tiên, vốn đã lỗi thời
internet is now pretty fast and reliable
Không, không phải vậy. Các băng thông đã tăng lên đáng kể, vâng, nhưng độ trễ vẫn còn khá cao. Với TCP thuần túy, bạn cần thời gian đánh dấu của máy chủ nhiều hơn độ trễ tối đa phải chăng, trừ khi bạn thực hiện squishing gói - được thực hiện tốt nhất tại máy khách thông qua UDP. Vấn đề là một số thông tin trong một trò chơi cần phải đáng tin cậy, trong khi một số thông tin khác cần phải nhanh chóng. Các giao thức tùy chỉnh trên UDP cho phép điều đó, cũng như một loạt các giao thức độc quyền cung cấp cho bạn mọi thứ bạn cần trong một gói đẹp.