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

Sách trắng lag game › Sự cố chỉ một số người gặp

Mất snapshot gốc (baseline) Lost baseline for delta compression

ID nguyên nhân pt-baseline · 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)

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

Với cách server chỉ gửi “những gì khác so với lần trước”, nếu mất thông tin đầy đủ (bản gốc) gửi một lần lúc đầu thì các phần thay đổi sau đó không thể áp dụng được.

Vì sao Gói thông tin đầy đủ (bản gốc) của đối tượng bị mất hoặc bị bỏ trước khi xử lý → Dẫn đến Client không có đối tượng để áp dụng các phần thay đổi về sau nên bỏ qua → Trên màn hình Đối tượng đó không hiển thị, hoặc một lúc lâu sau mới đột ngột xuất hiện

Triệu chứng
Không hiển thị·đối tượng ma, Dịch chuyển tức thời
Yếu tố
Mất gói
Ai gặp phải
Chỉ một client trên cùng PC, Chỉ mình tôi
Khi nào
Thỉnh thoảng bất chợt
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: bản gốc phải được truyền lại cho đến khi nhận được xác nhận (ACK), chỉ tạo phần thay đổi dựa trên bản gốc mà client đã xác nhận đã nhận. Client: chỉ gửi xác nhận (ACK) sau khi đã thực sự áp dụng bản gốc, khi nhận phần thay đổi của đối tượng lạ thì yêu cầu server gửi lại.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · Số lần nhận phần thay đổi của đối tượng lạ
Chỗ cần xem
Đối chiếu số lần và ID đối tượng mà client bỏ phần thay đổi vì không có bản gốc với thời điểm server gửi bản gốc của đối tượng đó và thời điểm nhận ACK. Trong môi trường dev, thêm mất gói (loss của tc netem, tỷ lệ mất gói trong mô phỏng mạng của Unreal) để tái hiện
Đúng nếu
với đối tượng không hiển thị, server đã gửi bản gốc nhưng chưa nhận ACK mà vẫn liên tục chỉ gửi phần thay đổi, và client bỏ các phần thay đổi đó
Loại trừ nếu
bản gốc đã được ACK và áp dụng ở client mà vẫn không thấy → xem mất thông báo rời đi hoặc nhầm lẫn do dùng lại ID đối tượng
Cách kiểm tra
Cần log và chỉ số của server, client game

Nguồn

  1. Snapshot Compression Gaffer On Games
    Phần thay đổi chỉ được tạo dựa trên bản gốc (baseline) mà bên kia đã xác nhận (ack) đã nhận, còn trạng thái ban đầu được gửi riêng
  2. Quake III Arena source: code/server/sv_snapshot.c id Software
    Nén delta dựa trên snapshot client đã xác nhận, nếu bản gốc quá cũ thì gửi snapshot đầy đủ
  3. tc-netem(8) — Linux manual page iproute2
    Công cụ thử nghiệm giả lập mạng thực bằng cách thêm độ trễ, jitter (delay TIME JITTER) và mất gói (loss random PERCENT) vào gói tin đi ra
  4. Using Network Emulation in Unreal Engine Epic Games
    Thử nghiệm bằng cách đặt độ trễ tối thiểu, tối đa và tỷ lệ mất gói cho server và client; trên console thì cấu hình như NetEmulation.PktLag

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

Cùng tầng: Sự cố chỉ một số người gặp

Nguyên nhân ở tầng khác gây cùng triệu chứng (Không hiển thị·đối tượng ma)

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