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

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

คนเน็ตช้าขยับแบบกรอเร็วบนจอคนอื่น Laggy player seen by others (bursty inputs)

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

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

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

ทำไม คำสั่งเคลื่อนที่ของคนที่ช้า บางทิกมาถึง 0 คำสั่ง บางทิกมา 2–3 คำสั่ง → ผลคือ เซิร์ฟเวอร์ใช้คำสั่งทั้งหมดในทิกที่ได้รับ ตำแหน่งของตัวละครนั้นจึงเปลี่ยนเป็นขั้นบันได → บนหน้าจอ บนจอคนอื่น ตัวละครนั้นตัวเดียวหยุดแวบแล้วขยับรวดเดียวแบบกรอเร็ว ที่เหลือปกติ

อาการ
กรอเร็ว, วาร์ป
ปัจจัย
จิตเตอร์, แพ็กเก็ตหาย
ใครเจอ
เห็นตัวละครบางตัวผิดปกติ, บางพื้นที่/บาง ISP
เกิดเมื่อไร
ตลอดเวลา, ระหว่างเดินทาง/ย้ายแมพ
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ ภายนอก (ภายนอก)
งานฝั่งทีมพัฒนาเกม
ใช้บัฟเฟอร์อินพุตของผู้เล่นแต่ละคนกระจายคำสั่งไปใช้อย่างสม่ำเสมอ, ดู sequence number ของอินพุตแล้วใช้ตามช่วงห่างเดิม, การเพิ่มแค่ interpolation buffer บนจอคนอื่นไม่พอ (เพราะประวัติตำแหน่งบนเซิร์ฟเวอร์เองเป็นขั้นบันไดอยู่แล้ว)
งานฝั่งภายนอก
แนะนำผู้เล่นที่ช้าให้ใช้สาย LAN และตรวจ Wi-Fi/เราเตอร์
ตัวเลขที่ควรรู้
ถ้าจิตเตอร์ 80 ms บนเซิร์ฟเวอร์ 20 ทิก (50 ms) จำนวนคำสั่งต่อทิกจะแกว่งระหว่าง 0–3 คำสั่ง
บนกราฟ
สูงเฉพาะบางกลุ่ม · จำนวนคำสั่งที่ใช้ต่อทิกแยกตามผู้เล่น, จิตเตอร์แยกตามผู้เล่น
จุดที่ต้องดู
ใน packet capture ฝั่งเซิร์ฟเวอร์ กรองเฉพาะแพ็กเก็ตที่ผู้เล่นที่ถูกแจ้งส่งมา แล้วนับว่ามาถึงกี่แพ็กเก็ตในแต่ละช่วงทิก (เช่น 50 ms) และเทียบกับผู้เล่นคนอื่น ถ้ามี log ของเซิร์ฟเวอร์ ให้ดูจำนวนคำสั่งเคลื่อนที่ที่ใช้ในแต่ละทิกและ sequence number ของอินพุตแยกตามผู้เล่น
สัญญาณว่าใช่
เฉพาะแพ็กเก็ตของผู้เล่นที่ถูกแจ้งที่มาถึงเป็นกลุ่มสลับระหว่าง 0 กับ 2–3 แพ็กเก็ตต่อทิก และจิตเตอร์/แพ็กเก็ตหายของผู้เล่นคนนั้นสูง ขณะที่แพ็กเก็ตของผู้เล่นคนอื่นมาสม่ำเสมอ ถ้าผู้เล่นคนนั้นเปลี่ยนไปใช้สาย LAN อาการจะลดลง
สัญญาณว่าไม่ใช่
หลายตัวละครขยับรวดเดียวพร้อมกัน: น่าจะเป็นทิกของเซิร์ฟเวอร์ล่าช้าหรือเน็ตของฝั่งคนดู ถ้าการมาถึงและการใช้คำสั่งสม่ำเสมอแต่ตัวละครนั้นยังดูกระโดด น่าจะเป็นปัญหา interpolation หรือการแสดงผลของฝั่งคนดู
วิธีตรวจ
ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
รายละเอียดเพิ่มเติม
ในโครงสร้าง server authoritative นี่คือพฤติกรรมปกติ แลคของคนที่ช้าคนเดียวจะแสดงให้คนอื่นเห็นแค่เป็น “คนนั้นขยับแปลก ๆ” และไม่กระทบการควบคุมของคนอื่นหรือการเคลื่อนที่ของมอนสเตอร์ แต่สิ่งที่ต้องโต้ตอบกับคนนั้นโดยตรง (เทรด, กิมมิกปาร์ตี้, การตัดสินผล PvP) จะช้าตามไปด้วย

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

  1. Peeking into VALORANT's Netcode Riot Games
    เซิร์ฟเวอร์ใส่อินพุตที่มาถึงลงในคิวการเคลื่อนที่ของผู้เล่นแต่ละคนตามลำดับทิก และถ้าคิวว่างจะเติมด้วยการคาดการณ์ การแก้ตำแหน่งจะเห็นเฉพาะผู้เล่นคนนั้น คนอื่นเห็นลื่นไหล
  2. State Synchronization Gaffer On Games
    แม้แพ็กเก็ตที่ส่ง 60 ครั้งต่อวินาที ก็มาถึงเป็นกลุ่ม เช่น เฟรมหนึ่ง 2 แพ็กเก็ต เฟรมถัดไป 0 แพ็กเก็ต
  3. Source SDK 2013: player.cpp Valve
    กระจายคำสั่งที่มาถึงเป็นกลุ่มไปประมวลผลตามทิกของเซิร์ฟเวอร์ (meter out)

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

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

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

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