한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Sách trắng lag game › Thiết kế đồng bộ

Không có buffer input cho skill No input/spell queue

ID nguyên nhân sy-no-queue · Phụ trách chính Phát triển client (Đội phát triển game) · Phối hợp Phát triển server (Đội phát triển game)

Mở thẻ gốc có hình minh họa và thí nghiệm →

Nếu phải nhận xác nhận từ server rằng skill trước đã xong mới bấm được skill tiếp theo, mỗi nhịp combo sẽ bị chen thêm một khoảng thời gian khứ hồi.

Vì sao Chỉ nhận input skill tiếp theo “sau khi skill trước được xác nhận” → Dẫn đến Giữa các skill luôn có một khoảng trống bằng ping → Trên màn hình Giữa các đòn combo có khoảng hở, ping càng cao thì DPS càng giảm

Triệu chứng
Trễ thao tác, Nuốt thao tác·rollback
Yếu tố
Độ trễ
Ai gặp phải
Chỉ mình tôi, Chỉ một tính năng
Khi nào
Khi làm một thao tác nhất định
Phụ trách
Phụ trách chính Phát triển client (Đội phát triển game) · Phối hợp Phát triển server (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Client: thời gian nhận buffer input, tức là nhận cả input trong một khoảng nhất định trước khi hồi chiêu kết thúc (ví dụ 0,3–0,4 giây) và gửi ngay lên server. Server: giữ lại input đến sớm một chút và thực thi đúng lúc hồi chiêu kết thúc, thay vì từ chối.
Con số tham khảo
Với combo có hồi chiêu 1 giây, ping 150 ms làm giữa mỗi skill trống từ 0,15 giây trở lên, số skill dùng được trong cùng khoảng thời gian giảm hơn 13%.
Trên đồ thị
Luôn cao ngay từ đầu · Khoảng trống giữa các skill, RTT (ping)
Chỗ cần xem
Ghi vào log server theo từng nhân vật thời điểm hồi chiêu kết thúc, thời điểm yêu cầu skill tiếp theo tới, thời điểm thực thi, rồi so sánh khoảng trống ở giữa với RTT của người chơi
Đúng nếu
từ lúc hồi chiêu kết thúc đến khi skill tiếp theo được thực thi luôn trống khoảng bằng RTT, người chơi ping càng cao thì khoảng trống càng dài và số skill dùng được trong cùng khoảng thời gian càng ít
Loại trừ nếu
khoảng trống không đổi bất kể ping → thiết kế hồi chiêu chung (global cooldown) hoặc độ dài animation. Khoảng trống chỉ thỉnh thoảng vọt lên → xem jitter, mất gói hoặc vượt tick budget
Cách kiểm tra
Cần log và chỉ số của server, client game
Tìm hiểu thêm
Ví dụ, World of Warcraft có thời gian nhận buffer input và cho người chơi chỉnh trong phần cài đặt. Nếu thời gian này dài hơn thời gian khứ hồi thì giữa các đòn combo gần như không bị ping chen vào.

Nguồn

  1. Latency and Player Actions in Online Games (Communications of the ACM, 2006) ACM
    Trong EverQuest 2, độ trễ càng lớn thì sát thương nhân vật gây ra càng giảm, trận đánh càng kéo dài (0→500 ms: trận đánh khoảng 2 phút dài thêm 5 giây)

Nguyên nhân nên xem cùng

Cùng tầng: Thiết kế đồng bộ

Nguyên nhân ở tầng khác gây cùng triệu chứng (Trễ thao tác)

Xem thẻ gốc có hình minh họa và thí nghiệm