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

คู่มือเกมแลค › ปัญหาที่เกิดกับบางคนเท่านั้น

งบการส่ง/ลำดับความสำคัญต่อการเชื่อมต่อ Per-connection bandwidth budget and priority

ID สาเหตุ pt-priority · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)

เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →

ถ้าเซิร์ฟเวอร์จำกัดปริมาณที่ส่งต่อการเชื่อมต่อและส่งสิ่งที่อยู่ใกล้ก่อน ฝั่งที่ถูกตั้งเพดานไว้ต่ำจะได้รับ NPC ที่อยู่ไกลช้าหรือไม่ได้รับเลย

ทำไม ในที่ที่คนเยอะ เซิร์ฟเวอร์ส่งตามลำดับความสำคัญภายในเพดานปริมาณการส่งของแต่ละการเชื่อมต่อ → ผลคือ การเชื่อมต่อที่ค่าประเมินแบนด์วิดท์ต่ำ (เช่น ฝั่งที่เป็นหน้าต่างเบื้องหลังจึงส่งสัญญาณยืนยันการรับช้า) จะเลื่อนเอนทิตีลำดับท้าย ๆ ออกไปเรื่อย ๆ → บนหน้าจอ NPC ที่อยู่ไกลโผล่ช้าหรือมองไม่เห็นในฝั่งเดียว

อาการ
มองไม่เห็น/ตัวผี, อินพุตดีเลย์
ปัจจัย
ความหน่วง
ใครเจอ
ไคลเอนต์เดียวในเครื่องที่เปิดหลายจอ, บางจุด/บางแชนแนล
เกิดเมื่อไร
ตอนคนแห่มารวมกัน
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
งานฝั่งทีมพัฒนาเกม
เซิร์ฟเวอร์: เพิ่มลำดับความสำคัญของเอนทิตีที่ถูกเลื่อนตามเวลาที่ผ่านไป (กัน starvation), รับประกันรอบการอัปเดตขั้นต่ำ ไคลเอนต์: ส่งสัญญาณยืนยันการรับให้ทันเวลาแม้อยู่เบื้องหลัง เพื่อไม่ให้ค่าประเมินแบนด์วิดท์ลดลง
บนกราฟ
สูงตามจำนวนคนและโหลด · จำนวนเอนทิตีที่ถูกเลื่อนแยกตามการเชื่อมต่อ, ปริมาณการส่งแยกตามการเชื่อมต่อ
จุดที่ต้องดู
ให้เซิร์ฟเวอร์บันทึกไบต์ที่ส่งในแต่ละทิก, เพดานการส่ง (แบนด์วิดท์ที่ประเมิน), จำนวนเอนทิตีที่ส่งไม่ได้และถูกเลื่อน และเวลาที่ผ่านไปนับจากส่งครั้งล่าสุดของแต่ละเอนทิตี แยกตามการเชื่อมต่อ ใน Unreal ใช้ Networking Insights ดูขนาดแพ็กเก็ตของแต่ละการเชื่อมต่อและเอนทิตีที่ replicate อยู่ในนั้นได้
สัญญาณว่าใช่
NPC ที่มองไม่เห็นเป็นเอนทิตีที่ถูกเลื่อนมานานในการเชื่อมต่อนั้น เพดานของการเชื่อมต่อนั้นต่ำกว่าการเชื่อมต่ออื่น และยิ่งคนแน่น เอนทิตีที่ถูกเลื่อนยิ่งเพิ่ม
สัญญาณว่าไม่ใช่
ไม่มีเอนทิตีที่ถูกเลื่อน และส่ง NPC นั้นตรงเวลาแล้ว: น่าจะเป็นขั้นหลังการส่ง (receive buffer, การโหลด, ตัวเลือกการแสดงผล) ถ้าทุกการเชื่อมต่อชนเพดานหมด น่าจะเป็นปัญหาปริมาณการส่งของทั้งเซิร์ฟเวอร์หรือการออกแบบระยะมองเห็น
วิธีตรวจ
ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม

แหล่งอ้างอิง

  1. Actor Priority in Unreal Engine Epic Games
    เมื่อแบนด์วิดท์อิ่มตัว จะเลือก actor ที่จะ replicate ตามลำดับความสำคัญ (ระยะทาง, แนวสายตา, เวลาที่ผ่านไปนับจาก replicate ครั้งล่าสุด) ไม่ใช่ทุก actor จะถูก replicate ทุกครั้ง
  2. State Synchronization Gaffer On Games
    สะสมลำดับความสำคัญ: เอนทิตีที่ใส่ในแพ็กเก็ตรอบนี้ไม่ได้จะได้เข้าแพ็กเก็ตถัดไปก่อน และเพดานแบนด์วิดท์ปรับแบบเรียลไทม์
  3. Networking Insights in Unreal Engine Epic Games
    แสดงขนาดแพ็กเก็ตที่รับส่งในแต่ละการเชื่อมต่อ และเอนทิตี/property ที่ replicate อยู่ในนั้น

สาเหตุที่ควรดูประกอบ

ชั้นเดียวกัน: ปัญหาที่เกิดกับบางคนเท่านั้น

สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (มองไม่เห็น/ตัวผี)

ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง