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