मैं वर्तमान में एक टॉप डाउन, रियलटाइम, ज़ोंबी शूटर विकसित कर रहा हूं। मैं जावा में यह कोडिंग कर रहा हूं, मेरे भौतिकी इंजन के रूप में JBox2D का उपयोग कर रहा हूं। मैं इस हफ्ते नेटवर्किंग को कोड कर रहा हूं, और अब मैं फिजिक्स सिंक्रोनाइजेशन पर निर्भर हूं।
मैं भविष्य कहनेवाला क्लाइंट / आधिकारिक सर्वर मॉडल का उपयोग करने की योजना बना रहा हूं, जहां क्लाइंट स्थानांतरित करने के लिए स्वतंत्र है, जब तक कि सर्वर बाद में इसे स्वीकार कर लेता है। इसमें क्लाइंट को सर्वर पर मूवमेंट डेटा वाले पैकेट भेजने और सर्वर को लेटेंसी की गणना करने, और पुरानी स्थिति से दुनिया को फिर से अनुकरण करना शामिल है।
मेरी समस्या यह है, मेरा वर्तमान भौतिकी इंजन, JBox2D (मूल रूप से Box2D का एक बंदरगाह), दुनिया को वापस चलाने का समर्थन नहीं करता है, और जाहिर है कि दुनिया के डेटा को क्रमबद्ध करना आसान नहीं है। मेरे पास 2 समाधान हैं, मैं अपने वर्तमान भौतिकी इंजन को संशोधित / विस्तारित कर सकता हूं, या अपना खुद का लिख सकता हूं।
मेरे खुद के भौतिकी इंजन लिखने के कारण -
- मैं अनावश्यक सुविधाओं को हटा सकता हूं। एक शीर्ष डाउन गेम में, मुझे केवल टकराव यांत्रिकी, और हैंडलिंग बलों की आवश्यकता होती है। कोई गुरुत्वाकर्षण शामिल नहीं है।
- मैं कोड को बेहतर तरीके से समझ सकता हूं, और रोल बैक फ़ंक्शंस को लागू करने के लिए [सबसे अधिक संभावना है] यह आसान होगा
JBox2D को बढ़ाने / संशोधित करने के कारण
- मेरे अपने भौतिकी इंजन को लिखना, एक महत्वपूर्ण कार्य होगा, जो बोझिल हो सकता है
- JBox2D में एक व्यापक रूप से सहायक समुदाय है, जो मुझे अपने देव के साथ मदद कर सकता है
- JBox2D, टकराव का पता लगाने जैसी चीजों के लिए विशिष्ट अनुकूलन है, जो इसे उपयोगी बनाते हैं
- कुछ काम पहले से ही इस पर किए गए हैं, लेकिन थोड़ा कोड साझा किया गया है
तो आपकी क्या राय हैं यह मेरा पहला गेम है, और मैं कोई पेशेवर गेम डेवलपर नहीं हूं। यदि कोई पहले से ही क्षेत्र में काम करने के लिए कुछ लिंक प्रदान कर सकता है (अधिमानतः JBox2D / Box2D / Java का उपयोग करके)।
strictfp
हर जगह उपयोग करने की आवश्यकता होगी , जो प्रदर्शन को गंभीरता से प्रभावित करेगा। अन्यथा सर्वर और क्लाइंट को समान परिणाम प्राप्त नहीं हो सकते हैं। मैं इसके बजाय निश्चित बिंदु का उपयोग करने की सलाह दूंगा।