2017-04-22 14 views
11

सिंक्रनाइज़ करने के लिए कैसे मैं Libgdx का उपयोग कर लोकप्रिय गेम पोंग का एक ऑनलाइन संस्करण विकसित कर रहा हूं। मैंने खिलाड़ियों के बीच गेम डेटा भेजने के लिए Google की रीयलटाइम मल्टीप्लेयर सेवा का उपयोग करना शुरू कर दिया है, लेकिन मैं समझ नहीं पा रहा हूं कि सिंक्रनाइज़ेशन समस्या का सामना कैसे किया जा रहा है।Play Services रीयल टाइम मल्टीप्लेयर

इस समय भेजा गया जानकारी खिलाड़ी का पैडल है, इसलिए जब मैं चलता हूं तो मैं प्रतिद्वंद्वी को अपनी नई स्थिति भेजता हूं। उस समय प्रतिद्वंद्वी इसे प्राप्त करता है, समय पहले से ही पारित हो चुका है और सिंक खो गया है।

मैं समझता हूं कि धीमे कनेक्शन का उपयोग करके आंदोलनों के बीच कुछ प्रतीक्षा समय हो सकता है, लेकिन फिर मैं इसे चिकनी कैसे बना सकता हूं?

उत्तर

1

इस प्रश्न का निश्चित उत्तर नहीं है, लेकिन इस स्थिति को हल करने के लिए लोग विभिन्न रणनीतियां अनुकूलित करते हैं।

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

यह यहां जवाब देने के लिए एक बहुत ही विशाल विषय है। जब मैंने अपना मल्टीप्लेयर टैंक आधारित गेम बनाया, तो मैंने चीजों को थोड़ा आसान बनाने के लिए कुछ चीजें कीं।

  1. सर्वर पर आंदोलनों को भेजने के लिए प्रयुक्त यूडीपी प्रोटोकॉल।
  2. मैं एक खिलाड़ी के लिए क्लाइंट साइड पर दो प्रविष्टियां रखूंगा। एक वर्तमान मूल्य है और एक सेट करने का मूल्य है। फिर मैं वर्तमान मूल्य को 0.3f की तरह चिकनाई कारक के साथ गुणा कर दूंगा जब तक कि यह निर्धारित करने के लिए मूल्य के बराबर न हो। (यह जिटर्स को कम करने में मदद करता है)
  3. मैं टीसीपी के माध्यम से महत्वपूर्ण संदेश भेजूंगा।

मैंने जो अंक दिए हैं, वे बताते हैं कि मैंने अपने गेम में क्या किया लेकिन किसी भी में इसका उपयोग किया जा सकता है। हालांकि मैं आपको इस वेबसाइट पर Gaffer on Games

फिर से यह क्षेत्र बहुत बड़ा है और कोई जवाब आपकी मदद कर सकता है। मैंने इस विषय पर अपनी थीसिस की है और अभी भी आपको एक निश्चित उत्तर नहीं दे सकता है। आपको अपनी जरूरतों के मुताबिक सीखने के लिए बहुत सारे लेख और मॉडल पढ़ना होगा।

0

आपको कुछ प्रकार के Animation Interpolation का उपयोग करने की आवश्यकता है जिसका अर्थ यह होगा कि पैडल नई स्थिति में "टेलीपोर्ट" नहीं करता है, लेकिन नई स्थिति प्राप्त होने के बाद धीरे-धीरे आगे बढ़ना शुरू होता है।

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