मैं निश्चित रूप से यह नहीं कह सकता कि 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/