2011-10-26 13 views
8

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

इसके अलावा - मुझे पता है कि किसी भी मामले में एमएमओ एक उच्च लक्ष्य है, लेकिन एक ही दिशा में अतीत में बहुत सी छोटी परियोजनाएं करने के बाद, मुझे लगता है कि मैं इसे वास्तव में अच्छा देना चाहता हूं अंत में जाओ

तो यहाँ एक किसी न किसी रूपरेखा, मैं स्पष्ट समस्याओं किसी को भी इस व्यवस्था में देख सकते हैं की यह जानकर प्रसन्नता होगी:

ग्राहक: WebGL/Javascript (शायद three.js)। गेम संपत्तियों को पकड़ने के लिए ब्राउज़र स्थानीय संग्रहण का उपयोग करें, यह स्वीकार करते हुए कि ब्राउज़र कैश को हटाने से इन्हें हटा दिया जाएगा।

संदेश: क्लाइंट/सर्वर, google protocol buffers का उपयोग कर सुविधा और आकार में कमी के लिए के बीच एनकोड संदेशों। संदेश वितरण वेबसॉकेट के माध्यम से होगा।

खेल सर्वर: अजगर में gevent के शीर्ष पर चल रहा है (कई समवर्ती से निपटने के लिए एक अच्छा समाधान हो करने के लिए लग रहा है)। डेटाबेस के लिए MySQL, पीएचपी खेल सर्वर और डीबी inbetween अभिनय: डिजाइन here:

डीबी सर्वर पर आधारित है, sharded पद्धति का उपयोग कर निर्माण किया जाएगा।

विवरण: मैं खेल सर्वर अद्यतन किसी व्यक्तिगत ग्राहक प्रति सेकंड लगभग 15-20 बार है, और क्लाइंट साइड भविष्यवाणी का उपयोग अंतराल में भरने के लिए करना चाहते हैं। ग्राहक 30 एफपीएस के क्षेत्र में सर्वर को महत्वपूर्ण इनपुट/संदेश भेज सकते हैं। मैं एक ऐसे अनुभव के लिए जाना पसंद करूंगा जो बारी-बारी से वास्तविक समय के करीब जितना संभव हो सके। मेरी मुख्य चिंता वेबसाकेट का टीसीपी आधारित प्रोटोकॉल है, क्या इससे पूरी चीज असंभव हो जाएगी?

क्या यह समाधान SO के लिए यथार्थवादी लगता है?

बहुत धन्यवाद,

उत्तर

1

आप आम तौर पर localStorage एपीआई के साथ अंतरिक्ष के 5MB मिलता है। यदि आपके पास वास्तव में ध्वनि/संगीत के साथ एक 3 डी गेम है, तो यह आपकी संपत्तियों द्वारा वास्तव में जल्दी से खाया जा रहा है (इन दिनों एक अच्छी गुणवत्ता वाला एमपी 3 कितना बड़ा है?)। आपको अपनी संपत्तियों को संपीड़ित करने के साथ सुपर आक्रामक होने की आवश्यकता होगी और गेम चलाने के दौरान स्थानीय स्टोरेज में सामानों को स्ट्रीम करने के लिए सबसे अधिक संभावना है।

मैं पूछूंगा कि आपको गेम सर्वर और डेटाबेस के बीच PHP की आवश्यकता क्यों है। क्या गेम सर्वर सीधे डेटाबेस के साथ बात नहीं कर सकता है और आपको कुछ काम बचा सकता है?

आपकी परियोजना के साथ शुभकामनाएँ।

+0

आह! वैसे यह एक चीज है जिसे मैं सीधे नहीं जानता था, 5 एमबी काफी सीमित कारक है, इसलिए हाँ कुछ प्रकार की स्ट्रीमिंग क्रम में होगी।PHP की बात के लिए, मैंने सोचा कि यह कुछ सर्वर डीबी लेनदेन लोड को गेम सर्वर से दूर ले जाने के लिए समझ में आता है, ताकि वह जितनी जल्दी हो सके ग्राहक की सेवा करने पर ध्यान केंद्रित कर सके, और समय-समय पर डेटा के हिस्सों को बंद कर दें डीबी को लिखा गया है कि डेटा को प्रारूपित करने और लिखने के उपक्रम के बिना – bharling

+0

यूप, कॉच डीबी को देखने का प्रयास करें, तुरंत आरईएसटी कॉल का समर्थन करता है। – Anders

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