paint-brush
AI गेम डेवलपर क्या करते हैं और कैसे बनें?द्वारा@aleksandrpindyk
1,223 रीडिंग
1,223 रीडिंग

AI गेम डेवलपर क्या करते हैं और कैसे बनें?

द्वारा Aleksandr Pindyk1m2022/06/07
Read on Terminal Reader
Read this story w/o Javascript

बहुत लंबा; पढ़ने के लिए

अलेक्सांद्र पिंडिक कीव में वारगैमिंग स्टूडियो में एआई टीम के लीड इंजीनियर हैं। वह सबसे लोकप्रिय ऑनलाइन गेम - टैंकों की दुनिया में से एक के लिए एआई (कृत्रिम बुद्धिमत्ता) विकसित कर रहा है। खेल के विकास में एआई जटिलता में भिन्न होता है क्योंकि गेमिंग अनुभव के कई पहलू हैं जिन्हें कृत्रिम बुद्धिमत्ता की मदद से सहायता प्रदान की जा सकती है।

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - AI गेम डेवलपर क्या करते हैं और कैसे बनें?
Aleksandr Pindyk HackerNoon profile picture

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


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


खेल जहां एआई का लक्ष्य मानव खिलाड़ी को हराना है


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


इन दो क्लासिक खेलों के अलावा, पोकर जैसे कार्ड गेम और StarCraft और DOTA 2 जैसे प्रतिस्पर्धी खेलों में एक समान दृष्टिकोण के साथ प्रयोग जारी हैं। Google और OpenAI के कई वैज्ञानिक और प्रोग्रामर इसे बनाने पर काम कर रहे हैं। हालाँकि ये सबसे अधिक संभावना एक क्लाउड समाधान होगा क्योंकि कृत्रिम बुद्धिमत्ता को प्रशिक्षित करने के लिए बहुत सारे संसाधनों की आवश्यकता होती है।

खेल के विकास में यह दृष्टिकोण इसकी जटिलता और परस्पर विरोधी लक्ष्यों के कारण उचित नहीं है जिसके लिए AI का उपयोग किया जाता है।


इन-गेम विकास में, लक्ष्य आमतौर पर खिलाड़ी को किसी भी कीमत पर हराना नहीं होता है। और सर्वर क्षमताओं के बारे में मत भूलना। इस दृष्टिकोण का एक और नुकसान नए यांत्रिकी को शुरू करने के बाद एआई को फिर से प्रशिक्षित करने की आवश्यकता है।


पीवीपी गेम्स

ये खेल हैं, जिनमें से मुख्य चक्र खिलाड़ियों या टीमों का एक दूसरे के साथ टकराव (खिलाड़ी बनाम खिलाड़ी) है। किसी को आश्चर्य हो सकता है कि इस परिदृश्य में कृत्रिम बुद्धिमत्ता की क्या भूमिका है? लेकिन ऐसे कई क्षेत्र हैं जहां ऐसे खेलों में AI का उपयोग किया जाता है:


  • शुरुआती के लिए बॉट

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


  • कोई प्रोजेक्ट लॉन्च करना या नए गेम क्षेत्र खोलना

    PUBG Mobile ने लॉन्च के वक्त इस तरह की ट्रिक का इस्तेमाल किया था। जब 100 लोगों की टीमों को इकट्ठा करना असंभव था, तो बॉट्स ने खुद को युद्ध में फेंक दिया। बैटलफील्ड 2042 का 128-खिलाड़ी मोड 64 विरोधियों के साथ बॉट का उपयोग करता है। जब सर्वर अलग-अलग समय क्षेत्रों के साथ एक बड़े क्षेत्र को कवर करता है, तो बॉट दूरस्थ क्षेत्रों के लिए ऑनलाइन ड्रॉडाउन को सुचारू कर सकते हैं। उदाहरण के लिए, जब एक सर्वर यूरोप और एशिया को कवर करता है।


  • प्रशिक्षण मोड

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


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


पीवीई गेम्स

