ฉันกำลังพัฒนานักยิงซอมบี้ระดับบนลงล่างเรียลไทม์ ฉันกำลังเขียนโค้ดนี้ใน Java โดยใช้ JBox2D เป็นเครื่องมือฟิสิกส์ของฉัน ฉันได้รับการเข้ารหัสเครือข่ายในสัปดาห์นี้และตอนนี้ฉันได้ถึงการประสานฟิสิกส์
ฉันวางแผนที่จะใช้แบบจำลองการทำนายลูกค้า / เซิร์ฟเวอร์ที่มีสิทธิ์ซึ่งลูกค้าสามารถเคลื่อนย้ายได้ฟรีตราบใดที่เซิร์ฟเวอร์อนุมัติในภายหลัง สิ่งนี้เกี่ยวข้องกับลูกค้าที่ส่งแพ็กเก็ตที่มีข้อมูลการเคลื่อนไหวไปยังเซิร์ฟเวอร์และเซิร์ฟเวอร์คำนวณเวลาแฝงและจำลองโลกใหม่จากสถานะเก่า
ปัญหาของฉันคือ JBox2D ซึ่งเป็นเอนจิ้นฟิสิกส์ปัจจุบันของฉัน (โดยทั่วไปคือพอร์ตของ Box2D) ไม่สนับสนุนการพลิกกลับโลกและแน่นอนว่าไม่ใช่เรื่องง่ายที่จะทำให้เป็นอนุกรมข้อมูลโลก ฉันมีวิธีแก้ปัญหา 2 ข้อฉันสามารถปรับเปลี่ยน / ขยายกลไกฟิสิกส์ปัจจุบันของฉันหรือเขียนเองได้
เหตุผลในการเขียนเอนจินฟิสิกส์ของฉันเอง -
- ฉันสามารถลบคุณสมบัติที่ไม่จำเป็นออกได้ ในเกมจากบนลงล่างฉันต้องใช้กลไกการชนและการบังคับเท่านั้น ไม่มีแรงดึงดูดเกี่ยวข้อง
- ฉันสามารถเข้าใจโค้ดได้ดีขึ้นและมันน่าจะง่ายกว่าที่จะใช้ฟังก์ชั่นย้อนกลับ
เหตุผลในการขยาย / แก้ไข JBox2D
- การเขียนกลไกทางฟิสิกส์ของฉันเองนั้นเป็นงานที่มีความสำคัญซึ่งอาจยุ่งยาก
- JBox2D มีชุมชนที่สนับสนุนอย่างกว้างขวางซึ่งสามารถช่วยฉันในการพัฒนา
- JBox2D มีการปรับแต่งเฉพาะสำหรับสิ่งต่าง ๆ เช่นการตรวจจับการชนกันของข้อมูลซึ่งทำให้มีประโยชน์
- งานบางอย่างที่ทำไปแล้ว แต่มีการแชร์รหัสน้อย
ดังนั้นความคิดเห็นของคุณคืออะไร นี่เป็นเกมแรกของฉันและฉันไม่มีทางพัฒนาเกมมืออาชีพ หากใครก็ตามสามารถให้ลิงก์บางอันเพื่อทำงานที่ทำไปแล้วในพื้นที่ (โดยเฉพาะการใช้ JBox2D / Box2D / Java)
strictfp
ทุกที่ซึ่งจะส่งผลกระทบต่อประสิทธิภาพการทำงานอย่างจริงจัง มิฉะนั้นเซิร์ฟเวอร์และไคลเอนต์อาจไม่ได้ผลลัพธ์ที่เหมือนกันทั้งหมด ฉันอยากจะแนะนำให้ใช้จุดคงที่แทน