3
ฟิสิกส์ไม่ซิงโครไนซ์อย่างถูกต้องผ่านเครือข่ายเมื่อใช้ Bullet
ฉันกำลังพยายามใช้ระบบฟิสิกส์ของลูกค้า / เซิร์ฟเวอร์โดยใช้ Bullet แต่ฉันมีปัญหาในการทำให้สิ่งต่าง ๆ ตรงกัน ฉันใช้สถานะภาพเคลื่อนไหวที่กำหนดเองซึ่งอ่านและเขียนการแปลงจากวัตถุเกมของฉันและทำงานได้ในเครื่อง แต่ฉันได้ลองวิธีที่แตกต่างกันสองวิธีสำหรับเกมเครือข่าย: วัตถุแบบไดนามิกบนไคลเอนต์ที่อยู่บนเซิร์ฟเวอร์ (เช่นไม่ใช่เศษเล็กเศษน้อยและสิ่งที่ไม่สำคัญอื่น ๆ ) ทำด้วยจลนศาสตร์ ทำงานได้อย่างถูกต้อง แต่วัตถุไม่เคลื่อนไหวอย่างราบรื่นมาก วัตถุเป็นแบบไดนามิกทั้งบน แต่หลังจากแต่ละข้อความจากเซิร์ฟเวอร์ที่วัตถุได้ย้ายฉันตั้งค่าความเร็วเชิงเส้นและเชิงมุมเป็นค่าจากเซิร์ฟเวอร์และเรียก btRigidBody :: ดำเนินการต่อไปเปลี่ยนด้วยการแปลงบนเซิร์ฟเวอร์ ฉันยังเรียก btCollisionObject :: เปิดใช้งาน (จริง); เพื่อบังคับวัตถุให้อัปเดต ความตั้งใจของฉันกับวิธีที่ 2 คือโดยทั่วไปแล้วให้ทำตามวิธีที่ 1 แต่การจี้กระสุนเพื่อทำคำทำนายของคนยากจนแทนที่จะทำเองเพื่อทำให้วิธีที่ 1 ราบรื่น แต่ดูเหมือนจะไม่ทำงาน (เพราะเหตุผลที่ไม่ชัดเจน 100% ถึง ฉันยังก้าวผ่านกระสุน) และบางครั้งวัตถุก็จบลงในที่ต่าง ๆ ฉันกำลังมุ่งหน้าไปในทิศทางที่ถูกต้องหรือไม่? กระสุนดูเหมือนว่าจะมีรหัสการแก้ไขของตัวเอง นั่นช่วยให้ฉันทำวิธีที่ 1 ได้ดีขึ้นหรือไม่ หรือรหัสวิธีที่ 2 ของฉันใช้งานไม่ได้เพราะฉันตั้งใจที่จะทำเช่นนั้น? แก้ไข: …