इन खेलों के लिए मुख्य चक्र में, खिलाड़ी की बातचीत पर्यावरण और एआई (खिलाड़ी बनाम पर्यावरण) के साथ होती है। ये विशुद्ध रूप से एकल-खिलाड़ी ऑफ़लाइन गेम (विचर 3) और ऑनलाइन पीवीई (जेनशिन इम्पैक्ट) दोनों हो सकते हैं, साथ ही पीवीपी गेम्स (टैंकों की दुनिया में हैलोवीन के लिए मिर्नी -13) में विशेष कार्यक्रम और मोड भी हो सकते हैं। ऐसे खेलों में AI का लक्ष्य किसी भी कीमत पर खिलाड़ी को हराना नहीं होता। इसके विपरीत भी। एक उत्कृष्ट गेम डिज़ाइनर ने कहा: "एआई का मुख्य लक्ष्य खूबसूरती से हार मान लेना है।" ताकि एक मानव खिलाड़ी जीत से सकारात्मक भावनाएं प्राप्त कर सके, इस मामले में, एआई खेल की जटिलता को स्थापित करने के तत्वों में से एक है।


दुश्मनों की संख्या, उनकी "मोटाई" और खेलने की क्षमता के बीच संतुलन बनाकर, आप किसी व्यक्ति के लिए जटिलता और रुचि का सही स्तर बना सकते हैं। साथ ही, खेल के आधार पर, AI बॉट के दृष्टिगत तार्किक व्यवहार का महत्व बढ़ेगा या घटेगा। गेन्शिन इम्पैक्ट जैसे खेलों में, बॉट सिर्फ तोप के चारे हैं, और खिलाड़ी हमेशा इस बात पर ध्यान नहीं देते हैं कि वे कितने तार्किक व्यवहार करते हैं।


बॉट्स का उपयोग करते समय एक अन्य विकल्प साधारण सहयोगियों और खिलाड़ी क्षमताओं के लिए है। उदाहरण के लिए, DOTA 2 में मॉब बहुत ही आदिम हैं और उनका केवल एक ही लक्ष्य है - आगे बढ़ना और दुश्मन पर हमला करना। जब गेम सिंगल-प्लेयर और ऑफलाइन होता है, तो एआई अक्सर क्लाइंट में प्लेयर के लिए स्थानीय रूप से काम करता है। टैंकों की दुनिया जैसे खेलों के मामले में, एआई और पीवीई मोड सर्वर पर काम करते हैं। यह आवश्यक है क्योंकि खेल ऑनलाइन है, और सर्वर सभी क्रियाओं को नियंत्रित करता है। यह CPU और RAM संसाधनों को सीमित करता है जो AI उपयोग कर सकता है।


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


एक उपकरण जो खेल के विकास में मदद करता है

गेमप्ले के अलावा, आर्टिफिशियल इंटेलिजेंस कई क्षेत्रों में खेल के विकास में सहायता करता है:


  • स्तर डिजाइन और परीक्षण - उदाहरण के लिए, बॉट पूरे स्तर पर चल सकते हैं या ड्राइव कर सकते हैं और इस तरह स्तर ज्यामिति के डिजाइन में अगम्य क्षेत्रों, जाम और अन्य बारीकियों को प्रकट कर सकते हैं।


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


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


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


खेलों में AI कैसे काम करता है

हमने विचार किया है कि गेम एआई गेम के विकास में कैसे मदद करता है, और अब हम विचार करेंगे कि यह कैसे काम करता है और इसके विकास में किन तरीकों का उपयोग किया जाता है।


AI एक चक्र में काम करता है: Sense >> Think >> अपने लक्ष्यों को प्राप्त करने के लिए कार्य करें। जब भी पर्यावरण के बारे में नई जानकारी सामने आती है, निर्णय लेना असंभव हो जाता है, या क्रिया का निष्पादन पूर्ण/बाधित हो जाता है, एआई सेंस >> थिंक >> एक्ट चक्र के एक नए दौर में प्रवेश करता है।

आइए AI क्रिया चक्र के प्रत्येक प्रमुख चरण को देखें।


जानकारी का संग्रह (सेंस)

