2010-03-04 6 views
23

मैं एंड्रॉइड डेवलपर हूं और मैंने कुछ बोर्ड गेम बनाए हैं। अब मैं अपने कुछ बोर्ड गेम मल्टीप्लेयर बनाना चाहता हूं। मैं अपनी खुद की वेब सेवा बनाना और होस्ट नहीं करना चाहता, इसलिए मैंने पी 2 पी के बारे में सोचा।एंड्रॉइड पी 2 पी मल्टीप्लेयर गेम (ए के साथ) एक्सएमपीपी/Google टॉक बी) जेएफटीए पीरड्रॉइड सी) अन्य तरीके)

पहली चीज़ जो मैंने पाया वह एक्सएमपीपी प्रोटोकॉल था, हालांकि यह असली पी 2 पी नहीं है, लेकिन अगर मैं मौजूदा Google टॉक सेवा का उपयोग कर सकता हूं, तो मैं जाने के लिए तैयार हूं। क्या यह आपके मौजूदा Google खाते का उपयोग करते समय आपके Google टॉक क्लाइंट के सामान्य कामकाज में हस्तक्षेप किए बिना संभव है?

फिर मैंने एक वास्तविक पी 2 पी समाधान जेएफटीए के बारे में सुना, और यह पहले ही जे 2 एमई से एंड्रॉइड (http://code.google.com/p/peerdroid/) पर पोर्ट किया गया है।

हो सकता है कि मैं चीजों को यहाँ overcomplexing हूँ (के रूप में मैं कभी कभी करते हैं)

मैं सिर्फ सबसे आसान तरीका है एक boardgame के लिए सरल पी 2 पी करने के लिए जानना चाहते हैं।

आपकी सभी राय आपका स्वागत है! अग्रिम धन्यवाद

+1

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

+0

मुझे आपकी आवश्यकताओं को नहीं पता है, लेकिन यदि आप लोगों को एक दूसरे के निकट होने की उम्मीद करते हैं, तो आप डेटा कनेक्शन को संभालने के लिए बंप जैसे कुछ का उपयोग कर सकते हैं। .. – Travis

उत्तर

3

एक्सएमएमपी का उपयोग करना आपके लिए संभव होना चाहिए। Igniterealtime से smack देखें। उनके पास एक अच्छा और सक्रिय जावा एपीआई है जो आपको अपने जेबबर एक्सटेंशन पैकेट बनाने में मदद करता है जिसका उपयोग गेम राज्य में बदलावों को परिवहन के लिए किया जा सकता है।

मुझे लगता है कि एक ही खाते के साथ एक ही समय में दो Google टॉक क्लाइंट का उपयोग करना मुश्किल हो सकता है। लेकिन यह बहुत अच्छा होगा क्योंकि आप सीधे अपने गेम से अपने साथ खेलने के लिए सभी दोस्तों को सूचीबद्ध कर सकते हैं। इस तरह आप आसानी से अपने खेल खेलने के लिए और अधिक लोगों को मिल सकता है।

+1

असल में, एंड्रॉइड एक्सएमपीपी लाइब्रेरी स्मैक है। :-) – Malax

+0

मुझे developer.android.com पर कोई भी xmpp libs नहीं मिल रहा है, क्या आप लाइब्रेरी को एक लिंक प्रदान कर सकते हैं जो एंड्रॉइड में पूर्वस्थापित है? – Janusz

+0

AFAIK एंड्रॉइड में कोई xmpp libs नहीं हैं! और gtalkservice को एंड्रॉइड 1.0 – Kristof

3

आप जो हमने देखा है उससे मौजूदा Google टॉक सेवा/कनेक्शन का उपयोग नहीं कर सकते हैं। आपको जानुस की सलाह लेनी चाहिए और स्मैक लाइब्रेरी की जांच करनी चाहिए, यह आपकी सबसे अच्छी शर्त है। एक ही जीटीकॉक लॉगिन के साथ कई गैर-इंटरफेरिंग कनेक्शनों को अनुमति देने के लिए एक्सएमपीपी पते के संसाधन घटक पर एक नज़र डालें, यह आपको एक ही खाते में एक ही समय में दो ग्राहकों में लॉग इन करने की अनुमति देता है। आप प्रभावी रूप से अपने खेल को एक और ग्राहक बना सकते हैं। यहां अधिक: http://code.google.com/appengine/docs/java/xmpp/overview.html#JIDs_and_Resources

अंत में, डिवाइस पुश संचार से संबंधित 2.2 में कुछ नई कार्यक्षमता प्रतीत होती है, लेकिन मैंने अभी तक इसे नहीं देखा है। 2.2 अभी तक व्यापक रूप से तैनात नहीं है, इसलिए शायद सीमित उपयोग के लिए।

4

क्रिस्टोफ, क्या आपको अपने प्रश्न का उत्तर मिला? मैं हाल ही में एक मल्टी-प्लेयर एप्लिकेशन पर भी काम कर रहा हूं, हालांकि मैंने सर्वर (मूल रूप से) होस्ट करने के लिए चुना है। अब मैं अपनी पसंद पर पुनर्विचार कर रहा हूं, हालांकि, लेकिन जिस लाइब्रेरी का मैं उपयोग कर रहा हूं वह सहकर्मी संचार को सहकर्मी का समर्थन करता है। अंतर्निहित प्रोटोकॉल Google Protobuf के शीर्ष पर बनाया गया है। यह अनिवार्य रूप से नेटटी के शीर्ष पर बनाया गया एक पूर्ण डुप्लेक्स आरपीसी स्टैक है, जो प्रोटोबफ का उपयोग कर सकता है। आरपीसी प्रोटोबफ स्टैक का यूआरएल यहां दिया गया है: http://code.google.com/p/protobuf-rpc-pro/

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

1

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

आपको एक्सएमपीपी के चैट हिस्से का उपयोग नहीं करना चाहिए, क्योंकि यह उपयोगकर्ताओं की मौजूदगी में हस्तक्षेप करेगा।

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

एक्सएमपीपी के साथ अच्छा हिस्सा यह है कि यह एक्स्टेंसिबल है ताकि आप प्रोटोकॉल को अपने एक्सटेंशन के साथ बढ़ा सकें। मैं आपको उपयोगकर्ता प्रमाणीकरण, प्रमाणीकरण और एन्क्रिप्शन भी देता हूं, और आपको इसे स्वयं डिबग करने की आवश्यकता नहीं है।

आप किसी भी एक्सएमपीपी सर्वर का उपयोग पबब के लिए अच्छा समर्थन के साथ कर सकते हैं या आप स्वयं एक सर्वर होस्ट कर सकते हैं। इसके लिए बहुत से सर्वर उपयोग योग्य हैं। पिछली बार मैंने देखा कि पट्सब के लिए जीटीकॉक का समर्थन नहीं है।