Nếu so sánh mọi người với nhau để xem ai thấy được ai, số người tăng 10 lần thì khối lượng tính toán tăng 100 lần.
Vì sao So khoảng cách giữa mọi nhân vật với nhau, hoặc dù đã chia lưới (grid) vẫn có hàng trăm người dồn quanh một ô → Dẫn đến 100 người thì khoảng 10.000 lần so sánh, 1.000 người thì khoảng 1 triệu lần → Trên màn hình Ở nơi đông người như world boss hay công thành chiến, tick tăng vọt, gây quay chậm và giật khựng
Phụ trách chính Phát triển server (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Chia thành lưới hoặc vùng để chỉ so với đối tượng ở gần, cập nhật thưa hơn cho đối tượng ở xa, giới hạn số người mà một người nhìn thấy.
Con số tham khảo
Nếu cả việc so khoảng cách lẫn cập nhật danh sách thấy/không thấy mất 0,1 µs (một phần mười triệu giây) cho mỗi cặp hai người, thì 1.000 người (khoảng 1 triệu cặp) tốn 100 ms mỗi tick. Gấp đôi budget của 20 tick (50 ms).
Trên đồ thị
Tăng theo số người và tải · Thời gian tick của server, số người tụ tập ở một chỗ
Chỗ cần xem
Số người và thời gian tick theo từng zone và kênh trên cùng đồ thị, cùng với thời gian tính toán tầm nhìn trong tick được đo riêng. Nếu không đo riêng, xem tỷ trọng CPU theo từng hàm của tiến trình game bằng perf top -p
Đúng nếu
số người tụ tập ở một chỗ tăng gấp đôi thì thời gian tick tăng gần 4 lần, và các hàm tính tầm nhìn, khoảng cách chiếm phần lớn thời gian CPU
Loại trừ nếu
thời gian tick tăng tỷ lệ thuận với số người, hoặc các hàm gửi và serialize chiếm tỷ trọng lớn → broadcast bùng nổ hoặc chi phí serialize và nén
Replication Graph in Unreal EngineEpic Games Cách mặc định xét mọi kết nối cho từng actor trở thành điểm nghẽn CPU của server khi có nhiều người chơi và actor; MMORPG và các game tương tự chia thế giới thành lưới và dùng lại danh sách theo từng ô
perf-top(1) — Linux manual pageperf Hiển thị theo thời gian thực tỷ trọng CPU theo từng hàm (symbol) của tiến trình (-p) hoặc thread (-t) đang chạy