पहला कदम। एआई (एजेंट या बॉट) कोई भी निर्णय लेने के लिए पर्यावरण के बारे में जानकारी एकत्र करता है। उदाहरण के लिए, यह विरोधियों और सहयोगियों के बारे में जानकारी हो सकती है। उनकी स्थिति, स्थिति, उपकरण आदि।


निर्णय लेना (सोचना)

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


निर्णय वृक्ष - मजाक में, आप इसे "अगर" संचालित विकास कह सकते हैं। AI बनाने का सबसे आसान तरीका यह है कि यह कई "if-then" चेक बनाता है। इसे एक ऐसा तरीका भी कहा जा सकता है जो बाहरी घटनाओं पर तुरंत प्रतिक्रिया करता है। इस तरह के चेक से, एक पेड़ बनाया जाता है नोड्स के माध्यम से कि एआई एजेंट तब तक गुजरता है जब तक उसे एक नोड नहीं मिल जाता है जिसमें एक क्रिया होगी। आमतौर पर, सूचना एकत्र करने और विश्लेषण के चरणों को एक ब्लॉक में जोड़ दिया जाता है और आमतौर पर एक "अगर" परीक्षण की स्थिति होती है। इस दृष्टिकोण में, यदि चेक परिणाम "गलत" है, तो अगली जांच में संक्रमण और कार्रवाई का निष्पादन दोनों संभव हैं।



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



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



व्यवहार वृक्ष - यह राज्य मशीनों के लिए एक सुविधाजनक ऐड-ऑन है। यह आपको राज्य प्रबंधन को राज्य मशीनों के लिए स्वयं निकालने की अनुमति देता है। इस प्रकार, हम परिस्थितियों का एक पेड़ बना सकते हैं जिसके द्वारा हम एआई एजेंट के लिए राज्य मशीनों को स्विच करेंगे।





  • लक्ष्य-उन्मुख व्यवहार - यह एक अवधारणा है जो बॉट्स को खेलने की अनुमति देती है, एआई एजेंट के लिए सबसे उपयुक्त भूमिका और लक्ष्य पर ध्यान केंद्रित करती है और इस पर निर्भर करती है कि किस व्यवहार वृक्ष पर काम करना है। वह व्यवहार वृक्ष बॉट के विभिन्न राज्यों में संक्रमण और क्रियाओं के निष्पादन के लिए शर्तों को निर्धारित करता है।


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


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


कार्रवाई (अधिनियम) - अंतिम चरण। यह कार्य का कार्यान्वयन है। आमतौर पर, इसमें एक रास्ता खोजना और रास्ते पर आगे बढ़ना, शूटिंग को लागू करना, कवर लेना आदि शामिल हैं।


तो, AI डेवलपर क्या करता है? मुख्य कार्य सेंस >> थिंक >> एक्ट चक्र को लागू करना है। एआई डेवलपर अन्य टीम के सदस्यों के साथ मिलकर काम करता है क्योंकि एआई व्यवहार एल्गोरिदम का कार्यान्वयन और अनुकूलन प्रोग्रामर, गेम डिजाइनर और क्यूए का संयुक्त कार्य है। आइए फिर से एआई चक्र से गुजरते हैं लेकिन डेवलपर के दृष्टिकोण से।


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


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


साथ ही, कुछ जानकारी स्थिर हो सकती है। उदाहरण के लिए, टैंकों की दुनिया में, हमने मानचित्र पर डेटा की कई परतें बनाई हैं। पूरे नक्शे में बिंदु से बिंदु तक शूटिंग के लिए एक परत जिम्मेदार है। यह आपको यह समझने की अनुमति देता है कि कोई स्थिति कितनी सुरक्षित है या मानचित्र के किन क्षेत्रों को इस स्थान से नियंत्रित किया जा सकता है।


