Mã mạng: Mục tiêu mất gói và độ trễ gói tối đa dự kiến ​​và tối đa của bạn là gì?


7

Khi thực hiện mã mạng cho một trò chơi video, loại mục tiêu độ trễ và tỷ lệ mất gói nào bạn thiết kế xung quanh?

Để cụ thể hơn, hiện tại tôi chỉ có mã mạng làm việc với mạng cục bộ. Tôi dự định sử dụng WANEM để mô phỏng mất gói và độ trễ nhưng tôi không chắc mình nên sử dụng gì cho các giá trị tối đa và trung bình.


1
Tôi hy vọng ai đó có nhiều kinh nghiệm kết nối mạng hơn tôi, nhưng một điều cần chú ý là địa lý dự kiến ​​của cơ sở người chơi của bạn. Yêu cầu về độ trễ cho trò chơi bên LAN khác với yêu cầu dành cho 8-16 người chơi ngẫu nhiên qua Internet, khác với MMO toàn cầu của bạn được lưu trữ tại Boston, nơi có kết nối từ Đài Loan.

Tôi đề nghị dùng thử với hai hoặc nhiều kết nối internet thực sự thay vì sử dụng mô phỏng với các tham số đoán.
Hendrik Brummermann

@ Joe Wreschnig Chỉ là tôi bị lừa trong tầng hầm của tôi không có cơ sở người chơi mong đợi. Tôi chỉ tự hỏi mục tiêu thực tế là gì để nhắm đến.
ném đá

Câu trả lời:


5

Mất gói là khó đoán, nhưng độ trễ internet có lẽ bạn nên lập kế hoạch lên tới ~ 750ms, mặc dù đại đa số sẽ dưới 500ms. Các ngoại lệ lớn nhất là Úc <-> ping của Mỹ và internet vệ tinh. Tùy thuộc vào thị trường mục tiêu của bạn có thể bạn có thể bỏ qua những. Nếu bạn đang làm công cụ cho thiết bị di động, nó thậm chí còn khó đoán hơn. Như một dự đoán ngẫu nhiên cho gói ít hơn, tôi sẽ nói rằng hãy lập kế hoạch cho một nơi nào đó nhiều nhất là khoảng 1-5%, nói chung chúng ta thấy ít hơn thế (~ 0,1% vào thời điểm tồi tệ nhất) và thường chỉ có ở Anh <-> Liên kết Hoa Kỳ vào giờ cao điểm (đó là đỉnh cao của Vương quốc Anh). Bản thân việc mất gói không phải là vấn đề, nhưng ném độ trễ xuyên Đại Tây Dương vào hỗn hợp với truyền lại TCP và bạn nhận được một kết nối rất khó chịu và có thể gặp khó khăn khi quản lý bộ đệm mạng (điều này là để truyền tệp,


1
Tôi không phải là chuyên gia, nhưng tôi thường kiểm tra với tốc độ gói dữ liệu tồi tệ hơn thế nhiều; Tối thiểu 10-20%. Một lần, tôi vô tình để lại packloss nhân tạo và giới thiệu một trò chơi với 90% packloss (nó hoạt động hoàn hảo);)
Martin

Chúng tôi đã thấy các trường hợp hiếm gặp cao tới 50%, nhưng không có gì đáng để thử nghiệm. Tôi nghĩ điều tốt nhất (tệ nhất?) Tôi có thể nhớ là một anh chàng sử dụng wifi từ một số tòa nhà trên một căn cứ quân sự trong khu rừng ở Trinidad (lúc đó đã đi qua vệ tinh để quay lại). Độ trễ ~ 1000ms và mất gói 50%. Trong cửa sổ nói chung thường ngăn TCP gửi quá nhiều một khi liên kết bị tắc nghẽn, do đó bạn chỉ thấy một vết sưng trễ. UDP là một câu chuyện khác, nhưng có lẽ bạn không nên sử dụng UDP cho các trò chơi hiện nay.
coderanger

2
Tôi luôn sử dụng UDP cho các trò chơi, nhưng điều đó phụ thuộc rất nhiều vào loại trò chơi bạn đang làm!
Martin

Không, nó thực sự không. UDP không có chỗ trong chơi game những ngày này. Mọi người dường như nghĩ rằng TCP có chi phí điên rồ khi nó thực sự không miễn là bạn đặt NODELAY.
coderanger

1
@coderanger Đó là về độ trễ. Đôi khi, nếu một gói bị mất, bạn không muốn đợi toàn bộ thời gian ping để gửi lại! Đôi khi bạn chỉ muốn quên đi gói bị mất và gửi gói tiếp theo nào. Hãy nhớ rằng, độ trễ 100ms là đáng chú ý trên một game bắn súng có nhịp độ nhanh và độ tin cậy của TCP có thể gây ra đột biến lên đến một giây.
dùng253751
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.