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