दूसरी परत आपको बताती है कि पता लगाने से क्षेत्र कितनी अच्छी तरह छिपा हुआ है, जो आपको यह समझने की अनुमति देता है कि क्या वे झाड़ियाँ एक टोही टैंक के लिए अच्छी हैं या नहीं। दूसरी परत नवमेश है, जो बॉट्स को नक्शे के चारों ओर घूमने की अनुमति देती है। यह पहले से बनाए गए डेटा का केवल एक हिस्सा है, और इसके अलावा, हम पूर्व-गणना भी कर सकते हैं। उदाहरण के लिए, हम न केवल आश्रयों का एक नक्शा स्टोर कर सकते हैं बल्कि यह भी कि वे किन दिशाओं की रक्षा करते हैं।


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


निर्णय लेना (सोचना) - डेवलपर आमतौर पर बॉट व्यवहार के तर्क को अपने दम पर लागू नहीं करता है। वह गेम डिजाइनर के साथ मिलकर ऐसा करता है।


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


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


टैंकों की दुनिया में हमारे पास एक अजीब मामला था जब हमने तोपखाने के लिए एक पारंपरिक टैंक के तर्क का उपयोग करने का प्रयास करने का फैसला किया, जिसे तोपखाने की तरह शूट करने की क्षमता के लिए समायोजित किया गया था। हमने एक नियमित लड़ाई खेली जिसमें हमारे क्यूए ने यह साबित करने का फैसला किया कि वह बॉट्स से बेहतर खेलता है (वास्तव में, वह करता है, लेकिन सब कुछ इतना आसान नहीं है)।


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



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


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


डेवलपर्स ऐसे सिस्टम भी बना रहे हैं जो AI को गेम को विकसित करने में मदद करते हैं। आप स्तर के डिजाइनरों के लिए एक टूलकिट बना सकते हैं जो आपको स्तर से बॉट्स को जल्दी से व्यवस्थित करने और उनके लिए परिदृश्य लक्ष्य निर्धारित करने में सक्षम करेगा।


उदाहरण के लिए, पूरे नक्शे को देखें और जांचें कि पासिंग क्षमता के साथ सब कुछ ठीक है या नहीं। क्यूए के लिए, अक्सर ऐसे उपकरण बनाना आवश्यक होता है जो आपको बॉट्स का उपयोग करके गेम के अलग-अलग सबसिस्टम की जांच करने की अनुमति देते हैं।


टैंकों की दुनिया में, हम एआई का उपयोग यह अनुकूलित करने के लिए करते हैं कि एआई मानचित्र पर कैसे खेलता है। ऐसा करने के लिए, हमने एक सांख्यिकी संग्रह उपकरण बनाया है। इसके बाद, हम नक्शा बदलते हैं, जैसे बॉट्स के लिए रणनीतिक क्षेत्र कैसे दिखते हैं और इन क्षेत्रों के बीच स्थानांतरण बिंदु कहां हैं। इसके बाद, सर्वर पर 1000-3000 लड़ाइयाँ शुरू की जाती हैं। उसके बाद, हम आँकड़ों और हीट मैप्स का उपयोग करके युद्ध के पैटर्न को देखते हैं। गेम डिज़ाइनर मानचित्र सेटिंग्स को समायोजित करता है और इस डेटा के आधार पर उन्हें एक मंडली में दोहराता है। साथ ही, पर्याप्त सर्वर क्षमता का उपयोग करके, आप बॉट्स की रात के लिए ऐसे आंकड़े प्राप्त कर सकते हैं और सुबह विश्लेषण और परिवर्तन कर सकते हैं।



यह व्यवहार में कैसे काम करता है

आइए AI का उपयोग करके नई कार्यक्षमता बनाने के पूरे चक्र को देखने के लिए World of Tanks से एक वास्तविक उदाहरण का उपयोग करें। हम यह भी देख पाएंगे कि एक प्रोग्रामर, गेम डिजाइनर और क्यूए एक दूसरे के साथ कैसे इंटरैक्ट करते हैं।


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


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


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


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


