क्या XNA फ्रेमवर्क सर्वर साइड प्रोग्रामिंग के लिए उपयुक्त है?


11

मैं एक पाठ आधारित MUD बनाने के लिए देख रहा हूं, इसलिए XNA फ्रेमवर्क के बहुत सारे तत्व मेरी आवश्यकता के अनुसार उपयुक्त लगते हैं। विशेष रूप से सामान्य गेम लूप, नेटवर्किंग, आदि जैसी चीजें। ऐसा लगता है कि एक्सएनए कसकर यूआई और ऑडियो के साथ एक इंटरैक्टिव वातावरण में युग्मित है, इसलिए मुझे यकीन नहीं है कि यह जाने का सही तरीका है।

क्या केवल इस प्रकार के पहलुओं को फिर से बनाना आसान होगा, XNA फ्रेमवर्क को जो मैं चाहता हूं उसे मोड़ने का प्रयास करूं, या इस प्रकार के काम के लिए एक बेहतर ढांचा है?

जवाबों:


5

मुझे नहीं लगता कि XNA फ्रेमवर्क आपको टेक्स्ट आधारित गेम के सर्वर साइड के लिए बहुत उपयोग की पेशकश करेगा, नहीं। आपको उस उपयोग के मामले में मानक .NET फ्रेमवर्क क्लास लाइब्रेरी को देखना चाहिए।

लेकिन प्रश्न को थोड़ा चौड़ा करना, हालाँकि XNA फ्रेमवर्क वास्तव में क्लाइंट 2 डी और 3 डी गेम के विकास के लिए अभिप्रेत है, 2 डी या 3 डी गेम के सर्वर-साइड पर उनके कुछ हिस्सों का उपयोग करने का कारण हो सकता है। सर्वर पर ग्राफिक्स इंजन के कुछ हिस्सों का फिर से उपयोग करना आम है क्योंकि सर्वर को दृश्यता और टकराव परीक्षण जैसी चीजों को करने की आवश्यकता होती है, जितना क्लाइंट करता है। इस परिदृश्य में, यदि आपके इंजन ने XNA से गणित पुस्तकालय का उपयोग किया है, तो आपको इसे अपने सर्वर कोड में भी लिंक करना होगा।


3

यदि आप C # का उपयोग कर रहे हैं, तो आपको नेटवर्किंग परत को हटाने के लिए WCF का उपयोग करने पर विचार करना चाहिए। एक MUD में नेटवर्क ट्रैफ़िक का एक बहुत कुछ नहीं होगा, अपेक्षाकृत बोलना, इसलिए इस मार्ग पर जाने से आपके लिए चीजें बहुत आसान हो सकती हैं। मैं एक बारी-आधारित रणनीति खेल के लिए WCF का उपयोग कर रहा हूं, और यह मेरे लिए बहुत अच्छा काम कर रहा है।


1
आम तौर पर मैं सहमत होता हूं, लेकिन WCF सीधे telnetकनेक्शन का समर्थन नहीं करता है । नियमित पाठ-आधारित MUDs के लिए, उपयोगकर्ताओं को telnetसर्वर के लिए अनुमति देना एक दिया गया है।
एजेंट_9191

@ Agent_9191 आपके लक्ष्यों के आधार पर, यह समझ में आ सकता है कि telnetइंटरफ़ेस एक अधिक मजबूत एपीआई के ऊपर एक परत है, जैसे कि WCF पर निर्मित।
कोडी ब्रोशर

WCF विलंबता का परिचय नहीं देगा, या क्या आप एक कस्टम बाइंडिंग का उपयोग करेंगे जो कच्चे सॉकेट की बात करता है?
नैट

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

1

आप एक्सएनएएनए मार्ग पर जा सकते हैं और बस उन विशेष तत्वों का उपयोग कर सकते हैं जिन्हें आप चाहते हैं (ऑडियो, नेटवर्किंग, आदि); लेकिन, यह आपके प्रोजेक्ट की जटिलता को बढ़ा रहा है और कोडबेस की आपकी "तत्काल समझ" को कम कर रहा है।

मूल रूप से, जैसा कि आप अधिक मिडिलवेयर जोड़ते हैं, आपके कोड के तरीके का आपका ज्ञान वास्तव में कम हो रहा है - जब तक कि आप मिडलवेयर के कार्यान्वयन में नहीं आते हैं। जब आप खुद से दूरी बनाते हैं, तो आप दक्षता, क्षमता और समझ खो देते हैं।

इसलिए, जैसा कि ऊपर कहा गया है, आपके लिए C # और उपयुक्त गैर-XNA लाइब्रेरीज़ का उपयोग करना कहीं अधिक लाभदायक होगा।

यदि आप अपने स्वयं के संपादन के लिए ऐसा कर रहे हैं, तो आप अपना खुद का रोल कर सकते हैं, जहां आप इस क्षेत्र में रुचि रखते हैं - आप इस तरह से अधिक सीखेंगे।

इसका लाभ उठाएं! मज़े करो!


1

यह काफी हद तक आपकी आवश्यकताओं पर निर्भर करता है।

यदि आप ऑडियो का समर्थन करने में रुचि रखते हैं, तो मित्र को आमंत्रित करता है, एट cetera की तुलना में मेरा मानना ​​है कि XNA जाने का रास्ता है।

नेटवर्किंग के लिए XNA का उपयोग करने के लिए आपके द्वारा सामना की जाने वाली प्रमुख सीमा प्रति गेम 32 खिलाड़ियों की खिलाड़ी सीमा है।

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

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


-1

मैं "स्क्रैच से बनाएं" कहने की ओर झुकाव रखता हूं, लेकिन यह सिर्फ एक आंत की भावना है जो सी # और एमयूडी कोड के साथ अलग से काम करने पर आधारित है। आपके पास अधिक नियंत्रण होगा और जो भी आप XNA से उपयोग करने में सक्षम हो सकते हैं, अपने स्वयं के संस्करणों को रोल करने से अधिक सीखेंगे।

किसी भी कारण से आप मौजूदा MUD ​​इंजन का उपयोग नहीं कर रहे हैं, कम से कम संदर्भ के लिए?


एक डिग्री करो जो मैं संदर्भ के लिए एक मौजूदा इंजन का उपयोग कर रहा हूं। मैं मौजूदा सी बेस से SMAUG कोड बेस को C # पोर्ट करने का प्रयास कर रहा हूं। तो फीचर सेट को ज्यादातर परिभाषित किया गया है, यह सिर्फ C # में काम कर रहा है।
एजेंट_9191
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.