2010-03-27 8 views
12

विशेष रूप से 2 डी गेम, और विशेष रूप से चांदी की रोशनी/wpf खेलों के लिए।एमवीवीएम गेम के लिए कैसे होगा?

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

इस मामले पर आपके विचार क्या हैं? गेम विकास के लिए एमवीवीएम पैटर्न का उपयोग करने के कुछ फायदे और नुकसान क्या हैं? प्रदर्शन के बारे में कैसे? सभी विचारों का स्वागत है।

उत्तर

11

एक शब्द में - बढ़िया!

असल में, जोश स्मिथ ने अपने स्पष्टीकरण ऐप के रूप में गेम का उपयोग करके एमवीवीएम पर एक पुस्तक प्रकाशित की। आपको जोश के काम के पहले वार्ड बेल के उत्कृष्ट (और मुफ्त) critique को पढ़ने की सलाह देते हैं।

11

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

जहां तक ​​मॉडल को विभाजित करना है, यह पता लगाने के लिए। मॉडल देखें | देखें, मुझे निम्नलिखित दृष्टिकोण लेना पसंद है:

  1. मॉडल वह सब कुछ है जिसमें प्रत्यक्ष उपयोगकर्ता इंटरैक्शन के साथ कुछ भी नहीं है या बहुत कम नहीं है। इसमें गेम नियम इंजन, एआई इत्यादि शामिल होंगे। व्यू मॉडल मॉडल के साथ अच्छी तरह से परिभाषित तरीकों से बातचीत करते हैं जहां उपयोगकर्ता या तो गेम मॉडल में क्या हो रहा है पर प्रतिक्रिया प्राप्त करता है या प्रतिक्रिया प्राप्त करता है।

  2. मैं इंटरफ़ेस के प्रत्येक प्रमुख घटक के लिए दृश्य मॉडल बनाने का प्रयास करता हूं। उदाहरण के लिए, यदि आप एक आरपीजी बना रहे थे, तो आपके पास इन्वेंटरी व्यू मॉडेल, कैरेक्टरस्टैट्स व्यू मॉडेल, वर्ल्डमैप व्यू मॉडेल आदि हो सकता है। मैं आमतौर पर उन्हें व्यक्तिगत नियंत्रण/विजेट (जैसे स्वास्थ्य संकेतक, आइटम ग्लाइफ या '+' संकेतों के स्तर के लिए नहीं बनाते) जब तक कि उनके पास एक उचित जटिल इंटरफ़ेस न हो।

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

+3

अच्छा। संख्या 3 विशेष रूप से उपयोगी लगता है। –