คู่มือเกมแลค › ปัญหาที่เกิดกับบางคนเท่านั้น
ขนาดบัฟเฟอร์อินพุตของผู้เล่นแต่ละคน Per-player server input buffer (jitter buffer)
ID สาเหตุ pt-input-buffer · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
ถ้าเซิร์ฟเวอร์เก็บอินพุตของแต่ละคนไว้เล็กน้อยแล้วดึงมาใช้ทิกละหนึ่งอัน คนอื่นจะเห็นลื่นไหล แต่จังหวะที่การกระทำของเจ้าตัวถูกยืนยันบนเซิร์ฟเวอร์จะช้าลงตามไปด้วย
ทำไม เซิร์ฟเวอร์เก็บอินพุตของคนที่ช้าไว้ในบัฟเฟอร์ แล้วใช้ทิกละหนึ่งอัน → ผลคือ ถ้าบัฟเฟอร์เล็กจะว่างบ่อย ตัวละครนั้นยืนนิ่งอยู่กับที่หรือเซิร์ฟเวอร์เดาจากอินพุตล่าสุดแล้วขยับให้ ถ้าบัฟเฟอร์ใหญ่ อินพุตของเจ้าตัวจะถูกยืนยันช้า → บนหน้าจอ ถ้าเล็ก คนอื่นเห็นหยุดแวบ ถ้าใหญ่ ผลสกิลของเจ้าตัวออกช้า (อินพุตดีเลย์)
อาการ กระตุก , อินพุตดีเลย์
ปัจจัย จิตเตอร์
ใครเจอ เห็นตัวละครบางตัวผิดปกติ, เราคนเดียว
เกิดเมื่อไร ตลอดเวลา
ผู้รับผิดชอบ ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
งานฝั่งทีมพัฒนาเกม เซิร์ฟเวอร์: ปรับขนาดบัฟเฟอร์ของแต่ละคนอัตโนมัติตามสภาพเน็ต, ถ้าอินพุตสะสมให้ดึงครั้งละสองอันเพื่อไล่ให้ทัน, สั่งไคลเอนต์ของคนที่บัฟเฟอร์ว่างบ่อยให้ส่งอินพุตเร็วขึ้น ไคลเอนต์: ส่งอินพุตให้เร็วขึ้นอีกเล็กน้อยตามคำสั่งของเซิร์ฟเวอร์ (ปรับเวลาฝั่งไคลเอนต์)
ตัวเลขที่ควรรู้ แต่ละเกมต่างกัน แต่มักเท่ากับ 1–3 ทิก VALORANT บนเซิร์ฟเวอร์ 128 ทิกรักษาบัฟเฟอร์ฝั่งเซิร์ฟเวอร์ให้สั้นกว่านั้น คือเฉลี่ยครึ่งเฟรม (ประมาณ 4 ms) ส่วนแบบ adaptive ที่เพิ่มบัฟเฟอร์เฉพาะคนที่จิตเตอร์สูงพบได้ทั่วไป
บนกราฟ สูงเฉพาะบางกลุ่ม · ความยาว/จำนวนครั้งที่ว่างของบัฟเฟอร์อินพุตแยกตามผู้เล่น
จุดที่ต้องดู ให้เซิร์ฟเวอร์บันทึกจำนวนอินพุตที่เหลือในบัฟเฟอร์ทุกทิก, จำนวนครั้งที่บัฟเฟอร์ว่างจนต้องเดาจากอินพุตล่าสุดมาเติม และเวลาตั้งแต่อินพุตมาถึงจนถูกใช้ แยกตามผู้เล่น สัญญาณว่าใช่ คนที่บัฟเฟอร์เล็กมีจำนวนครั้งที่ว่างมาก และจังหวะนั้นหยุดสั้น ๆ บนจอคนอื่น ส่วนคนที่บัฟเฟอร์ใหญ่ เวลาตั้งแต่อินพุตจนถูกใช้เพิ่มขึ้นเท่ากับความยาวบัฟเฟอร์ สัญญาณว่าไม่ใช่ บัฟเฟอร์แทบไม่ว่างแต่บนจอคนอื่นยังเห็นอาการกระตุก: น่าจะเป็นปัญหา interpolation ของฝั่งคนดู ถ้าบัฟเฟอร์สั้นแต่อินพุตดีเลย์ยังสูง น่าจะเป็นที่ RTT เองหรือการรอทิกซ้อนสองชั้น วิธีตรวจ ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม
แหล่งอ้างอิง Peeking into VALORANT's Netcode Riot Games เซิร์ฟเวอร์ปรับฐานเวลาของไคลเอนต์ ให้คิวอินพุตมีขนาดแค่พอดูดซับการมาถึงที่ไม่สม่ำเสมอโดยดีเลย์ต่ำที่สุด เป้าหมายบัฟเฟอร์บนเซิร์ฟเวอร์คือเฉลี่ยครึ่งเฟรม NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity LocalBufferSec: เวลาที่เซิร์ฟเวอร์บัฟเฟอร์ข้อความของไคลเอนต์ไว้ ปรับเวลาของไคลเอนต์ให้เร็วขึ้นเพื่อให้ข้อความไปถึงเซิร์ฟเวอร์เร็วขึ้น NetworkTime and ticks (Netcode for GameObjects 2.5) Unity ผู้เล่นที่เน็ตไม่ดีเพิ่มค่าบัฟเฟอร์ได้
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: ปัญหาที่เกิดกับบางคนเท่านั้น
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (กระตุก)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง