मैं XNA में मिनी-गेम का एक संग्रह कैसे बना सकता हूं जहां उपयोगकर्ता मिनीगेम्स के पैक डाउनलोड कर सकता है और मुख्य .exe उन्हें बिना बदले में चला सकता है?


12

मैं अभी XNA में पीसी गेम बना रहा हूं। यह वास्तव में मिनी-गेम का एक संग्रह है (इस समय 3 मिनी-गेम हैं) हालांकि मैं डाउनलोड करने योग्य 'पैक' में अधिक बनाने और जोड़ने की योजना बना रहा हूं।

मेरा सवाल है, इसे प्राप्त करने का सबसे अच्छा तरीका क्या है?

वर्तमान में मेरे विचार हैं:

  • एक 'गेम' इंटरफ़ेस बनाएँ
  • इस इंटरफ़ेस पर गेम बनाएँ लेकिन उन्हें .dll के रूप में बनाएँ
  • मुख्य .exe फ़ाइल को एक निर्देशिका स्कैन करें और रनटाइम में .dlls में लोड करें।

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

जवाबों:


5

खिड़कियों पर, आप केवल एक असेंबली (डीएल) खोल सकते हैं और प्रकारों को आयात कर सकते हैं और तरीकों को निष्पादित कर सकते हैं। असेंबली क्लास के दस्तावेज़ देखें ।

Xbox 360 पर आपके पास System.Reflection तक पहुँच नहीं है। यहां आपको एक्सबीएलए स्टोर एपीआई पर भरोसा करना चाहिए। मुझे यकीन नहीं है कि यह कार्यक्षमता XBLIG अनुप्रयोगों के लिए कितनी उपलब्ध है।


हाँ, मुझे पता है कि मैं सिर्फ .dlls लोड कर सकता हूं (क्योंकि यह एक पीसी गेम है) लेकिन मैं सोच रहा हूं कि क्या यह करने का सबसे अच्छा तरीका है, या अगर यह कुछ स्थापित सर्वोत्तम अभ्यास के खिलाफ जा रहा है
एंड्रयू थोरपे

+1 यह प्लगइन्स लोड करने का मानक तरीका है। प्लगइन वास्तुकला देखो; FYI करें, यह एक बहुत अच्छा समाधान है।
ashes999

1

चूंकि आप विंडोज के लिए एक गेम बना रहे हैं, आप @Ranieri के अनुसार पूरे ढांचे तक पहुंच सकते हैं। आपकी वास्तुकला ठोस लगती है; हालाँकि, आप MEF , प्रबंधित एक्स्टेंसिबिलिटी फ्रेमवर्क में जाँच कर सकते हैं । यह है कि वर्कफ़्लो आप अधिक सुव्यवस्थित रूपरेखा कर सकते हैं। मैंने खुद इसका इस्तेमाल नहीं किया है, लेकिन मैंने इसके बारे में अच्छी बातें पढ़ी हैं।

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