खेल की तरह एक Warcraft 3 में बाधाओं के साथ pathfinding


10

टाइल आधारित नक्शे पर ए * खोज पर विचार करें। एक सीधा फॉरवर्ड कोड होगा: यदि उस सेल के अंदर एक यूनिट है, तो यह पहुंच से बाहर है, यह ठीक है।

लेकिन नक्शा संकल्प मुद्दा है। जब मैं Warcraft 3 में देखता हूं, तो राक्षसों और संरचनाओं में अलग-अलग त्रिज्या होती है, और आप बहुत करीब से चल सकते हैं, जो वेक्टर आधारित की तरह अधिक है, यह कैसे लागू किया गया था?

इसके अलावा, Warcraft 3 की तरह पथ खोजने के एल्गोरिथ्म के साथ चलती बाधाओं के टकराव का पता लगाने के लिए मानक समाधान क्या है?


"वेक्टर-आधारित" का क्या अर्थ है?
जकौरा

जवाबों:


7

मैं निश्चित रूप से यह नहीं कह सकता कि WC3 डेवलपर्स द्वारा किस तरह का दृष्टिकोण इस्तेमाल किया गया था, लेकिन यह बहुत हद तक Hierarchical Annotated A * जैसा दिखता है। WC3Editor में परिभाषित इकाई त्रिज्या का उपयोग 3D मॉडल स्केलिंग के लिए किया गया था, लेकिन पाथफाइंडिंग के लिए वास्तविक इकाई का आकार असतत था, शायद UnitSize = (int) (UnitRadius / 10) जैसा कुछ। यह वेक्टर-आधारित नहीं था, यह सुनिश्चित है।

मान लीजिए कि उच्च-रिज़ॉल्यूशन नोड ग्रिड बनाने के लिए बहुत सारे मार्ग नोड हैं। घोल जैसी सरल इकाई का आकार 2 होता है, इसलिए इसे कहीं ग्रिड में रखने के लिए हमें एक दूसरे के पास 4 मुक्त पथ नोड्स की आवश्यकता होती है। एक मौत नाइट हीरो 3 के आकार के साथ थोड़ा बड़ा होता है, जिसमें कुल 9 मार्ग होते हैं। अब हम एक साथ 2 नोड-वाइड स्पेस छोड़ते हुए 2 जिगगुरेट्स को जगह देते हैं, और दूसरी तरफ एक घोल और एक मौत नाइट भेजते हैं। घोउल दो ज़िगुरेट्स के बीच से गुजरने में सक्षम होगा, जबकि मृत्यु शूरवीर को चारों ओर घूमना होगा। यह कैसे निर्धारित किया जा सकता है?

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

आगे के विवरण के लिए आप इस लेख को देख सकते हैं:

http://harablog.wordpress.com/2009/01/29/clearance-based-pathfinding/


4

यह पथरीकरण क्षेत्र AKA नेविगेशन मेश बनाने के लिए टेसलेशन का उपयोग करेगा। यह लेख पूर्ण आरेखों के साथ अवधारणा की व्याख्या करता है।

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

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