Gửi chuyển động của một người cho tất cả những ai nhìn thấy người đó thì số bản cập nhật phải gửi tăng theo bình phương số người tụ tập.
Vì sao Thay đổi của một người được gửi cho mọi người nhìn thấy người đó → Dẫn đến 1.000 người cùng nhìn thấy nhau thì mỗi tick có 1 triệu bản cập nhật → Trên màn hình Hàng đợi gửi và băng thông bão hòa, gây trễ và mất gói (trễ thao tác, tua nhanh, dịch chuyển tức thời)
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Hạ tầng server (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Giảm tần suất cập nhật theo khoảng cách và mức độ quan trọng (kẻ địch ở gần thì mỗi tick, người ở xa thì vài lần trong 1 giây), đặt giới hạn lượng gửi cho mỗi người và lấp bằng thứ quan trọng trước, gộp nhiều bản cập nhật vào một gói, giới hạn số người hiển thị.
Việc cần làm (Đội hạ tầng)
So sánh băng thông gửi và số gói mỗi giây của từng server với giới hạn mạng của NIC và instance để cảnh báo, kiểm tra khoảng dư trước các sự kiện lớn.
Con số tham khảo
1.000 người × 1.000 người × 20 tick = 20 triệu bản cập nhật mỗi giây. Nếu mỗi bản 40 byte thì cả server khoảng 6,4 Gbps, mỗi người nhận khoảng 6,4 Mbps. Giới hạn số người hiển thị ở 150 thì cả server còn khoảng 1 Gbps, mỗi người khoảng 1 Mbps.
Trên đồ thị
Tăng theo số người và tải · Số gói và số byte server gửi, số người tụ tập ở một chỗ
Chỗ cần xem
txpck/s và txkB/s (số gói và số KB mà NIC của server gửi mỗi giây) trong sar -n DEV 1, xem cùng đồ thị số người. Với instance trên cloud, xem bộ đếm vượt giới hạn trong ethtool -S (bw_out_allowance_exceeded và pps_allowance_exceeded trên AWS ENA)
Đúng nếu
khi số người tụ tập tăng, số gói và byte gửi tăng dốc hơn số người (gần theo bình phương), và từ lúc chạm giới hạn, bộ đếm vượt giới hạn hoặc số gói gửi bị bỏ tăng lên
Loại trừ nếu
lượng gửi không đổi mà chỉ thời gian tick tăng → tính toán tầm nhìn hoặc logic game
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
HED-GP Technical Retrospective: What a HED-acheCCP Games Việc gửi O(n²), khi hành động của n người phải được n người nhìn thấy, là yếu tố giới hạn không thể tránh trong các trận hạm đội quy mô lớn
Actor Priority in Unreal EngineEpic Games Khi băng thông của kết nối bão hòa, mỗi actor được xếp mức ưu tiên (khoảng cách, tầm nhìn, thời gian từ lần gửi cuối) và băng thông được chia cho thứ quan trọng trước
Detailed Actor Replication Flow in Unreal EngineEpic Games NetUpdateFrequency đặt tần suất cập nhật cho từng actor; actor được gửi theo thứ tự ưu tiên, khi kết nối bão hòa thì phần còn lại dời sang tick sau
sar(1) — Linux manual pagesysstat rxpck/s và txpck/s (số gói nhận và gửi mỗi giây), rxkB/s và txkB/s (số KB nhận và gửi mỗi giây) trong sar -n DEV