คู่มือเกมแลค › ปัญหาที่เกิดกับบางคนเท่านั้น
เอนทิตีถูกพักไว้เพราะประมาณเวลาคลาดเคลื่อน Clock estimate error holds or discards entities
ID สาเหตุ pt-clock-hold · ผู้รับผิดชอบหลัก พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
ถ้าเวลาเซิร์ฟเวอร์ที่ไคลเอนต์ประมาณไว้ผิด ข้อมูลเอนทิตีที่เพิ่งมาถึงจะถูกพักไว้เพราะ “ยังเป็นอนาคต” หรือถูกทิ้งเพราะ “เก่าเกินไป”
ทำไม การประมาณเวลาเซิร์ฟเวอร์ของไคลเอนต์ฝั่งหนึ่งคลาดไปมาก (วัดระหว่างโหลด, เพิ่งตื่นจากโหมดประหยัดพลังงาน) → ผลคือ เวลาอ้างอิงของ interpolation ไม่ตรงกับเวลาของข้อมูลเอนทิตี → บนหน้าจอ เอนทิตีโผล่ช้าหรือดูหยุดนิ่งอยู่กับที่
- อาการ
- มองไม่เห็น/ตัวผี, กระตุก
- ปัจจัย
- ความหน่วง
- ใครเจอ
- ไคลเอนต์เดียวในเครื่องที่เปิดหลายจอ
- เกิดเมื่อไร
- หลังอยู่เฉย ๆ สักพัก, หลังล็อกอิน/หลังปิดปรับปรุง
- ผู้รับผิดชอบ
- ผู้รับผิดชอบหลัก พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
- งานฝั่งทีมพัฒนาเกม
- ซิงก์เวลาใหม่เป็นระยะ และถ้าต่างกันมากให้รีเซ็ตทันที, ไม่ใช้ค่าที่วัดระหว่างโหลดหรือทันทีหลังตื่นจากโหมดประหยัดพลังงาน
- บนกราฟ
- สูงเฉพาะบางกลุ่ม · ความคลาดเคลื่อนของการประมาณเวลาเซิร์ฟเวอร์แยกตามไคลเอนต์
- จุดที่ต้องดู
- ให้ไคลเอนต์บันทึกเวลาเซิร์ฟเวอร์ที่ประมาณ, RTT, เวลาที่ซิงก์เวลาใหม่ และจำนวนครั้งที่พักหรือทิ้งข้อมูลเอนทิตี ลองจำลองอาการทันทีหลังโหลดหรือหลังตื่นจากโหมดประหยัดพลังงาน
- สัญญาณว่าใช่
- เฉพาะไคลเอนต์ที่มีปัญหาที่ความคลาดเคลื่อนเกินเกณฑ์รีเซ็ต (Unity คือ hardResetThresholdSec ค่าเริ่มต้น 0.2 วินาที) มีบันทึกว่าพักข้อมูลเอนทิตีไว้เพราะเป็นอนาคตหรือทิ้งเพราะเป็นอดีต และเมื่อซิงก์เวลาใหม่ก็ปกติทันที
- สัญญาณว่าไม่ใช่
- ความคลาดเคลื่อนต่ำแต่โผล่ช้า: น่าจะเป็น “งบการส่ง/ลำดับความสำคัญต่อการเชื่อมต่อ” หรือสาเหตุฝั่งการโหลด
- วิธีตรวจ
- ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม
แหล่งอ้างอิง
- NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
ถ้าเวลาต่างกันเกิน hardResetThresholdSec (ค่าเริ่มต้น 0.2 วินาที) จะบังคับให้ตรงทันที ปกติจะใช้ adjustmentRatio ปรับให้เร็วขึ้นหรือช้าลงทีละน้อย - NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
LocalTime นำหน้าเซิร์ฟเวอร์ ส่วน ServerTime ตามหลัง ข้อความที่มาถึงช้าอาจมีเวลารอติดลบได้
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: ปัญหาที่เกิดกับบางคนเท่านั้น
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (มองไม่เห็น/ตัวผี)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง