ओपन सोर्स कंपोनेंट-आधारित गेम या इंजन?


15

मैंने घटक-आधारित गेम डिज़ाइन के बारे में कुछ पढ़ा है, लेकिन अभी भी कुछ परेशानी हो रही है कि आप वास्तव में इसे लागू करने के बारे में क्या सोचेंगे। क्या घटक-आधारित गेम या गेम इंजन का कोई अच्छा उदाहरण है जिसे मैं इसके बारे में बेहतर महसूस करने के लिए पढ़ सकता हूं?

जवाबों:


7

व्यक्तिगत रूप से मुझे नहीं लगता कि कोई भी अच्छे उदाहरण हैं, मोटे तौर पर क्योंकि खेलों के लिए "घटक-आधारित प्रणाली" की परिभाषा इतनी शिथिल रूप से परिभाषित है कि इसका मतलब कुछ भी नहीं हो सकता है।

आपको इस उत्तर में कुछ चर्चा सहायक हो सकती है: वेब गेम में वस्तुओं के लिए एक घटक आधारित प्रणाली को कैसे लागू किया जाए

इस पूरे मामले में, दृष्टिकोण बस एक बड़े वर्ग के गेमऑबजेक्ट या अभिनेता को बदलने के लिए है जो व्यवहार को निष्पादित करने वाली वस्तुओं को रखने वाले एक सरल वर्ग में सभी व्यवहार को संभालता है। मुझे लगता है कि यह अपने आप से काम करना और अपने खेल के अनुकूल विभिन्न घटक बनाना अक्सर आगे बढ़ने का सबसे अच्छा तरीका होगा।


मैंने वह सुना। जब इस पर अच्छे संसाधन खोजने की कोशिश की गई, तो मैंने पाया कि लगभग हर व्यक्ति चीजों का वर्णन करने के लिए विभिन्न शब्दावली का उपयोग करता है। जब आप मूल संरचनाओं का अनुवाद करने में आधा समय बिताते हैं, तो अलग-अलग कार्यान्वयन की तुलना करना कठिन हो जाता है। इकाई प्रणाली, घटक प्रणाली, गेम ऑब्जेक्ट, टेम्प्लेट, असेंबली, घटक संयोजन, आदि ...
लेनिनिटी

2

यहां कुछ संसाधन पसंद कर सकते हैं कर रहे हैं:
नहीं है इस अद्भुत धागा। यह एक गेम इंजन ही नहीं है, लेकिन डिजाइन और चर्चा महान है।
एक बहुत ही इसी विषय पर StackOverflow पर एक प्रश्न ।

मूल प्रश्न का उत्तर देने के लिए, C # में एलिफेंट फ्रेमवर्क ठीक वही है जो आप चाहते हैं: इसे बंद कर दिया गया है, लेकिन कार्यान्वयन के संदर्भ में अभी भी यहां मौजूद है


1

यह साइट एक बुनियादी कार्यान्वयन में शुरू होती है।

उपरोक्त में से अधिकांश टी = मशीन के इस लेख से प्रेरित हैं

मैंने उपरोक्त दो लिंक्स से प्रेरित एक बुनियादी कार्यान्वयन में शुरुआत की। मुझे पूरा यकीन है कि मैंने घटक प्रणालियों के शुद्ध सिद्धांत से बहुत कुछ भटका दिया है, और निस्संदेह कीड़े हैं, लेकिन यदि आप कुछ सरल उदाहरणों की तलाश कर रहे हैं तो यह उपयोगी साबित हो सकता है।

Bricle (C # / XNA)

अभी यह कुछ बुनियादी संस्थाओं को लोड कर रहा है, कुछ घटनाओं को संभालता है, आदि जिन मुख्य स्थानों को आप देख रहे हैं, वे Engine.EntitySystem फ़ोल्डर और शायद PlayScreen हैं जहाँ संस्थाएँ वास्तव में बनाई गई हैं।

एक साधारण प्रकार-आधारित घटक स्टोर बनाना और यह छिपाना कि एक आम एंटिटी मैनजर के पीछे अपेक्षाकृत सीधा था।

पहली चुनौती मैं तब भागती थी जब व्यक्तिगत प्रणालियों के लिए कई घटक प्रकारों की आवश्यकता होती है (जैसे, भौतिक घटक और InputMoveable)। रिलेशनल डेटाबेस भाषा का उपयोग करने के लिए, मुझे एक JOIN क्वेरी करने का तरीका खोजना होगा। उसके लिए, मैंने मिलान घटक प्रकार के प्रश्नों से निर्मित संस्थाओं के लिए एक और संग्रह प्रकार बनाया - प्रत्येक इकाई संग्रह एक OnEntityCreate घटना में हुक करता है और जांचता है कि क्या यह मेल खाता है। अभी भी वहाँ कुछ कीड़े।

दूसरी चुनौती वास्तव में एक 'गेम ऑब्जेक्ट' का निर्माण करना था - मैंने उन्हें टेम्पलेट कहा। यहां मैं टी = मशीन के चश्मे के अनुसार शायद बहुत शुद्ध नहीं हूं, लेकिन यह काम करने लगता है। टेंपलेट्स समूह एक साथ घटक तात्कालिकता और आसान इकाई संरचना की अनुमति देते हैं (यानी, गेंद को खींचने योग्य और भौतिक है)।

आशा है कि सहायक - इकाई / घटक प्रणाली कुछ शुरुआती बाधाओं से गुजरने के लिए एक चुनौती हो सकती है।


1

एक और, मैंने उपयोग नहीं किया है, लेकिन कोड के माध्यम से थोड़ा देखा, आर्टेमिस है । अच्छी तरह से टिप्पणी की और काफी सक्रिय है। मूल रूप से जावा फ्रेमवर्क लेकिन C # / XNA में पोर्ट किया गया है।

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