2012-02-28 16 views
5

मैं वर्तमान में मोबाइल उपकरणों के लिए 2 डी गेम के लिए योजना चरणों में हूं जो मैं cocos2d-x का उपयोग कर सी ++ में बना रहा हूं। खेल बारी आधारित होगा और प्रत्येक मोड़ में एक चरण होगा जिसमें भौतिकी सिमुलेशन होंगे। यह क्रॉस-प्लेटफॉर्म भी होगा।टर्न आधारित मल्टीप्लेयर भौतिकी नेटवर्किंग

मैं मल्टीप्लेयर नेटवर्किंग के लिए नया हूं और सोच रहा हूं कि भौतिकी को सिंक करने का सबसे अच्छा तरीका क्या होगा क्योंकि Box2d अलग-अलग उपकरणों पर बिल्कुल समान व्यवहार नहीं करता है।

अनुकरण प्रत्येक डिवाइस पर एक साथ होने की आवश्यकता नहीं है, लेकिन मुझे परिणामों को बिल्कुल वही होना चाहिए। आदर्श रूप से खिलाड़ी अपने स्वयं के डिवाइस, एक ही भौतिकी सिमुलेशन (यानी प्रोजेक्टाइल मोशन, बाउंसिंग, टकराव) पर गवाह करने में सक्षम होंगे और परिणाम जब उनके विरोधियों के दौरान हुआ तो वे अपनी बारी शुरू करने का फैसला करते हैं।

ऐसा करने का सबसे अच्छा तरीका क्या होगा? मेरे शोध से मैं कुछ समाधान के साथ आया हूँ। क्या मुझे कुछ सर्वर कोड लिखना चाहिए जिस पर मैं उपयोगकर्ता इनपुट लेता हूं और सभी भौतिकी सिमुलेशन को संभालता हूं, फिर परिणाम प्रत्येक डिवाइस पर भेजता है? या क्या कोई तरीका है कि मैं एक डिवाइस पर सिमुलेशन को संभाल सकता हूं और सारी जानकारी दूसरी तरफ भेज सकता हूं?

नेटवर्क के माध्यम से सिमुलेशन के दौरान जो भी होता है, वह सब कुछ कैसे भेजता है क्योंकि मैं प्रत्येक डिवाइस पर सिमुलेशन नहीं चला सकता और उसी परिणाम की गारंटी देता हूं? क्या मैं बस कुछ ही समय-सारिणी के दौरान क्या होता है, इसकी जानकारी के साथ सर्वर (या डिवाइस) को अपडेट करूंगा?

मैं अपने भौतिकी/टकराव का पता लगाने को लागू करने पर भी विचार करता हूं।

उत्तर

0

यदि विभिन्न डिवाइस सिमुलेशन नहीं चला सकते हैं और एक ही परिणाम प्राप्त कर सकते हैं, तो यह बाहर है। आपको सिम को एक ही स्थान पर चलाना होगा और परिणामों को वितरित करना होगा।

डिवाइसों में से एक या एक अलग सर्वर पर? क्या सिम को एक अलग सर्वर पर लागू करना काफी आसान होगा? यदि ऐसा है, तो यह करो; यदि नहीं, तो अतिरिक्त मशीन को शामिल करने का कोई कारण नहीं है।

आपके द्वारा सुझाई गई अद्यतन योजना एक अच्छा प्रारंभिक बिंदु है। इसमें सब कुछ शामिल नहीं है जो बदले में होता है, उपयोगकर्ता को कार्रवाई दिखाने के लिए केवल प्रदर्शन की नियमित आवश्यकता होती है। छोटे समय अंतराल से शुरू करें (जिसका अर्थ है बहुत सारे डेटा), फिर दृश्यों को पीड़ित होने तक उन्हें बड़ा बनाएं।

संबंधित मुद्दे