ग्राफिक्स के बिना XNA गेम चलाएं


11

अगर कुछ भी प्रदर्शित करने के साथ XNA गेम चलाना है तो आश्चर्य होगा।

मेरे पास एक काम करने वाला खेल है जो क्लाइंट सर्वर सेटअप में चलता है जहां एक खिलाड़ी मेजबान है और अन्य लोग उसके खेल से जुड़ सकते हैं।

मैं अब बिना ग्राफिक्स कार्ड वाले एक डिकेड सर्वर पर होस्ट के रूप में गेम को चलाने में सक्षम होना चाहता हूं, मूल रूप से मैं बिल्कुल भी ड्रॉ () तर्क नहीं चलाना चाहता।

क्या मुझे वास्तव में पूरे खेल से गुजरने और XNA के सभी संदर्भों को हटाने की आवश्यकता है?

लोगों ने यह कैसे किया है?

संपादित करें : इसका कारण यह है कि मैं ऐसा करना चाहता हूं क्योंकि मेरे पास गेम में काम करने वाला क्लाइंट सर्वर सेटअप है और मैं एक अलग "हेडलेस" सर्वर प्रोग्राम नहीं बनाना चाहता।


आप सिर्फ कोड क्यों नहीं लिख सकते Drawहैं if (headless) { return; }?
as999999

1
@ asher999 यकीन नहीं होता कि यह पूरी तरह से ड्रॉ और ग्राफिक्स लॉजिक को गेम से हटा देगा। एक वर्चुअल सर्वर में कोई वास्तविक ग्राफिक्स एडेप्टर नहीं हो सकता है।
JensB

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

जवाबों:


10

बस एक सामान्य C # प्रोजेक्ट बनाएं और XNA बायनेरिज़ को शामिल करें। यह आपको XNA डेटा प्रकार और फ्रेमवर्क विधियों तक पहुंच प्राप्त करेगा। मेरा खेल ऐसा करता है और यह त्रुटिपूर्ण काम करता है।


1
मैं अनुमान लगा रहा हूं कि आपने एक रैपर लिखा है जो एक्सएनए की तरह काम करता है जो आपके लिए अपडेट जैसे आवश्यक तरीकों को बुला रहा है? मैं इसे एक धन्यवाद देता हूँ, धन्यवाद।
JensB

2

जवाब है: ऐसा मत करो। यदि आपको कोई खेल बनाने की आवश्यकता नहीं है - अर्थात; आप XNA ऑफ़र की चीज़ों का लाभ लेना नहीं चाह रहे हैं, ऐसा क्यों करें? आपको वास्तव में सॉफ्टवेयर के एक कस्टम टुकड़े को विकसित करने की तलाश में होना चाहिए जो उस गेम को सफलतापूर्वक अनुकरण कर सकता है जिसे आप खेलना चाहते हैं - आमतौर पर किसी प्रकार का कंसोल सिस्टम। यदि आप अधिक विवरण देते हैं, तो मैं अपने उत्तर को कम सामान्य प्रतिक्रिया के साथ अपडेट करूंगा।


1
मैं आपको एक कारण दे सकता हूं: इकाई परीक्षण। अक्सर आप लोड या ड्रॉ और ग्राफिक्स के बिना एक टुकड़ा या कोड के अनुभाग का परीक्षण करना चाहते हैं।
स्टीफन टिएरनी

3
@StephenTierney मैं आपको एक अन्य कारण दे सकता हूं: वह कोशिश नहीं कर रहा है, वह गेम सर्वर (एक समर्पित मशीन पर) चलाने की कोशिश कर रहा है। कृपया प्रश्न को दोबारा पढ़ें और अपने डाउनवोट को वापस लेने पर विचार करें।
वॉन हिल्ट्स


1

शीर्षकहीन सुझाव पर निर्माण करने के लिए, आप केवल DLL के संदर्भों को शामिल कर सकते हैं और बिना किसी डिफ़ॉल्ट गेम लूप का उपयोग किए उनका उपयोग कर सकते हैं। इसके उदाहरणों के लिए आप रचनाकारों के क्लब में winforms ट्यूटोरियल श्रृंखला को देख सकते हैं: http://xbox.create.msdn.com/en-us/education/catalog/sample/winforms_series_2

यदि आप और भी अधिक फैंसी प्राप्त करना चाहते हैं, तो आप पूरे एक्सएनए गेम लूप को अपने कस्टम एक के साथ बदल सकते हैं, और पूरी प्रक्रिया को नियंत्रित कर सकते हैं। इस बारे में अधिक जानकारी के लिए /programming/6361691/custom-xna-game-loop-in-windows


1

यदि आप XNA प्रोजेक्ट के आउटपुट प्रकार को "कंसोल एप्लिकेशन" में बदलते हैं, तो एप्लिकेशन स्टार्ट-अप पर खाली कंसोल को खोलेगा, बिना वास्तविक गेम की विंडो खोले। यह आपके लिए पूरा करने के लिए उपयोगी हो सकता है, क्योंकि आप परीक्षण करना चाहते हैं, और आप बहुत आसानी से कंसोल को डिबग विंडो के रूप में उपयोग कर सकते हैं।


1

आप अपडेट को ओवरराइड करने और कॉल आकर्षित करने और बस वापस लौटने पर भी विचार कर सकते हैं।

इसके अलावा, अपने मुख्य गेम क्लासेस में ग्राफिक्सदेविस को न बुलाएं, जो कि आपके सर्वर के रूप में काम करने वाले गेम पर इंस्टेंट होने से xna विंडो को रोकना चाहिए।

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