Nếu server đặt giới hạn lượng gửi cho từng kết nối và gửi những thứ ở gần trước, bên có giới hạn thấp sẽ nhận NPC ở xa muộn hoặc không nhận được.
Vì sao Ở nơi đông người, server gửi theo thứ tự quan trọng trong giới hạn lượng gửi của từng kết nối → Dẫn đến Với kết nối có băng thông ước tính thấp (ví dụ bên ở cửa sổ chạy nền nên gửi xác nhận đã nhận muộn), các đối tượng xếp sau cứ bị hoãn mãi → Trên màn hình NPC ở xa chỉ hiển thị muộn hoặc không hiển thị ở một bên
Chỉ một client trên cùng PC, Một địa điểm hoặc kênh
Khi nào
Khi đông người
Phụ trách
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Server: tăng dần mức ưu tiên của đối tượng bị hoãn theo thời gian (chống starvation), bảo đảm chu kỳ cập nhật tối thiểu. Client: gửi xác nhận đã nhận đúng lúc cả khi chạy nền để băng thông ước tính không bị hạ thấp.
Trên đồ thị
Tăng theo số người và tải · Số đối tượng bị hoãn theo kết nối, lượng gửi theo kết nối
Chỗ cần xem
Ghi trên server cho mỗi kết nối: số byte gửi mỗi tick, giới hạn gửi (băng thông ước tính), số đối tượng không gửi được phải hoãn, thời gian trôi qua kể từ lần gửi cuối của từng đối tượng. Với Unreal, Networking Insights cho xem kích thước gói theo kết nối và các đối tượng replicate chứa trong đó
Đúng nếu
NPC không hiển thị là đối tượng bị hoãn lâu trên kết nối đó, giới hạn của kết nối này thấp hơn các kết nối khác, và càng đông người thì số đối tượng bị hoãn càng tăng
Loại trừ nếu
không có đối tượng bị hoãn và NPC đó cũng đã được gửi đúng lúc → xem các bước sau khi gửi (bộ đệm nhận, loading, tùy chọn hiển thị). Mọi kết nối đều bám sát giới hạn → vấn đề thiết kế lượng gửi và tầm nhìn của toàn server
Cách kiểm tra
Cần log và chỉ số của server, client game
Nguồn
Actor Priority in Unreal EngineEpic Games Khi băng thông bão hòa, chọn actor để replicate theo mức ưu tiên (khoảng cách, hướng nhìn, thời gian trôi qua từ lần replicate cuối). Không phải actor nào cũng được replicate mỗi lần
State SynchronizationGaffer On Games Mức ưu tiên tích lũy: đối tượng không vừa gói lần này sẽ được đưa vào gói sau trước tiên, giới hạn băng thông được điều chỉnh theo thời gian thực
Networking Insights in Unreal EngineEpic Games Hiển thị kích thước gói gửi và nhận theo từng kết nối, cùng các đối tượng và thuộc tính replicate chứa trong đó