ग्राफ को सीन करना है या ग्राफ को सीन नहीं करना है?


10

मैं अपने खेल में एक दृश्य ग्राफ को लागू करने या नहीं करने के बारे में एक निर्णय के साथ संघर्ष कर रहा हूं। मेरे पास कुछ उपयोग के मामले हैं जो इस तरह के उपकरण के लिए कॉल करते हैं, लेकिन मैं कुछ कार्यान्वयन विवरणों के माध्यम से प्राप्त करने में सक्षम नहीं हूं।

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

सबसे पहले, मैं एक अच्छे उपयोग के मामले का वर्णन करूँगा। मैं एक बॉस रखना चाहूंगा जो कई असतत भागों से बना है, जिनमें से प्रत्येक को स्वतंत्र रूप से क्षतिग्रस्त / नष्ट किया जा सकता है। उदाहरण के लिए, मेरे पास एक बॉस हो सकता है जिसके पास एक हाथ है जो मालिक इकाई के बाकी हिस्सों से स्वतंत्र रूप से क्षति प्राप्त कर सकता है। जब हाथ नष्ट हो जाता है, तो बॉस के कंधे पर स्थित एक अग्नि कण प्रभाव संकेत कर सकता है कि हाथ अब नष्ट हो गया है।

जैसा कि है, मैंने इस तरह की यौगिक वस्तुओं को एक साथ रखने के लिए अपने भौतिकी इंजन में बाधाओं के साथ ऐसी समस्याओं को हल करने का प्रयास करने का निर्णय लिया है। ऐसा एक अवरोध 0 डिग्री की स्वतंत्रता प्रदान करता है और अनिवार्य रूप से एक परिवर्तन मैट्रिक्स है। यह वास्तव में एक समस्या को दरकिनार करने का एक प्रयास है जिसने अंततः मुझे नीचे वर्णित पहले स्थान के दृश्यों के ग्राफ़ से दूर कर दिया।

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

हालांकि, ऊपर वर्णित एक की तरह उपयोग किए गए मामलों, मुझे लगता है कि मूल स्थान में 'काम' करने में सक्षम होना बहुत महत्वपूर्ण हो जाएगा, और बाधाओं के उपयोग के माध्यम से इन रिश्तों को बनाए रखने के लिए मेरे भौतिकी इंजन को मजबूर करने की कोशिश समस्याग्रस्त होने जा रही है।

ऊपर वर्णित उपयोग के मामले और विधेय को देखते हुए, क्या मुझे एक वस्तु से दूसरी वस्तु में परिवर्तन पारित करने के लिए ग्राफ संरचना का उपयोग करना चाहिए? यदि हां, तो मेरे भौतिकी इंजन को नए स्थानों की गणना कैसे करनी चाहिए और विभिन्न स्थानों में वस्तुओं के लिए चौराहे परीक्षण करना चाहिए?

जवाबों:


11

क्या आपने वास्तव में एक पदानुक्रमित ग्राफ की कोशिश की है और प्रदर्शन को मापा है?

क्या आपने यह देखने के लिए सरल भौतिकी इंजनों की जांच की है कि वे समस्या को कैसे संभालते हैं, यहां तक ​​कि वस्तुओं के बीच एक 2 डी इंजन भी आपको एक सिद्ध दिशा में मार्गदर्शन करने में मदद करेगा।

मैं आपके भौतिकी को कई स्थानों पर चलाने की कोशिश नहीं करूंगा, जटिलता कठिन होगी। भौतिक विज्ञान को विश्व अंतरिक्ष में चलाएं और स्थानीय अंतरिक्ष वस्तुओं को विश्व अंतरिक्ष और वापस करने के लिए अपने पदानुक्रम के परिवर्तनों को बनाने के लिए कार्यक्षमता जोड़ें। माता-पिता की वस्तु के सापेक्ष आपके अवरोध, आवश्यकता के स्थानीय स्थान पर होने चाहिए।

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


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

मुझे लगा कि अगर समय की समस्या थी, तो एक भौतिकी पुस्तकालय का उपयोग करना तेज होगा, एक टन डिबगिंग समय को बचाने के लिए। यदि आप केवल 2D कर रहे हैं तो box2d.org शायद? मैंने "और पीछे" का सुझाव दिया क्योंकि यह सिर्फ एक उलटा है, जैसे आपने अनुमान लगाया है। कुछ बिंदु पर आप शायद विश्व अंतरिक्ष में कुछ लेना चाहते हैं और इसे किसी अन्य मॉडल के साथ जोड़ सकते हैं, जिसकी आवश्यकता होगी।
पैट्रिक ह्यूजेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.