2010-07-02 15 views
13

मल्टी उपयोगकर्ता ऑनलाइन गेम प्रोजेक्ट के लिए इनमें से कौन सा तकनीक सूट .. परियोजना आवश्यकताएं: 1. किसी भी समय 2k-5k उपयोगकर्ता को संभालने में सक्षम। 2. आईफोन और एंड्रॉइड के लिए क्लाइंट लाइब्रेरी (मूल, कोई जावास्क्रिप्ट)। 3. माइक्रोसॉफ्ट विंडोज (सबसे महत्वपूर्ण) के लिए क्लाइंट लाइब्रेरी, मैक ओएस एक्स और लिनक्स के लिए भी। 4. विशेष रूप से आधुनिक विकास के लिए अच्छा प्रलेखन 5. परियोजना ओपन-सोर्स नहीं है। तो, उपयुक्त लाइसेंस के साथ पुस्तकालयों का उपयोग कर सकते हैं।amqp या xmpp ऑनलाइन गेम

मैं भी erlang और जावा में कार्यक्रम कर सकते हैं, प्रोग्रामिंग भाषा की समस्या नहीं है।

मैं Openfire, Tigase, ejabberd और RabbitMQ तरह सर्वर प्रौद्योगिकियों निम्नलिखित देख रहा था। सभी मेरे प्रोजेक्ट के लिए अच्छे हैं लेकिन मैं अपनी आवश्यकताओं, एएमक्यूपी या एक्सएमपीपी के बारे में और जानना चाहता हूं।

क्या AMQP प्रस्ताव वास्तविक समय ऑनलाइन गेम्स के लिए विशेष रूप से। क्या यह बेहतर विकल्प है तो xmpp?

उत्तर

13

Linden लैब्स (दूसरा जीवन) के लोगों के संदेश प्रणाली का एक बहुत का पूरी तरह से तुलना कि आप पढ़ना चाहिए बनाया:

http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

क्या लायक है के लिए, मैं एक परियोजना में zeromq उपयोग कर रहा हूँ और यह वास्तव में दिलचस्प है क्योंकि, उपयोग के मामले के आधार पर, आपको ब्रोकर नोड की आवश्यकता नहीं है।

+0

इसमें एएमक्यूपी का एक विस्तृत विश्लेषण है, लेकिन एक्सएमपीपी के संबंध में शायद ही कुछ भी है। – Robin

7

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

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

मैंने कभी भी zeromq की कोशिश नहीं की है; शायद यह उन चीजों के लिए बेहतर होगा जो मैं RabbitMQ का उपयोग कर रहा हूं ...

5

5K उपयोगकर्ता मुझे अपने व्यवहार के बारे में बहुत कुछ नहीं बताते हैं, लेकिन अगर वे सभी एक ही 10 सेकंड विंडो में एक अनुरोध जमा करते हैं तो चलो कहें कि आप प्रति सेकेंड 500-1000 अनुरोधों को देख रहे होंगे।

मैं सक्रिय/MQ मेरी अपेक्षाकृत कम संचालित गोद टॉप आसानी से प्रति सेकंड 300 अनुरोधों को संभालने पर चल पड़ा है और इसलिए मैं खुशी से इसे यहाँ सलाह देते हैं। आप दलालों के क्लस्टर भी सेट कर सकते हैं और क्षैतिज स्केलेबिलिटी प्राप्त कर सकते हैं। आप एक http प्रोटोकॉल (STOMP) या इसके मूल बाइनरी प्रोटोकॉल का उपयोग कर सकते हैं। सी/सी ++, जावा, जावास्क्रिप्ट और अन्य के लिए क्लाइंट एपीआई पुस्तकालयों के बहुत सारे भी। कुछ प्रारंभिक AMQP support है।

आप किसी भी हठ आवश्यकता का उल्लेख नहीं था, लेकिन फिर मैं सोचा होगा कि सबसे RDBMSs पर्याप्त होगा। उस ने कहा, कुछ दस्तावेज़ उन्मुख और बड़े-टेबल प्रकार डेटाबेस क्षैतिज स्केलिंग परिप्रेक्ष्य से दिलचस्प लगते हैं।

मैं भी अपाचे कैमल उच्च performant पाया है और मैं दृढ़ता से यह सलाह देते हैं। ऊंट का उपयोग आपकी तर्क परत को लागू करने के लिए किया जाता है।

'उम्मीद है कि इससे मदद मिलती है।

1

एक्सएमपीपी टेक्स्टुअल गेम में उपयोग किया जा सकता है। http://gamerunes.com