डेटा-संचालित डिज़ाइन क्या है? [बन्द है]


11

मैं खेल के लिए डेटा संचालित डिजाइन को कवर करने वाले बहुत सारे लेखों को पढ़ रहा हूं। यह नीचे आने के लिए लगता है:

  • कोई हार्ड कोडिंग नहीं
  • इंजन में कोई गेम-विशिष्ट कोड नहीं
  • एआई, कटकनेस, एट वगैरह के लिए स्क्रिप्टिंग।
  • पुन: प्रयोज्य के लिए सामान्यीकरण कोड
  • घटक डिजाइन
  • प्रतिरूपकता
  • कम युग्मन
  • संपादक (डेटा, मानचित्र, स्क्रिप्ट के लिए)
  • बाहरी डेटा पुनर्प्राप्ति
  • पाठ फ़ाइलों में रखे गए ( .iniया अन्यथा)
  • डिजाइनरों द्वारा स्क्रिप्टिंग और हेरफेर के लिए संपादकों के माध्यम से डेटा को उजागर करें

अब, मेरा प्रश्न यह है कि क्या यह समझ सही है?


3
साइट पर आपका स्वागत है। आपके यहां दो प्रश्न हैं (आम तौर पर आपको प्रति पोस्ट केवल एक प्रश्न पूछना चाहिए), और "कैसे शुरू करें" के बारे में दूसरा प्रश्न ऑफ-टॉपिक माना जाता है, इसलिए मैंने इसे संपादित किया है, साथ ही साथ प्रश्न को नीचे लिखा है। यदि आप किसी चीज़ के साथ शुरुआत करने के बारे में चर्चा करना चाहते हैं, तो गेम डेवलपमेंट चैट पर जाएं

@JoshPetrie लेकिन यह सबसे महत्वपूर्ण था क्योंकि अब मैं कई साइटों पर हूं और जो भी जवाब मिला है। एक दिशा में प्रहार भी नहीं। ऐसे कुछ लोग होने चाहिए, जिन्हें इन विषयों पर थोड़ी जानकारी मिली हो।
ओमनीऑल

1
यह भी संबंधित: gamedev.stackexchange.com/questions/17331/…

1
शायद यह आपके लिए सबसे महत्वपूर्ण है, लेकिन यह यहां ऑफ-टॉपिक है ( फ़ेक देखें )। मैं भी सिर्फ सवाल बंद कर सकता था। यात्रा खेल विकास चैट या की तरह एक वास्तविक चर्चा मंच GDNet आप से पूछना करने के लिए कैसे करने के लिए मिल-शुरू कर दिया सवाल करना चाहते हैं।

1
@Vipar चैट में पॉप यदि आप बंद विषय के सवाल के साथ मदद चाहते हैं। गारंटी नहीं है कि आपको मदद मिलेगी लेकिन बहुत सारे स्मार्ट लोग वहां घूमते हैं।
क्लासिकथुंदर

जवाबों:


10

मैं कहूंगा कि यह सही नहीं है। मेरा मानना ​​है कि डेटा संचालित डिजाइन में सबसे महत्वपूर्ण विचार आपके डेटा को डेटा को संशोधित (या अपडेट) से अलग कर रहा है

तो इस तरह एक मानक ऊ गहरी पदानुक्रम से जा रहा है:

class MyCreature{
     vector position;
     void update(){ position += 1; }
}

एक अलग राज्य और प्रणाली के लिए

class CreatureState{
    vector postion;
}

class MovementSystem{
    list<CreatureState> states;
    void update() {
        for each CreatureState state in states {
            state.position += 1;
        }
}

इस समय सबसे प्रभावशाली DDD प्रतिमानों में Entity Systems हैं। देखने के लिए कुछ अच्छे संसाधन हैं:

http://gamedevrubberduck.wordpress.com/2012/12/26/a-hybrid-entity-system-component-architecture/

http://entity-systems.wikidot.com/

बेशक, सभी प्रतिमानों / विचारों के साथ एक सटीक परिभाषा नहीं है और डीडीडी से बात करते समय हर कोई एक ही विचार को नहीं समझता है लेकिन यही मैं सबसे महत्वपूर्ण बात मानता हूं।


हां मैं जुदाई वाले हिस्से का जिक्र करना भूल गया। और यह बिल्कुल वैसा ही है जैसा मैं देखना चाहता हूं। मैं केवल इतना सिद्धांत पढ़ सकता हूं। मुझे कुछ ठोस उदाहरण देखने की जरूरत है। धन्यवाद। लेखों पर भी एक नज़र डालेंगे!
ओमनीऑल

ओह इंतजार मुझे सबसे अच्छा स्पष्टीकरण मिला जो मैंने कुछ समय पहले पढ़ा था। यह पता चला कि यह मेरे द्वारा पूछे गए एक सवाल का जवाब था। gamedev.stackexchange.com/questions/48971/… : D
Roy T.

4

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

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


आप सबसे अधिक सही हैं कि मैं चीजों को उलझा देता हूं। यह ऐसा कुछ है जो मैं करता हूं। लेकिन मैं अपने दिमाग को लपेट नहीं सकता कि इसे कैसे शुरू किया जाए।
ओमनीऑल

1
मैंने GDNet पर आपके प्रश्न का उत्तर पोस्ट किया । मुद्दे की जड़ यह है: इतनी मेहनत करना बंद करो, जो आप चाहते हैं उसका एक सरल पहलू चुनें और इसके साथ एक छोटा खेल बनाएं।

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