ฉันได้อ่านวาล์วบทความเกี่ยวกับเครือข่ายผู้เล่นหลายที่ได้รับการดัดแปลงมาจาก Yahn เนียกระดาษ 2001 เรียกว่าแฝงชดเชยวิธีการในไคลเอ็นต์ / เซิร์ฟเวอร์ในเกมการออกแบบโปรโตคอลและการเพิ่มประสิทธิภาพ ฉันกำลังสร้างเกมผู้เล่นหลายคนเรียลไทม์โดยใช้เซิร์ฟเวอร์ node.js ที่เชื่อมต่อกับลูกค้าผ่าน socket.io และฉันมีคำถามสองสามข้อเกี่ยวกับหลักการที่อธิบายไว้ด้านล่าง:
การแก้ไขเอนทิตี
[การแก้ไข] ป้องกันการเคลื่อนไหวที่กระวนกระวายใจซึ่งสิ่งนี้มักจะนำไปสู่โดยการอัพเดทเซิร์ฟเวอร์บัฟเฟอร์จากนั้นเล่นกลับด้วยช่องว่างที่สอดแทรกอย่างราบรื่นระหว่าง นอกจากนี้ยังสามารถป้องกันข้อบกพร่องที่เกิดจากการสูญเสียต
การทำนายฝั่งไคลเอ็นต์
การทำนายคือแนวคิดของลูกค้าที่ทำนายผลกระทบของการกระทำของผู้เล่นท้องถิ่นโดยไม่ต้องรอให้เซิร์ฟเวอร์ยืนยัน สถานะที่คาดการณ์ของเอนทิตีถูกทดสอบกับคำสั่งเซิร์ฟเวอร์เมื่อมาถึงจนกว่าจะตรวจจับคู่หรือจับคู่ผิด
การชดเชยความล่าช้า
การชดเชยความล่าช้าคือแนวคิดของเซิร์ฟเวอร์โดยใช้เวลาแฝงของผู้เล่นในการย้อนเวลาเมื่อประมวลผล [ผู้ใช้งาน] เพื่อดูว่าผู้เล่นเห็นอะไรเมื่อคำสั่งถูกส่ง เมื่อใช้ร่วมกับการคาดการณ์การชดเชยความล่าช้าจะช่วยต่อสู้กับเวลาแฝงของเครือข่ายจนถึงจุดที่เกือบกำจัดมันออกจากมุมมองของผู้โจมตี
หลักการใช้กับ TCP เช่นเดียวกับที่ทำกับ UDP และจะมีความแตกต่างในการนำไปใช้หรือไม่? ฉันเห็นว่าการแก้ไขเอนทิตีไม่จำเป็นต้องป้องกันการสูญหายของแพ็คเก็ต แต่ก็เกี่ยวกับมัน
ฉันสามารถสื่อสารระหว่างเซิร์ฟเวอร์กับเว็บเบราว์เซอร์และกลับกันโดยใช้ UDP และ Node.js ได้หรือไม่
เนื่องจากกระดาษมีอายุเกินหนึ่งทศวรรษหลักการเหล่านี้ยังคงใช้งานอยู่หรือมีเทคโนโลยีอื่นปรากฏขึ้นมา?
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก