2009-11-13 12 views
8

कम मैं एक फ्लैश आधारित मल्टीप्लेयर खेल बना रहा हूं और अब मैं सर्वर साइड कोड पर काम शुरू कर रहा हूँ में। खैर मैं इस परियोजना का एकमात्र डेवलपर हूं इसलिए मैं एक उच्च स्तरीय सॉकेट लाइब्रेरी की तलाश कर रहा हूं जो मेरे विकास के समय को तेज करने के लिए गेम के साथ अच्छी तरह से काम करता है।सॉकेट प्रोग्रामिंग के लिए एक उच्च स्तरीय लाइब्रेरी (जावा या पायथन) की तलाश

मैं मुड़ फ्रेमवर्क (अजगर के लिए) का उपयोग करने की कोशिश कर रहा था लेकिन मैं यह तो मैं एक और समाधान के लिए देख रहा हूँ के साथ कुछ निजी समस्याएं आ रही हैं।

मैं या तो जावा या पायथन आधारित लाइब्रेरी के लिए खुला हूं। मुख्य बात यह है कि पुस्तकालय मल्टीप्लेयर गेम के लिए पर्याप्त स्थिर है और पुस्तकालय को "उच्च स्तरीय" (सार) होना चाहिए क्योंकि मैं गेम के लिए सॉकेट प्रोग्रामिंग के लिए नया हूं।

मैं चाहता भी ध्यान दें कि मैं अपने फ़्लैश खेल (Actionscript 3.0) के लिए कच्चे द्विआधारी सॉकेट का उपयोग किया जाएगा के बाद से मुझे लगता है यह पारंपरिक फ्लैश एक्सएमएल सॉकेट की तुलना में तेजी हो जाएगा।

+2

के साथ उन लोगों को वास्तव में आसान बनाने के काम के दोनों है आप विस्तार से बता सकते हैं कि तुम क्या वास्तव में "सॉकेट प्रोग्रामिंग के लिए उच्च स्तरीय पुस्तकालय" के साथ समझने के रूप में सॉकेट hight स्तर के नहीं हैं। क्या आप किसी नेटवर्क या मिडलवेयर (लाइब्रेरी) की खोज करते हैं? – tuergeist

+0

असल में पिछले कुछ महीनों में मैं अपने कुछ खाली समय को सॉकेट प्रोग्रामिंग (सामान्य रूप से) में देख रहा हूं और यह बहुत दिमागी दबदबा है और मैं वास्तव में सी में अपना सॉकेट सर्वर बनाना चाहता हूं लेकिन मैं इस खेल को बाहर करना चाहता हूं बीटा Asap करने के लिए। मेरे लिए खोज रहा है ... हाँ मेरे पास है, ऐसा लगता है कि ट्विस्ट एक नो-ब्रेनियर था लेकिन जावा के लिए मुझे यकीन नहीं है ... मैंने जावा की डिफ़ॉल्ट सॉकेट लिब का उपयोग करके कुछ छोटी क्लाइंट-सर्वर चीजों को प्रोग्राम किया है। लेकिन यह एक गेम के लिए सॉकेट सर्वर प्रोग्रामिंग से बहुत अलग था। –

+0

@ CodeJustin.com: कृपया अपने प्रश्न पर टिप्पणी न करें। आप सवाल का मालिक है। कृपया अतिरिक्त तथ्यों के साथ प्रश्न अद्यतन करें। –

उत्तर

7

अजगर के लिए एक विकल्प Concurrence रूपरेखा है। मैंने इसे हाल ही में उपयोग किया, Stackless Python के साथ, एक ऐसे माहौल को अनुकरण करने के लिए जिसमें प्रति सेकंड संभावित रूप से हजारों अनुरोध थे, जिनमें से प्रत्येक को 2 सेकंड से भी कम समय में संसाधित किया जाना था। एपीआई बहुत सरल है और अच्छी तरह से प्रलेखित है।

मैं बहुत जावा में लागू करने Netty है, जो एक JBoss परियोजना है का उपयोग कर के पास आया था।

+0

वाह, विश्वास नहीं कर सकता कि मैं पहले सहमति पर ठोकर नहीं लगा था। यह मेरे लिए एक अच्छा समाधान प्रतीत होता है (यहां तक ​​कि MySQL वर्ग में भी बनाया गया है)। दस्तावेज भी अच्छी तरह से प्रस्तुत किया गया है, धन्यवाद। अभी मैं अभी भी अधिक सुझावों के लिए खुला हूं लेकिन मैं यह देखने के लिए सहमति देखने जा रहा हूं कि मुझे यह पसंद है या नहीं। नेटी के लिए –

+0

+1, जिसे मैं वर्तमान में फ्लैश सॉकेट क्लाइंट के लिए सर्वर के रूप में उपयोग कर रहा हूं। यह एक विस्फोट है, स्पष्ट रूप से। –

+0

मैंने एक लाइब्रेरी लागू की है, क्या आप इसे देखने पर विचार करेंगे: https://github.com/czifro-development/JSocket – czifro

0

एक तरफ और दूसरी तरफ कच्चे द्विआधारी सॉकेट पर उच्च स्तर काम नहीं करेगा। क्षमा करें, लेकिन आपको सर्वर की ओर भी निम्न-स्तर पर जाना होगा।

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

+0

खैर मेरा मतलब है कि में उच्च स्तर के नामकरण सम्मेलन laymen हैं। मैं वास्तव में बेसिक सॉकेट अवधारणाओं को "जानता हूं" और जमीन से अपना खुद का सॉकेट सर्वर बनाने की उम्मीद कर रहा था, लेकिन मेरे पास उस तरह का समय नहीं है। मैं एक ऐसे समाधान को ढूंढने की उम्मीद कर रहा था जिसने मानक सॉकेट प्रक्रियाओं (जैसे टाइमआउट्स) को संभाला था और इसे सब कुछ उपयोग करने में आसान था, जिसमें अच्छे दस्तावेज हैं। यह भी एक नहीं मिल रहा है यह कम या ज्यादा मुझे पूछ अगर कोई एक अच्छा समाधान के जानता है देखें। –

+0

क्या बाद में reprogramming कुछ के साथ गलत है (मैं नहीं चाहता कि कार्यक्रम फिर से कुछ ही महीनों में सर्वर के लिए एक सॉकेट पुस्तकालय में मेरी गरीब पसंद की वजह से चाहते हैं)? इसे "आपकी गलतियों से सीखना" कहा जाता है। सीखने की प्रक्रिया का यह सब हिस्सा है। –

+0

100% से सहमत है और मुझे लगता है कि जब तक मुझे अपने एपीआई क्लाइंट पक्ष को बदलने की ज़रूरत नहीं है तो इससे कोई फर्क नहीं पड़ता। बस (मेरे हिस्से की वजह से) एक दोषपूर्ण डिजाइन के आसपास मेरे खेल के निर्माण के बारे में थोड़ा चिंतित और उसके बाद सॉकेट प्रोग्रामिंग के लिए ज्ञान यह रोशनी बाहर हो सकता है अगर मैं की मदद के बिना (खरोंच से) अपने खुद के सर्वर करने का प्रयास की मेरी कमी के साथ मिलकर एक सॉकेट लाइब्रेरी जो सभी डेटा को नए डेटा के साथ अपडेट करने जैसी प्रक्रियाओं को संभालती है। मैं जानता हूँ कि अगर खेल इस वर्ष के अंत की तुलना में मैं एक सर्वर पुनर्लेखन कर रही होगी लेकिन तैयार में जाना चाहता हूँ अतीत ले जाता है। –

0

"A Quick Guide to ActionScript 3 and Flash Programming" देखें। इसमें पाइथन सर्वर (कोड शामिल) के साथ संवाद करने के लिए सॉकेट का उपयोग करके एक्शनस्क्रिप्ट क्लाइंट कोड का एक विस्तृत उदाहरण है। कोई भी उच्च-स्तरीय पर कॉल नहीं करेगा, यह संचार के लिए मूल पायथन सॉकेट मॉड्यूल का उपयोग करता है।

(नोट: अजगर सर्वर उदाहरण है नहीं pythonic अजगर में सॉकेट का उपयोग कर के सामान्य विचार मिलने के बाद, कुछ सरल और नहीं from socket import * लिखें।)

+0

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

+0

आपका स्वागत है। संचार रणनीति की चर्चा के लिए http://stackoverflow.com/questions/1157245/creating-a-board-game-simulator-python-pygame देखें। इसे सरल रखें। – gimel

+0

फिर से धन्यवाद, यह बारी आधारित गेम के लिए क्लाइंट-सर्वर डिज़ाइन का त्वरित और गंदा भाग था। सहायक –

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