बॉट के मुड़ने और वापस घूमने का प्रक्षेपवक्र बढ़ गया, जिससे खिलाड़ियों को फिर से लोड करने और उन पर वापस शूट करने की अनुमति मिली। इसने रोमांचक गेमप्ले क्षण बनाए जब बॉट्स कभी-कभी नक्शे से उड़ जाते हैं या कभी-कभी चूक जाते हैं और अंतिम सेकंड में उन्हें हिट करने में कामयाब होते हैं। कभी-कभी वे खिलाड़ी को सफलतापूर्वक फंसा लेते थे और अलग-अलग दिशाओं से हमला करते थे। क्यूए ने रफ का सामना करने के गेमप्ले अनुभव की सराहना की, और यह कार्यक्षमता प्लेयर रिलीज में चली गई।


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


एआई डेवलपर बनने के लिए क्या करना होगा


सबसे पहले, खेलों से प्यार करो! सच में, अगर आपको खेलों से प्यार नहीं है, तो ऐसा क्यों करें?

दूसरा - अपने उत्पाद को बहुत अधिक खेलना आवश्यक है क्योंकि केवल खिलाड़ी के जूते में खुद को डालने से ही आप समझ पाएंगे कि वह कैसे खेलता है और बॉट्स को कैसे खेलना चाहिए।


अन्यथा, आप गेम डिज़ाइनर के कार्यों को "कोडिंग" करेंगे, और आप उस तरह से AI डेवलपर नहीं बन पाएंगे। अंतिम यह समझने की इच्छा है कि कोई चीज इस तरह या उस तरह से क्यों काम करती है। जटिल खेलों के लिए एआई स्पष्ट तर्क का उपयोग नहीं करता है, और सेंस >> थिंक >> एक्ट चक्र का परिणाम हमेशा 100% अनुमानित और समझने योग्य नहीं होगा। यह दुर्लभ नहीं है कि डेवलपर, गेम डिजाइनर और क्यूए के साथ मिलकर बॉट्स द्वारा किए गए निर्णयों पर डेटा का विश्लेषण करना चाहिए ताकि यह समझ सके कि एआई ने सही तरीके से काम किया है या नहीं। और हार्ड स्किल्स और सॉफ्ट स्किल्स की कोई जरूरत नहीं है।


कठिन कौशल (यह तकनीकी ज्ञान का एक सेट है)। और सूची में सबसे पहले प्रोग्रामिंग भाषाओं की स्क्रिप्टिंग का ज्ञान है, आमतौर पर गेमप्ले गेम लॉजिक लिखा जाता है। उदाहरण के लिए, टैंकों की दुनिया में, यह पायथन है, और एकता के लिए, यह C# होगा। दूसरी आवश्यक वस्तु C++ होगी। इसके बिना, यह आसान नहीं होगा क्योंकि अधिकांश अनुकूलन इसी पर किए जाते हैं।


अब अगला कदम।


डेटा संरचनाओं और एल्गोरिदम की अच्छी समझ। एआई विकास में बहुत सारी गणनाएँ शामिल हैं और डेटा भंडारण और प्रसंस्करण के लिए सबसे अच्छी रणनीति चुनने से बहुत समय और सीपीयू और मेमोरी संसाधनों की बचत हो सकती है। द्वितीय वर्ष के विश्वविद्यालय स्तर के गणित का ज्ञान भी आवश्यक होगा। बेशक, एआई विकास में बुनियादी दृष्टिकोण (एआई चक्र और निर्णय लेने में दृष्टिकोण) को जानना अच्छा होगा।


सॉफ्ट स्किल्स (कौशल जो आपको एक टीम में काम करने और रचनात्मक संवाद में संलग्न होने की अनुमति देता है)। काफी मूल्यवान सॉफ्ट स्किल्स हैं, लेकिन एआई विकास में, मैं एक को बाहर करना चाहूंगा:


टीम वर्क!


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


जैसा कि आप देख सकते हैं, खेलों के लिए AI बनाना कठिन है, लेकिन यह बहुत मज़ेदार और आनंददायक है! अन्य बातों के अलावा, यह हार्ड स्किल्स और सॉफ्ट स्किल्स दोनों के विकास के लिए एक अच्छा क्षेत्र है।


आइए अलग और रोमांचक गेम बनाएं, और एआई हमारी मदद करेगा।