मैंने एक बॉम्बरबर्ग एप्लिकेशन को कोड किया जो सहकर्मी कनेक्शन के लिए गेमकिट पीयर का उपयोग करता है। समस्या यह है कि थोड़ी देर के बाद खेल अब सिंक में नहीं है।खेल किट पीयर टू पीयर
मैंने जीकेटीएक्स के लिए नमूना कोड देखा और अपने मॉडल का उपयोग किया। सहकर्मियों के बीच कोई ग्राहक/सर्वर संबंध नहीं है इसलिए मैंने अपने गेम में एक का उपयोग नहीं किया। दोनों सहकर्मी एक गैमेस्टेट बनाए रखते हैं जिसे वे प्राप्त डेटा के आधार पर अपडेट करते हैं।
मेरे पास एक एनएसटीमर है जिसका उपयोग प्रत्येक फ्रेम पर गैमेलोप चलाने के लिए किया जाता है। एनएसटीमीटर सिंक में नहीं हैं इसलिए कभी-कभी गैमेस्टेट अलग-अलग हो जाते हैं: खिलाड़ी लगभग एक ही समय में एक पावरअप उठाते हैं और वे दोनों को पॉवरअप मिलता है क्योंकि इसमें डेटा भेजने में कुछ समय लगता है।
मैं ऐप को काम करने के किसी भी विचार की सराहना करता हूं। मैं क्लाइंट-सर्वर का उपयोग करने के लिए कोड को फिर से लिखने की सोच रहा हूं लेकिन मुझे यकीन नहीं है कि यह एक अच्छा विचार है ... फिर भी
धन्यवाद!
संपादित करें: मैंने कोड बदल दिया है कि एक यादृच्छिक खिलाड़ी मेजबान होने के लिए चुना जाता है। हर बार एक खिलाड़ी एक बम रखता है, वह सर्वर से कहता है कि उसे कहां रखा जाए। सर्वर खिलाड़ियों की स्थिति देता है (जैसा सर्वर पर देखा जाता है) और फिर उस खिलाड़ी को बताता है कि बम कहां रखा जाए।
पावरअप के लिए सर्वर जांचता है कि क्या कोई खिलाड़ी पावरअप उठाता है और यदि उसने ऐसा किया तो उसे सूचित करने वाला एक पैकेट भेजता है।
अब एक और समस्या दिखाई दी है। उपकरणों के बीच विलंबता उच्च है (मैं ब्लूटूथ कनेक्शन का उपयोग कर रहा हूँ)। क्लाइंट ने इसे रखने के लिए बटन टैप करने के बाद बम लगाने के लिए लगभग 0.2 सेकंड लगते हैं।
मैं सभी डेटा विश्वसनीय रूप से भेज रहा हूं। क्या मैं इसे ठीक से कर रहा हूं?
दोनों खिलाड़ियों पावरअप की जल्दी: