มีหลายสิ่งที่คุณสามารถทำได้
คุณสามารถรวมวัตถุฟิสิกส์ทั้งหมดไว้ที่ศูนย์กลางบนเซิร์ฟเวอร์และประสานพิกัดกับวัตถุผู้เล่นบนไคลเอนต์ทั้งหมด นี่เป็นวิธีที่ง่ายที่สุดและทำงานได้โดยไม่มีข้อบกพร่องมากมายอย่างไรก็ตามมันใช้ทรัพยากรจำนวนมากและต้องการแบนด์วิดท์จำนวนมาก คุณสามารถเพิ่มประสิทธิภาพการใช้แบนด์วิดท์โดยการส่งค่าไปยังผู้เล่นของผู้เล่นอื่นที่อยู่ในรัศมีที่กำหนดเท่านั้น
คุณสามารถทำตาม Neenster ที่กล่าวถึงและให้เซิร์ฟเวอร์และไคลเอนต์จำลองฟิสิกส์ทุก ๆ ครั้งที่เซิร์ฟเวอร์จะแก้ไขไคลเอ็นต์ ซึ่งหมายความว่าไคลเอนต์ทั้งหมดคำนวณว่ามีฟิสิกส์เป็นของตัวเองสำหรับผู้เล่นทุกคนและคุณจะซิงค์เหตุการณ์ keypress ผ่านเซิร์ฟเวอร์ที่ให้วิถีของผู้เล่นแต่ละคนกับลูกค้าทุกคน ทุกครั้งสมมติว่า 5 วินาทีที่เซิร์ฟเวอร์ถ่ายทอดการจำลองสถานการณ์ทางฟิสิกส์และลูกค้าทุกคนยอมรับการเปลี่ยนแปลง สิ่งนี้อาจสร้างการชดเชยเล็กน้อยที่ไม่สามารถสังเกตเห็นได้บ่อยครั้ง แต่ในระหว่างเครือข่ายเกิดความล่าช้าและการสูญเสียแพ็กเก็ต (หลีกเลี่ยงไม่ได้กับ UDP ที่มีปริมาณการใช้งานสูง) คุณจะสังเกตเห็นผู้เล่นของคุณและ / หรือผู้เล่นคนอื่น ๆ คำ?).
คุณสามารถให้ไคลเอนต์แต่ละคนคำนวณฟิสิกส์ของตัวเองและซิงค์พิกัดของมัน สิ่งนี้ทำให้เป็นการยากที่จะจำลองฟิสิกส์บนวัตถุที่แบ่งปันระหว่างลูกค้า มันเป็นแนวคิดที่ค่อนข้างซับซ้อนที่จะนำไปใช้หากคุณต้องการทำอะไรที่น่าเบื่อเพราะวัตถุบางอย่างไม่จำเป็นต้องเป็นของไคลเอนต์ใด ๆ
ครั้งแรกน่าจะง่ายที่สุดและควรอนุญาตให้คุณมีผู้เล่นประมาณ 4-5 คนที่มีความล่าช้าเล็กน้อย มันจะต้องมีการแข่งขันแต่ละครั้งจะมีเซิร์ฟเวอร์ของตัวเอง หากคุณกำลังทำ LAN ให้ตรงกับสิ่งนี้คือวิธีที่จะไป
ประการที่สองน่าจะเป็นวิธีที่ใช้งานได้จริงที่สุดอย่างไรก็ตามมันอาจเป็นเรื่องยากที่จะนำไปใช้ นอกจากนี้ยังค่อนข้างมีประโยชน์ในการใช้งานการจำลองทางฟิสิกส์บนเซิร์ฟเวอร์ หากคุณมีเซิร์ฟเวอร์ส่วนกลางคุณอาจต้องโหลดยอดคงเหลือไปยังเครื่องหลายเครื่องอาจอนุญาตให้มี 10 เซิร์ฟเวอร์ที่ตรงกันให้โหลดการจับคู่ใหม่ไปยังเซิร์ฟเวอร์ที่มีการจับคู่น้อยที่สุด
สิ่งที่สามคือความเครียดน้อยที่สุดบนเซิร์ฟเวอร์และอาจเป็นทางออกที่ดีที่สุดหากคุณกำลังทำโครงข่ายเพียร์ทูเพียร์ อย่างที่ฉันได้กล่าวไปแล้วมันอาจจะยากที่จะซิงค์วัตถุอื่นนอกเหนือจากเครื่องเล่นของคุณเพราะวัตถุเหล่านั้นสามารถเปลี่ยนแปลงได้โดยลูกค้ารายอื่น
ฉันไม่สามารถบอกได้ว่าจะใช้อันไหนเพราะฉันไม่รู้ว่าเกมของคุณทำงานอย่างไร ทั้งหมดที่ฉันทำได้คือให้ข้อเท็จจริงแก่คุณ หากคุณมีคำถามเพิ่มเติมใด ๆ โปรดแสดงความคิดเห็น