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

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

สิทธิ์ควบคุมมอนสเตอร์อยู่ที่ไคลเอนต์ที่ช้า Monster movement delegated to a player client

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

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

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

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

อาการ
วาร์ป, กระตุก, กรอเร็ว
ปัจจัย
จิตเตอร์, แพ็กเก็ตหาย
ใครเจอ
เห็นตัวละครบางตัวผิดปกติ, บางจุด/บางแชนแนล
เกิดเมื่อไร
ตลอดเวลา, สุ่มเป็นครั้งคราว
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)
งานฝั่งทีมพัฒนาเกม
ย้ายสิทธิ์ควบคุมไปให้คนที่เน็ตดี (ดูจากปิงและแพ็กเก็ตหาย), ถ้ารายงานขาดหายให้เซิร์ฟเวอร์ดึงสิทธิ์คืนทันที, มอนสเตอร์สำคัญอย่างบอสให้เซิร์ฟเวอร์คำนวณเอง
บนกราฟ
สูงเฉพาะบางกลุ่ม · ช่วงห่างการรายงานตำแหน่งแยกตามมอนสเตอร์ (แยกตามไคลเอนต์ที่ถือสิทธิ์ควบคุม)
จุดที่ต้องดู
ให้เซิร์ฟเวอร์บันทึกไคลเอนต์ที่ถือสิทธิ์ควบคุมของมอนสเตอร์แต่ละตัว พร้อมช่วงห่างการรายงาน, RTT และแพ็กเก็ตหายของไคลเอนต์นั้น ดูช่วงห่างการมาถึงของแพ็กเก็ตที่ไคลเอนต์นั้นส่งได้จาก packet capture ฝั่งเซิร์ฟเวอร์ด้วย
สัญญาณว่าใช่
สิทธิ์ควบคุมของมอนสเตอร์ที่ขยับแปลกอยู่ที่คนคนเดียวกันทั้งหมด ช่วงห่างการรายงานของคนนั้นไม่สม่ำเสมอหรือขาดหาย และเมื่อย้ายสิทธิ์ไปให้คนอื่นก็ปกติทันที
สัญญาณว่าไม่ใช่
มอนสเตอร์ที่เซิร์ฟเวอร์คำนวณเองก็กระโดดเหมือนกัน: น่าจะเป็นทิกของเซิร์ฟเวอร์ล่าช้าหรือเน็ตของฝั่งคนดู ถ้าย้ายสิทธิ์แล้วยังกระโดดต่อ น่าจะเป็น “การคำนวณเส้นทางไม่ตรงกันในการซิงก์คำสั่ง”
วิธีตรวจ
ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม
รายละเอียดเพิ่มเติม
คนที่รับหน้าที่รู้สึกว่าปกติ การแจ้งปัญหาจึงเข้ามาแค่ว่า “มอนสเตอร์แปลก ๆ” ถ้าทุกคนยกเว้นคนเดียวเห็นมอนสเตอร์ตัวเดียวกันขยับแปลก ให้ตรวจก่อนว่าใครถือสิทธิ์ควบคุมมอนสเตอร์ตัวนั้น

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

  1. Authority (Netcode for GameObjects 2.5) Unity
    ในโมเดล distributed authority แต่ละอินสแตนซ์เกม (ไคลเอนต์) รับสิทธิ์ของ network object บางส่วนและคำนวณ object นั้น
  2. Distributed authority topologies (Netcode for GameObjects 2.5) Unity
    ถ้าแบ่งสิทธิ์ให้ไคลเอนต์ จะไม่มี simulation เดียว และโกงได้ง่าย

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

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

สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (วาร์ป)

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