2010-10-30 11 views
11

वॉरक्राफ्ट 3 या साम्राज्यों की आयु जैसे गेम में, एआई प्रतिद्वंद्वी मानचित्र के बारे में सोचने के तरीके लगभग असीमित प्रतीत होता है। नक्शे बहुत बड़े हैं और अन्य खिलाड़ियों की स्थिति लगातार बदल रही है।आरटीएस वीडियो गेम में पथदर्शी कैसे काम करता है?

इन कार्यों जैसे खेलों में एआई पथ-खोज कैसे करता है? मानक ग्राफ-सर्च विधियों (जैसे कि डीएफएस, बीएफएस या ए *) ऐसे सेटअप में असंभव प्रतीत होते हैं।

+3

अच्छा सवाल। शायद इसे http://gamedev.stackexchange.com/ पर पोस्ट करना बेहतर होगा –

उत्तर

2

यह एक सरल उदाहरण का एक सा है, लेकिन यह पता चलता है कि आप नियमों का एक गैर जटिल सेट से ऐ/गहराई pathfinding का भ्रम बना सकते हैं: Pac-Man Pathfinding

मूलतः, यह करने के लिए ऐ के लिए संभव है स्थानीय (पास के) जानकारी को जानते हैं और उस ज्ञान के आधार पर निर्णय लेते हैं।

1

A* एक आम पथदर्शी एल्गोरिदम है। यह एक लोकप्रिय गेम विकास विषय है - आपको जानकारी रखने वाली कई पुस्तकों और वेबसाइटों को ढूंढने में सक्षम होना चाहिए।

16

नमक के अनाज के साथ निम्नलिखित लो, क्योंकि मेरे पास पथदर्शी के साथ पहले व्यक्ति का अनुभव नहीं है।

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

ए * वास्तविक समय रणनीति खेल के लिए इस्तेमाल किया जा सकता है, वहीं कुछ कमियां हैं कि कोर एल्गोरिथ्म को तोड़ मरोड़ द्वारा दूर किया जा करने के लिए कर रहे हैं:

  1. ए * है बहुत धीमी गति से

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

    ग्राफ में प्रत्येक टाइल को नोड बनाने के निष्पक्ष दृष्टिकोण के बजाय, कोई भी navigation mesh भी बना सकता है, जिसमें कम नोड्स होते हैं और तेज़ी से खोजा जा सकता है - इसके लिए खोज एल्गोरिदम को थोड़ा छोटा करने की आवश्यकता होती है, लेकिन यह अभी भी कोर पर ए * हो।

  2. ए * स्थिर

    ए * एक स्थिर ग्राफ पर काम करता है, तो क्या जब परिदृश्य में परिवर्तन करना है? मुझे नहीं पता कि यह वास्तविक खेलों में कैसे किया जाता है, लेकिन मुझे लगता है कि नई बाधाओं या बाधाओं को दूर करने के लिए मार्ग बार-बार किया जाता है। शायद वे incremental version of A* (पीडीएफ) का उपयोग कर रहे हैं।

    स्टारक्राफ्ट II का प्रदर्शन करने के लिए इसका प्रदर्शन करने के लिए, this video में 7:50 पर जाएं।

  3. ए * सही जानकारी

    कई RTS खेल का एक हिस्सा है बेरोज़गार इलाके है। चूंकि आप इलाके को नहीं देख सकते हैं, इसलिए आपकी इकाइयों को यह नहीं पता होना चाहिए कि कहीं भी चलना है, लेकिन अक्सर वे वैसे भी करते हैं।एक दृष्टिकोण अनपढ़ इलाके के माध्यम से चलने को दंडित करना है, इसलिए इकाइयां अपने सर्वज्ञता का लाभ लेने के लिए अधिक अनिच्छुक हैं, दूसरा एकमात्र विवेक को दूर लेना है और बस मान लें कि अनदेखा इलाका चलने योग्य है। इसके परिणामस्वरूप इकाइयां मृत सिरों में फंसे हो सकती हैं, कभी-कभी जो खिलाड़ी के लिए स्पष्ट होती हैं, जब तक वे अंततः लक्ष्य के मार्ग का पता नहीं लगाते।

    युद्ध का धुंध इसका एक और पहलू है। उदाहरण के लिए, स्टार क्राफ्ट 2 में मानचित्र पर विनाशकारी बाधाएं हैं। यह दिखाया गया है कि आप दुश्मन के आधार पर जाने के लिए एक इकाई को ऑर्डर कर सकते हैं, और यदि आपके प्रतिद्वंद्वी द्वारा बाधा पहले से ही नष्ट हो गई है, तो यह एक अलग रास्ता शुरू कर देगा, इस प्रकार आपको वह जानकारी दे रही है जो आपको वास्तव में नहीं होनी चाहिए।

संक्षेप में: आप मानक एल्गोरिदम का उपयोग कर सकते हैं, लेकिन आपको उन्हें चालाकी से उपयोग करना पड़ सकता है। और अंतिम बोनस के रूप में: मुझे पथ के संबंध में Amit’s Game Programming Information दिलचस्प मिला है। इसमें समस्या की और चर्चा के लिए भी लिंक हैं।

0

दृश्यता ग्राफ देखें। मेरा मानना ​​है कि वे पथ खोजने के लिए उपयोग करते हैं।

संबंधित मुद्दे