คู่มือเกมแลค › ปัญหาที่เกิดกับบางคนเท่านั้น
ลำดับการลงทะเบียนระยะมองเห็นพันกัน Interest-management race on enter/leave
ID สาเหตุ pt-aoi-race · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
ถ้าจังหวะที่ตัวละครถูกลงทะเบียนในตาราง (grid) ระยะมองเห็นตรงกับจังหวะที่ NPC ย้ายช่องตาราง ข้อความแจ้งการปรากฏตัวของ NPC นั้นอาจตกหล่น
ทำไม การประมวลผลการเข้าโซน, การย้ายแชนแนล หรือการเทเลพอร์ต เกิดในจังหวะเดียวกับการเคลื่อนที่ของ NPC → ผลคือ NPC นั้นตกไปจากการคำนวณ “เอนทิตีที่เพิ่งมองเห็น” → บนหน้าจอ มองไม่เห็นแค่ NPC บางตัว หรือ NPC ที่ออกไปแล้วยังยืนอยู่
- อาการ
- มองไม่เห็น/ตัวผี
- ปัจจัย
- แพ็กเก็ตหาย
- ใครเจอ
- ไคลเอนต์เดียวในเครื่องที่เปิดหลายจอ, เราคนเดียว
- เกิดเมื่อไร
- ระหว่างเดินทาง/ย้ายแมพ, สุ่มเป็นครั้งคราว
- ผู้รับผิดชอบ
- ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)
- งานฝั่งทีมพัฒนาเกม
- ประมวลผลการอัปเดตระยะมองเห็นในเธรดเดียวและลำดับเดียว, ซิงก์ “รายการที่มองเห็น” ใหม่ทั้งหมดเป็นระยะ
- บนกราฟ
- พุ่งแบบสุ่มเป็นครั้งคราว · จำนวนรายการที่ต่างกันระหว่างรายการที่มองเห็นบนเซิร์ฟเวอร์กับรายการเอนทิตีบนไคลเอนต์
- จุดที่ต้องดู
- ให้เซิร์ฟเวอร์บันทึกการลงทะเบียนในตารางระยะมองเห็น, การย้ายเซลล์ของเอนทิตี และการส่งข้อความแจ้งการปรากฏตัว/ออกไป พร้อมหมายเลขทิก แล้วเทียบ “รายการที่มองเห็น” ของเซิร์ฟเวอร์กับรายการที่ไคลเอนต์มีเป็นระยะ
- สัญญาณว่าใช่
- NPC ที่หายไปย้ายเซลล์ในทิกเดียวกับที่ตัวละครนั้นเข้าโซนหรือเทเลพอร์ต และไม่มีบันทึกการส่งข้อความแจ้งการปรากฏตัวของ NPC นั้น
- สัญญาณว่าไม่ใช่
- ส่งข้อความแจ้งการปรากฏตัวแล้วแต่ไคลเอนต์ไม่ได้รับหรือทิ้งไป: น่าจะเป็นที่การส่ง (“ข้อมูลการปรากฏตัวที่ทะลักมาหลังเข้าโซนหาย”, “ทิ้งข้อความแจ้งการปรากฏตัวที่มาถึงระหว่างโหลด”) ถ้าหายเฉพาะ NPC ตัวเดิมเสมอ น่าจะเป็น phasing หรือตัวเลือกการแสดงผลต่างกัน
- วิธีตรวจ
- ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม
แหล่งอ้างอิง
- Replication Graph in Unreal Engine Epic Games
MMORPG และเกมอื่น ๆ แบ่งโลกเป็นตาราง มีรายการ actor ในแต่ละเซลล์ และส่งโดยอิงเซลล์ที่ไคลเอนต์อยู่ - Actor Relevancy in Unreal Engine Epic Games
ความเกี่ยวข้อง (relevancy) ตัดสินแยกตามการเชื่อมต่อ และ actor ที่ไม่เกี่ยวข้องแล้วจะถูกลบออกจากไคลเอนต์
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: ปัญหาที่เกิดกับบางคนเท่านั้น
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (มองไม่เห็น/ตัวผี)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง