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

Sách trắng lag game › L1 Tiến trình game phía client

Kiểm tra của module bảo mật game (anti-cheat) Anti-cheat scan and heartbeat

ID nguyên nhân cg-anticheat · 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 →

Module bảo mật chạy cùng game để chống hack sẽ kiểm tra định kỳ. Nếu lần kiểm tra nặng, hoặc heartbeat (tín hiệu định kỳ báo vẫn còn sống) trao đổi với server bảo mật bị trễ, game sẽ giật khựng hoặc mất kết nối.

Vì sao Module bảo mật định kỳ quét bộ nhớ game, các chương trình đang chạy và driver → Dẫn đến Trong lúc quét, game thread bị dừng, hoặc heartbeat không gửi đi kịp → Trên màn hình Khựng theo khoảng cách đều, nặng thì mất kết nối kèm thông báo lỗi bảo mật

Triệu chứng
Giật khựng, Đứng hình, Mất kết nối
Yếu tố
Ngưng trệ
Ai gặp phải
Chỉ mình tôi
Khi nào
Theo chu kỳ đều, Ngay sau đăng nhập hoặc bảo trì, Thỉnh thoảng bất chợt
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: chạy các lần kiểm tra nặng bên ngoài game thread và chia nhỏ ra, so sánh thống kê giật khựng và văng game theo phiên bản module bảo mật (nếu dồn lại ngay sau bản cập nhật thì báo cho nhà cung cấp module bảo mật). Server: chấp nhận heartbeat trễ một, hai lần.
Con số tham khảo
Lần kiểm tra nhẹ thường mất chưa tới 1 ms, nhưng lần kiểm tra nặng chạy trên game thread, tùy cách cài đặt, có thể chiếm vài chục đến vài trăm ms mỗi lần.
Trên đồ thị
Vọt lên theo chu kỳ · Frame time, số lần bị anti-cheat kick
Chỗ cần xem
Đo khoảng cách giữa các lần vọt lên trong frame time của PresentMon, thống kê lý do kick của anti-cheat mà server nhận được (với EOS là AuthenticationFailed / Authentication Timed Out… trong ClientActionReason) theo phiên bản module bảo mật và cấu hình máy
Đúng nếu
những lần dừng ngắn lặp lại theo khoảng cách đều bất kể tình huống trong game; ngay sau khi module bảo mật cập nhật, ở một cấu hình nhất định số lần giật khựng và bị kick vì hết thời gian xác thực tăng lên
Loại trừ nếu
khoảng cách như nhau ở mọi cấu hình bất kể phiên bản module bảo mật → “Thu gom rác (GC) phía client” hoặc “Tiến trình chạy nền chiếm giữ CPU”
Cách kiểm tra
Cần log và chỉ số của server, client game
Tìm hiểu thêm
Module bảo mật cài sâu vào OS dưới dạng driver nên đôi khi xung đột với phần mềm diệt virus, overlay hoặc module bảo mật của game khác. Nếu ngay sau khi module bảo mật cập nhật mà báo cáo giật khựng và văng game chỉ dồn về từ một cấu hình nhất định, hãy nghi nguyên nhân này trước.

Nguồn

  1. Using the Anti-Cheat Interfaces Epic Games
    Nếu server không nhận được message anti-cheat của client trong thời gian quy định (RegisterTimeout) thì kick vì hết thời gian xác thực (nguyên nhân hay gặp là client bị treo do loading); nếu bản cập nhật module gần đây gây lỗi thì quay về module cũ
  2. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Ghi lại thời gian từng khung hình bằng FrameTime (thời gian CPU giữa hai khung hình)

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

Cùng tầng: L1 Tiến trình game phía client

Nguyên nhân ở tầng khác gây cùng triệu chứng (Giật khựng)

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