HTML5 गेम में मल्टीप्लेयर जोड़ना [बंद]


15

मुझे ऐसा गेम बनाने में दिलचस्पी है जिसका मुझे वर्तमान में एक को-ऑप अनुभव हो, हालाँकि मैं एचटीएमएल 5 में इसे लागू करने की सबसे अच्छी विधि के रूप में उत्सुक हूं।

मैंने सीधे सी सॉकेट्स का उपयोग करने से पहले गेम बनाया है, और एसडीएल के लिए नेट लाइब्रेरी के साथ भी।

कैनवास-आधारित वातावरण में ऐसा करने के लिए मेरे सबसे अच्छे विकल्प क्या हैं?

वर्तमान में, मैं सभी के साथ आ सकता है AJAX / डेटाबेस समाधान (एक उच्च ताज़ा दर के साथ), या किसी भी तरह एक PHP सर्वर को लागू करना जो डेटा को सॉकेट के माध्यम से फ़नल करेगा।


समग्र गेमप्ले एक 2.5D प्लेटफ़ॉर्मर-ईश प्रकार का खेल होगा, इसलिए दोनों क्लाइंट को लगातार खिलाड़ी की स्थिति, दुश्मन की स्थिति, प्रोजेक्टाइल, पर्यावरण डेटा, आदि के साथ अद्यतन करने की आवश्यकता होगी।


1
जब websockets ( en.wikipedia.org/wiki/WebSockets ) को अंतिम रूप दिया जाता है (और कार्यान्वित किया जाता है) जो कि शायद एक अच्छा तरीका होगा, तब तक मुझे लगता है कि AJAX (एक्स के बिना, इसके लिए कोई XML की आवश्यकता नहीं) शायद सबसे अच्छा तरीका होगा। (अभी भी नहीं एक बहुत अच्छा तरीका मुझे लगता है)।
इलावा

लगता है कि वेब सॉकेट के लिए समर्थन तेजी से गिर रहा है ...
the_e

क्या आप एक स्टैंड या गेम बनाना चाहते हैं? यदि आप खेल बनाना चाहते हैं; HTML5 के लिए परेशान मत करो।

@ स्टीफन: दोनों क्यों नहीं? सिर्फ इसलिए कि इसे अंतिम रूप नहीं दिया गया है, इसका मतलब यह नहीं है कि मैं इसके साथ काम नहीं कर सकता!
the_e

जवाबों:


12

Socket.IO सुंदर चयन के साथ कई अन्य परतों (websockets, फ्लैश, धूमकेतु तकनीक सहित) के शीर्ष पर निर्मित एक प्रणाली प्रदान करता है।

Node.js इसे सर्वर साइड चलाने का एक विकल्प है।


5

इस उत्तर को देखें :

हालाँकि, आप फ्लैश का उपयोग कर सकते हैं, जहां आपकी स्क्रिप्ट उपलब्ध कराने के लिए उपलब्ध है, जब तक कि WebSocket व्यापक रूप से उपलब्ध न हो। जिमीट का वेब-सॉकेट-जेएस ऐसा ही एक मुक्त उदाहरण है। हालाँकि आप फ्लैश सॉकेट्स के समान ही सीमाओं के अधीन हैं, अर्थात् आपके सर्वर को सॉकेट पोर्ट के अनुरोध पर एक क्रॉस-डोमेन पॉलिसी को थूकना पड़ता है, और आपको अक्सर प्रॉक्सी / फायरवॉल के साथ कठिनाइयां होती हैं। (फ्लैश सॉकेट सीधे किए जाते हैं; बिना किसी प्रत्यक्ष सार्वजनिक आईपी एक्सेस के कोई व्यक्ति जो केवल एक HTTP प्रॉक्सी के माध्यम से नेटवर्क से बाहर निकल सकता है, वे काम करेंगे।)


3

" धूमकेतु " शायद एक छत्र शब्द है जिसका उपयोग आप यहां कर सकते हैं। हालांकि, WebSockets एक अधिक वांछनीय विकल्प होगा (जब वे खुश हों कि यह सुरक्षित है)।


3

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

क्लाइंट साइड, और सर्वर साइड दोनों को जावास्क्रिप्ट में लिखा गया है और एक दूसरे के बीच कक्षाएं / तर्क साझा करते हैं। बग को ठीक करने की कोशिश करते समय गिनती शुरू होती है, क्योंकि आपको हर चीज को दो बार लागू करने की आवश्यकता नहीं होती है।

खेल को 2 महीने के लिए शुरू किया गया है, फिर से शुरू किए बिना और हजारों मैच खेले गए हैं।

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


2

आप हमेशा सिर्फ AJAX और किसी प्रकार की संदेश कतार का उपयोग कर सकते हैं। ActiveMQ एक अच्छा उदाहरण है। आप सर्वर पर ActiveMQ चलाते हैं, फिर आपका जावास्क्रिप्ट संदेश भेज और प्राप्त कर सकता है। बस प्रत्येक खिलाड़ी का एक विशिष्ट नाम है, और दूसरे खिलाड़ी को संदेश भेजें।



2

वर्तमान में मैं इसका उपयोग कर रहा हूं: http://code.google.com/p/phpwebsocket/ परीक्षण करने के लिए मेरे सॉकेट सर्वर के रूप में। यह आपके द्वारा उपयोग किए जा रहे C सॉकेट पर कॉल करता है। कुछ सेवा का हो सकता है।


2

हम एक मल्टी-प्लेयर प्लेटफ़ॉर्म पर काम कर रहे हैं जो आपको दिलचस्प लग सकता है। आप www.16cubes.com पर हमारी परियोजना देख सकते हैं - हम सहकर्मी से सहकर्मी संचार करने के लिए एक सरल जावास्क्रिप्ट परत प्रदान कर रहे हैं। यह कुछ हद तक धूमकेतु सिद्धांत पर आधारित है, और हमारे पास वेबस्कैट का उपयोग करने की ओर बढ़ने की योजना है क्योंकि यह थोड़ा अधिक मानकीकृत हो जाता है। दूसरी ओर, हम शेल्फ से कुछ सुविधाएँ प्रदान कर रहे हैं .. जैसे स्वचालित प्रतिद्वंद्वी मिलान, गेम चैट, फेसबुक मित्र एक-क्लिक आमंत्रण आदि।

हमारे पास एक डेमो टिक-टैक-टो है, यदि आप इसे देखते हैं, तो आप शायद बेहतर विचार प्राप्त कर सकते हैं। और हाँ, आप गुमनाम रूप से भी खेल सकते हैं। यदि आप नहीं चाहते हैं, तो पंजीकरण की आवश्यकता नहीं है। 10 से कम जावास्क्रिप्ट एपीआई है, आपको इसके खिलाफ कोड करने की आवश्यकता है, और इसके उपलब्ध होने पर www.16cubes.com/documentation आवश्यकता है

हम सक्रिय रूप से प्रतिक्रिया की तलाश कर रहे हैं, इसलिए हमें अच्छे और बुरे दोनों को बताएं


1

इस ढांचे पर एक नज़र डालें जो मैंने खासतौर पर क्लाइंट / सर्वर दृष्टिकोण में नोड.जेएस का उपयोग करके रीयलटाइम मल्टीप्लेयर एचटीएमएल 5 गेम बनाने के लिए बनाया है। जहां सर्वर गेम सिमुलेशन चलाता है, और खिलाड़ी केवल इनपुट भेजते हैं।

डेमो: http://vimeo.com/24149718

रेपो: https://github.com/onedayitwillmake/RealtimeMultICENodeJs

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.