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