तो, आप खेल विकास में उतरना चाहते हैं। या, अधिक विशेष रूप से और सरलता से: आप चीज़ों के तकनीकी पक्ष पर काम करने वाला गेम डेवलपर बनना चाहेंगे। खैर, किसी के भी मन में यह सवाल होगा कि ऐसा कैसे करें!
उदाहरण के लिए:
इन विषयों के बारे में ढेर सारी जानकारी उपलब्ध है - इतनी कि यह आसानी से आपके मस्तिष्क पर बोझ डाल सकती है, जिससे सार्थक विकल्प चुनना कठिन हो जाता है।
मेरा नाम एंड्री मिखीव है, और मैं Pixonic, MY.GAMES में वरिष्ठ बैकएंड डेवलपर हूं। मैं गेमिंग उद्योग में 20 वर्षों से हूं। मैंने पहली बार 90 के दशक में तत्कालीन लोकप्रिय ZX स्पेक्ट्रम पर गेम बनाने की कोशिश की थी। इस लेख में, मैं गेम डेवलपमेंट पर स्विच करते समय आपके पास मौजूद विकल्पों पर प्रकाश डालूँगा, और मैं समझाऊंगा कि ये विकल्प कैसे भिन्न हैं।
इस पोस्ट में, हम इस धारणा के तहत काम करेंगे कि पाठक अभी उद्योग में अपनी यात्रा शुरू कर रहा है। सब कुछ एक साथ सीखना असंभव है, और इसलिए आपको प्राथमिकता तय करनी होगी और चुनना होगा कि अपनी पढ़ाई कैसे करें। बेशक, हर किसी का अनुभव अलग-अलग होता है; इस पेशे में विकास के एक से अधिक रास्ते हैं।
खेल विकास की सुंदरता (और आईटी के कई अन्य क्षेत्रों के साथ) यह है कि ऐसे कई क्षेत्र हैं जहां आप अपने कौशल को लागू कर सकते हैं: आप एक निर्माता, विपणनकर्ता, कलाकार, डिजाइनर, पटकथा लेखक, मॉडलर, विश्लेषक, क्लाइंट-साइड डेवलपर बन सकते हैं। कोर डेवलपर, मेटा-सर्विसेज डेवलपर, रेंडर डेवलपर, इत्यादि। वास्तव में, इंडी गेम की दुनिया में, आपको लगभग सभी उपरोक्त कौशलों को संयोजित करना होगा - लेकिन यह एक और दिन का विषय है।
खेल विकास में करियर शुरू करने के बारे में सोचते समय, लोग अक्सर तकनीकी पहलुओं पर ध्यान केंद्रित करते हैं: मास्टर करने के लिए इंजन, पहले चुनने के लिए प्रोग्रामिंग भाषा , या काम करने के लिए विशिष्ट कौशल।
लेकिन ध्यान रखें कि प्रौद्योगिकी सिर्फ एक उपकरण है; आपको एक डेवलपर के रूप में अपनी संपूर्ण पहचान किसी विशेष चीज़ के आसपास बनाने की ज़रूरत नहीं है ; एक मैकेनिक रिंच नहीं है. आज, यह एक क्रॉसहेड स्क्रूड्राइवर है, कल यह एक इलेक्ट्रिक स्क्रूड्राइवर है, परसों यह एक वायवीय उपकरण है। लक्ष्य यह सीखना नहीं है कि किसी विशिष्ट स्क्रूड्राइवर का उपयोग कैसे किया जाए, बल्कि कारों की संरचना को समझना और उन्हें कैसे जोड़ना और मरम्मत करना है।
इन रिंचों को गेम इंजन, कोडिंग भाषाओं और अन्य चीज़ों से बदलें - और बात नहीं बदलेगी। ये आपके उपयोग के लिए मात्र उपकरण हैं
इसलिए, मेरी राय में, इस स्तर पर सामान्य कौशल सबसे महत्वपूर्ण चीज़ हैं। क्योंकि आपसे "गेम" बनाने का काम नहीं, बल्कि अच्छा कोड लिखने का काम लिया जाता है।
लक्ष्य अरबों डॉलर का हिट गेम बनाना नहीं है बल्कि एक डेवलपर के रूप में विकसित होना है। अरबों डॉलर का खेल बनाना वैसे भी विकास के बारे में नहीं है, बल्कि विचारों और विपणन के बारे में है; कोड उसके लिए एक गौण चीज़ है। बेशक, ये दोनों लक्ष्य एक-दूसरे के विपरीत नहीं हैं, लेकिन मैं आश्चर्यजनक सफलता को अपना पहला लक्ष्य नहीं बनाऊंगा - ऐसा करें और आप जल्दी ही पूरे उद्यम से निराश हो सकते हैं।
कोड के विषय पर वापस आते हुए, कोड पर सामान्य फोकस महत्वपूर्ण है क्योंकि किसी भी उद्योग में उच्च-गुणवत्ता वाले कोड की हमेशा बड़ी मांग रहेगी, और इसके कई अनुप्रयोग हैं: गेम, फिनटेक, रोबोट नियंत्रण एल्गोरिदम, अंतरिक्ष में रॉकेट लॉन्च करना। कुछ लोग कह सकते हैं कि उच्च गुणवत्ता वाले कोड का मतलब भारी देरी है, और इस व्यवसाय में समय महत्वपूर्ण है। इस पर विश्वास मत करो. यदि आप अच्छा कोड लिख सकते हैं, तो कोई डाउनटाइम नहीं होगा।
दूसरी बात यह है कि यदि आपका कोड ख़राब है, तो उच्च गुणवत्ता वाला उत्पाद बनाने के लिए आपको अपनी आदतों को सुधारना होगा, और इसमें बहुत समय और प्रयास लगेगा।
एक और बहुत महत्वपूर्ण बिंदु समय से संबंधित है: अच्छा कोड बनाने में लगने वाला समय हमेशा इसे बनाए रखने में लगने वाले समय में कमी से संतुलित होता है। आख़िरकार, एक गेम और विशेष रूप से मल्टीप्लेयर एक लंबे समय तक चलने वाला उत्पाद है, और इस मामले में कोड की गुणवत्ता बहुत महत्वपूर्ण है।
अन्य विशेषज्ञों को आपके कोड को आसानी से समझने में सक्षम होना चाहिए , इसे दोबारा लिखने की आवश्यकता के बिना इसे अनुकूलित करने में सक्षम होना चाहिए। और यदि आप अचानक कुछ वर्षों में कुछ बदलने का निर्णय लेते हैं, तो आपको इसे आसानी से पढ़ने में सक्षम होना चाहिए । एक मोटे उदाहरण के रूप में: एक सप्ताह में कुछ समझ से परे लिखने की तुलना में, एक बार उच्च-गुणवत्ता वाला कोड लिखने में कुछ महीने बिताना और कुछ दिनों में जल्दी से कुछ बदलाव करने में सक्षम होना बेहतर है, फिर प्रत्येक छोटे के लिए एक महीने की आवश्यकता होती है भविष्य में संपादित करें.
संक्षेप में, स्वच्छ कोड, स्वच्छ वास्तुकला, ECS, SOLID, KISS, OOP, एल्गोरिदम और डेटा संरचनाएँ - यदि आप खेल विकास क्षेत्र में एक अच्छे तकनीकी विशेषज्ञ बनना चाहते हैं तो इन सभी विषयों पर विशेष ध्यान दिया जाना चाहिए।
हां, एल्गोरिदम कुछ लोगों के लिए सिरदर्द का कारण बन सकता है। लेकिन सामान्य वेब परियोजनाओं की तुलना में गेम विकास में इनमें से कई "एल्गोरिदम और संरचनाएं" हैं, और यदि आप उनमें महारत हासिल कर लेते हैं, तो वे आपके जीवन को बहुत सरल बना देंगे।
इन अवधारणाओं की अधिक गहन समझ, स्वाभाविक रूप से, अनुभव के साथ ही आएगी। समय के साथ, आपने विभिन्न परियोजनाओं में भाग लिया होगा, आप यह समझना शुरू कर देंगे कि अन्य विशेषज्ञ कैसे काम करते हैं, और देखेंगे कि गेम कोड के साथ काम करते समय आपको व्यक्तिगत रूप से क्या परेशानी होती है।
अन्य लोगों के अनुभवों से सीखना महत्वपूर्ण है । ओपन-सोर्स परियोजनाओं का अध्ययन करें, उद्योग विशेषज्ञों के व्याख्यान सुनें और याद रखें, अब बहुत सारे सूचना स्रोत उपलब्ध हैं। लेकिन आपको जो नहीं करना चाहिए वह यह है कि आप अपने प्रोजेक्ट को बेकार कर दें, खासकर यदि आपकी टीम में कोई अच्छा गुरु नहीं है। कोई भी सक्षम डेवलपर शून्य में काम नहीं कर सकता। यहां मुख्य बात यह है कि इसे ज़्यादा न करें और यह समझे बिना कि आप क्या कर रहे हैं और क्यों कर रहे हैं, अन्य परियोजनाओं से कोड का उपयोग शुरू नहीं करना चाहिए।
और एक और महत्वपूर्ण बिंदु: कोड को दोबारा लिखना सामान्य है, ऐसा करने से डरो मत। इसके अलावा, प्रशिक्षण अवधि के दौरान, यह अत्यंत महत्वपूर्ण है। आप देखेंगे कि कैसे अच्छी प्रथाओं का उपयोग करने से आप अपने कोड को बेहतर बना सकेंगे और इसे अधिक रखरखाव योग्य बना सकेंगे।
आपके सामान्य प्रोग्रामिंग कौशल में सुधार की प्रक्रिया त्वरित नहीं है। इसमें महीनों - या साल भी लग सकते हैं। तो इसके लिए तैयार रहें, क्योंकि इसके बिना आपका काम नहीं चल सकता।
यदि आपको किसी अच्छे स्टूडियो में इंटर्नशिप करने का अवसर मिलता है, तो इससे आपके विकास में काफी तेजी आएगी । आपको खेल विकास के विभिन्न पहलुओं को सीखने और सलाहकारों से अपने सवालों के जवाब पाने का मौका मिलेगा। लेकिन आइए ईमानदार रहें, यह सबसे आम तरीका नहीं है।
गेमिंग उद्योग में शुरुआत से पहली नौकरी की तलाश करना एक और चुनौती है। प्रसिद्ध विरोधाभास: नौकरी पाने के लिए आपको अनुभव की आवश्यकता होती है, और अनुभव प्राप्त करने के लिए आपको नौकरी की आवश्यकता होती है। इस मामले में, स्व-अध्ययन पर विचार करना उचित है । आइए सशुल्क पाठ्यक्रमों के विचार को तुरंत त्याग दें: वे कई कारणों से सभी के लिए उपयुक्त नहीं हैं। सौभाग्य से, इंटरनेट पर गेम कोडिंग के सभी पहलुओं के लिए दर्जनों और सैकड़ों गाइड मौजूद हैं।
एक बार जब आप अपने लिए उन बुनियादी सवालों का जवाब दे लेते हैं और समझ जाते हैं कि आप क्या और कैसे सीखेंगे, तो यह तय करने का समय आ गया है कि आप किस गेम इंजन के साथ काम करेंगे, और यह उस प्रोग्रामिंग भाषा को भी निर्धारित करेगा जिसे आपको सीखना होगा।
यह विषय इतना व्यापक है कि इसे एक लेख में शामिल नहीं किया जा सकता। इसके अलावा, डेवलपर्स के रूप में, हमें इंजनों में उतनी दिलचस्पी नहीं है जितनी प्रोग्रामिंग भाषाओं में। यदि आप विषय को गहराई से समझना चाहते हैं, तो मैं आपको इसे पढ़ने की सलाह देता हूँ
अपनी यात्रा की शुरुआत में, आपको तुरंत अवास्तविक इंजन या यूनिटी जैसे किसी बड़े और गंभीर इंजन को चुनने की ज़रूरत नहीं है। यदि आपके पास कोई सैद्धांतिक या व्यावहारिक पृष्ठभूमि नहीं है, तो वेब गेम के लिए कुछ इंजन पर्याप्त होंगे: PlayCanvas या इसके एनालॉग्स जैसा कुछ।
शुरुआत के लिए डिफोल्ड इंजन भी एक अच्छा विकल्प हो सकता है । यह यूनिटी की तुलना में सरल है और 2डी गेम्स पर अधिक केंद्रित है। यह एक बहुत ही सरल भाषा, लुआ, का उपयोग करता है, जिसे सीखना आसान है।
आपका कुछ समय बचाने के लिए, मैं बस भाषाओं के कुछ पहलुओं का वर्णन करूंगा और उन्हें प्राथमिकता के क्रम में व्यवस्थित करूंगा, जैसे मैं उन्हें सीखूंगा; यह आदेश भाषा की गुणवत्ता या उसकी समस्याओं के बारे में नहीं बताता है। इसके बजाय, यह जटिलता, प्रासंगिकता और भाषाओं की क्षमताओं के बीच संतुलन का मेरा आकलन है।
उदाहरण के लिए, लुआ एक बहुत ही रोचक भाषा है, जिसे सीखना आसान है, आप डिफोल्ड इंजन का उपयोग करके इसके साथ एक गेम लिख सकते हैं। लेकिन आप इसे अपने विकास अनुभव के लिए मुख्य भाषा के रूप में नहीं चुन सकते। यह एक सहायक भाषा है जिसका उपयोग C++ या C# जैसी अधिक लोकप्रिय भाषाओं के साथ किया जाता है।
बेशक, यह सभी प्रोग्रामिंग भाषाओं की पूरी सूची नहीं है। इनकी संख्या एक दर्जन से अधिक हैं. लेकिन मैं आपके लिए यही इंगित करना चाहता हूँ। तो, यहां बताया गया है कि मैं क्या सीखूंगा और किस क्रम में:
सी#: यदि आप विकास में गंभीरता से और लंबे समय तक काम करने की योजना बना रहे हैं, तो लोकप्रिय सामान्य प्रयोजन वाली भाषाओं से शुरुआत करना बेहतर है। C# उनमें से एक है. यह आपकी बैकअप योजना के लिए भी उपयुक्त भाषा है: भले ही आप अचानक गेम डेव से ऊब गए हों, आप C# में विभिन्न प्रकार के सॉफ़्टवेयर लिख सकते हैं, जैसे फिनटेक, व्यावसायिक एप्लिकेशन इत्यादि।
C# आपको मानक प्रोग्रामिंग अवधारणाओं से परिचित होने और विभिन्न विकास दृष्टिकोणों को लागू करने की अनुमति देगा। आप OOP, CQRS, DDD, ECS जैसे प्रतीत होने वाले डरावने संक्षिप्ताक्षरों के बारे में सब कुछ सीखेंगे। बेशक, इनमें से अधिकांश दृष्टिकोण किसी भी प्रोग्रामिंग भाषा में लागू किए जा सकते हैं। लेकिन बारीकियां हैं. उदाहरण के लिए, सभी भाषाओं में "वर्ग" की अवधारणा नहीं होती है, और, तदनुसार, अवधारणाओं को अलग-अलग तरीके से लागू किया जाता है। यह एक नौसिखिया डेवलपर के दिमाग को उड़ा सकता है, और प्रेरक समस्याओं सहित अनावश्यक समस्याओं का एक समूह पैदा कर सकता है। इसलिए, मेरी राय में, उदाहरण के लिए, जावास्क्रिप्ट की तुलना में, विकास में करियर शुरू करने के लिए C# सबसे अच्छा (लेकिन आसान नहीं) विकल्प है।
जावा : C# की तरह, जावा एक सामान्य प्रयोजन वाली भाषा है। लेकिन गेम विकास में, यह मुख्य रूप से सर्वर के संदर्भ में प्रासंगिक है। बेशक, जावा गेम इंजन हैं (उदाहरण के लिए, लिबजीडीएक्स), लेकिन वे गेम डेवलपमेंट के लिए यूनिटी जैसे लोकप्रिय नहीं हैं।
फिर, ये सामान्य भाषाएँ उस स्थिति के लिए अच्छी हैं जब आप पहले से ही जावा जानते हैं, लेकिन उदाहरण के लिए, फिनटेक में काम करते हैं - और फिर अचानक आप एक गेम बनाने का निर्णय लेते हैं। आप केवल एक प्रयोग के लिए शुरू से ही एक नई भाषा नहीं सीखना चाहेंगे, है ना?
जावास्क्रिप्ट : जैसा कि स्टैक ओवरफ्लो के संस्थापकों में से एक जेफ एटवुड ने कहा, "जो कुछ भी जावास्क्रिप्ट में लिखा जा सकता है वह जावास्क्रिप्ट में लिखा जाएगा। ”
यह दुखद है लेकिन सच है कि अधिक से अधिक गेम प्रोजेक्ट इस भाषा में लिखे जा रहे हैं। तथ्य यह है कि जावास्क्रिप्ट बहुत सरल है, खासकर शुरुआती लोगों के लिए। और यदि आप किसी प्रकार के वेब इंजन पर काम करते हैं, तो संभवतः आपको यह भी बताया जाएगा कि आपको अपने कोड की पंक्तियाँ कहाँ दर्ज करनी हैं।
अपनी सरलता के बावजूद, मुझे नहीं लगता कि गेम विकास में आपकी यात्रा शुरू करने के लिए जावास्क्रिप्ट एक अच्छी जगह है। यह अन्य सामान्य-उद्देश्य वाली भाषाओं से बहुत अलग है, और यह डेवलपर्स के साथ खिलवाड़ कर सकती है। यह विचार है कि एक डेवलपर अपनी पहली प्रोग्रामिंग भाषा की अवधारणाओं के संदर्भ में सोचता है । इसमें कुछ सच्चाई है, इसलिए शुरुआत में ही अधिक सामान्य तकनीकों और दृष्टिकोणों को सीखना बेहतर है। लेकिन यदि आप वेब गेम से शुरुआत करने का निर्णय लेते हैं, तो संभवतः आप जावास्क्रिप्ट के बिना काम नहीं कर पाएंगे। यह वेब दुनिया में राज करता है। ऐसे में मैं आपको टाइपस्क्रिप्ट पर ध्यान देने की सलाह दूंगा। यह भाषा C# के समान है और भविष्य में किसी अन्य भाषा में स्विच करना आसान बना देगी।
लुआ/पायथन: मैंने उन्हें एक साथ क्यों रखा? ये स्क्रिप्टिंग भाषाएँ हैं, जिनका उपयोग आमतौर पर गेम लॉजिक के अलग-अलग हिस्सों को स्क्रिप्ट करने के लिए किया जाता है। (हां, डिफोल्ड जैसे इंजन हैं जहां ये मुख्य विकास भाषाएं हैं। लेकिन ये नियम के अपवाद हैं।) उदाहरण के लिए, इनलाइन स्क्रिप्टिंग के लिए पायथन एक बहुत लोकप्रिय उपकरण है, और इसका उपयोग ब्लेंडर 3डी संपादक में किया जाता है।
लुआ और पायथन को जानना और उनका उपयोग करने में सक्षम होना उपयोगी है, लेकिन जैसा कि मैंने पहले उल्लेख किया है, वे सहायक भाषाएँ हैं और मैं उन्हें बाद के लिए रखूँगा। जब तक, निश्चित रूप से, आपने अपने पहले प्रोजेक्ट के लिए डिफ़ोल्ड इंजन नहीं चुना है, तब तक लुआ अपरिहार्य है।
C++ : आप में से कुछ लोग आश्चर्यचकित हो सकते हैं कि C++ सूची में सबसे नीचे है। और ऐसा इसलिए नहीं कि भाषा ख़राब है, बल्कि इसकी राह सबसे कठिन है. यह प्रस्तुत भाषाओं में से सबसे शक्तिशाली भाषा है, लेकिन अपनी विशेषताओं के साथ सबसे जटिल भी है।
AAA गेम बनाने के लिए C++ का उपयोग किया जाता है, और यह हार्डवेयर से अधिकतम लाभ प्राप्त करना संभव बनाता है। लेकिन मैं किसी नौसिखिए डेवलपर को यह सुझाव नहीं दूंगा - संभावना अधिक है, आप उद्योग में निराश हो जाएंगे। लेकिन अगर आप वास्तव में जानते हैं कि C++ वह चीज़ है जिसकी आपको वास्तव में आवश्यकता है - और आप इसमें आने वाली कठिनाइयों से डरते नहीं हैं और आपके पास स्पष्ट कार्य योजना है - तो आगे बढ़ें!
एक प्रोग्रामिंग भाषा चुनना महत्वपूर्ण है, लेकिन यह न भूलें कि सबसे पहले और सबसे महत्वपूर्ण बात यह है कि आपको अपनी तकनीकी अंग्रेजी का स्तर बढ़ाना चाहिए - यह आपको गाइड, पाठ्यक्रम और मूल्यवान जानकारी के अन्य स्रोतों को नेविगेट करने में मदद करेगा।
मेरी राय में, गेम डेवलपर को यह अगला निर्णय लेना होगा। (मोबाइल गेम, एएए, या वेब गेम विकसित करने के बीच विकल्प जैसा कुछ नहीं।) कारण सरल है: आपकी यात्रा की शुरुआत में, आपके पास निश्चित रूप से बड़े गेम बनाने का विकल्प नहीं होगा। इसके बारे में सोचें, बिना किसी अनुभव के आप एस्केप फ्रॉम टारकोव या कॉल ऑफ़ ड्यूटी पर कैसे काम कर सकते हैं? आपका पहला गेम बड़ा और जटिल नहीं होना चाहिए, अन्यथा आप इसे ख़त्म नहीं कर पाएंगे। आप बस थक जाएंगे और खेल का विकास छोड़ देंगे।
यह समझना अच्छा है कि आप वास्तव में क्या करना चाहते हैं। एक अनुभवी डेवलपर के लिए, यह इतना महत्वपूर्ण नहीं है, लेकिन शुरुआत में, इस प्रश्न का उत्तर संभावित अध्ययन के रास्ते को संकीर्ण कर देगा।
एकल-खिलाड़ी बनाम बहु-खिलाड़ी के संदर्भ में: ग्राहक विकास के दृष्टिकोण से (अर्थात, खेल का वह हिस्सा जिसके साथ खिलाड़ी सीधे बातचीत करता है), एक डेवलपर के लिए अंतर उतना बड़ा नहीं हो सकता है। लेकिन मल्टीप्लेयर के लिए बैकएंड और उससे जुड़े सभी मुद्दों की आवश्यकता होती है, और यह भी एक अलग और विशाल विषय है।
इस संबंध में एक एकल-खिलाड़ी गेम आसान है क्योंकि आपको अन्य खिलाड़ियों के लिए दुनिया की स्थिति को सिंक्रनाइज़ करने, गेम लॉजिक को अलग करने या ऐसी अन्य समस्याओं के बारे में चिंता करने की ज़रूरत नहीं है।
गेम यांत्रिकी के संदर्भ में, एकल-खिलाड़ी गेम मल्टीप्लेयर की तुलना में बहुत सरल हो सकता है - और प्रोजेक्ट जितना सरल होगा, आपके लिए इसे पूरा करना उतना ही आसान होगा। और जो आपने शुरू किया था उसे पूरा करना किसी भी व्यवसाय में एक महत्वपूर्ण कौशल है!
संक्षेप में, मैं एकल-खिलाड़ी गेम से शुरुआत करने की सलाह दूंगा - यह आसान होगा। लेकिन अगर आप सचमुच दोस्तों के साथ खेलने के लिए कोई सरल मल्टीप्लेयर गेम बनाना चाहते हैं, तो क्यों नहीं? आपको बस यह समझने की आवश्यकता है कि अपना पहला कार्यशील संस्करण प्राप्त करने के लिए अधिक समय की आवश्यकता होगी। हालाँकि, किसी व्यक्ति की आंतरिक इच्छा एक बहुत ही जटिल चीज़ है - शायद ऑनलाइन गेम बनाने से आपको एकल-खिलाड़ी गेम की तुलना में बहुत अधिक प्रेरणा मिलेगी, जिससे आपके पहले प्रोजेक्ट को पूरा करने का मौका बढ़ जाएगा।
खैर, यहां हम मुख्य प्रश्न पर आते हैं - यदि आप गेम बनाना चाहते हैं तो वास्तव में कहां से शुरुआत करें?
मान लीजिए कि हम पहले से ही मोटे तौर पर समझते हैं कि हम किस प्रकार का गेम बनाना चाहते हैं। हम जानते हैं कि मुख्य रूप से किस प्रकार की प्रोग्रामिंग भाषाओं का उपयोग किया जाता है और उनका उपयोग किन इंजनों में किया जाता है। यह वह चरण है जब इस भाषा और इंजन का चयन किया जाना चाहिए। (मैं C# से शुरुआत करने की सलाह दूंगा। AAA हिट बनाने के लिए आपको C++ की आवश्यकता होगी, लेकिन जब हम अनुभव प्राप्त कर लेंगे तो इसे बाद के लिए सहेज लें।) तो, हमारा भाषा-इंजन कॉम्बो C# + Unity हो सकता है । ये मांग में हैं और एक उत्कृष्ट विकल्प हैं।
यह एक महत्वपूर्ण बिंदु है: किसी इंजन से शुरुआत न करें, पहले भाषा चुनें । भाषा के बिना, आप इंजन को बिल्कुल भी प्रभावी ढंग से नहीं सीख पाएंगे; आप उदाहरणों और दस्तावेज़ों में कुछ भी नहीं समझ पाएंगे और आप केवल भ्रमित हो जाएंगे। आदर्श रूप से, आप भाषा में महारत हासिल करने और आत्मविश्वास से सरल प्रोग्राम लिखने से पहले गेम इंजन सीखना शुरू नहीं करेंगे।
अपने प्रोग्रामिंग कौशल को बेहतर बनाने के लिए, जैसे प्रोजेक्ट देखें
जब आप अपनी भाषा पर थोड़ा काबू पा लेते हैं, तो अंततः आप इंजन का अध्ययन शुरू कर सकते हैं। 2023 में, इस विषय पर बहुत सारी जानकारी उपलब्ध है: इंटरनेट संसाधनों से भरा है; आपके द्वारा चुनी गई किसी भी चीज़ के लिए दर्जनों YouTube चैनल। साथ ही, जैसा कि मैंने कहा, यूनिटी बेहद लोकप्रिय है, इसलिए सामग्री की कोई कमी नहीं है।
आप इंजन के रचनाकारों द्वारा किसी भी समस्या का वीडियो समाधान पा सकते हैं (सीधे यूनिटी हब पर उपलब्ध है, जिसे आप शुरुआत में इंस्टॉल करेंगे),
आरंभ करने के लिए ये तीन बुनियादी चरण थे, और वहीं से, आपका मार्ग जारी रह सकता है। मैं एक अनुमानित रूपरेखा देता हूँ।
एक बार जब आप अपनी चुनी हुई भाषा और इंजन को थोड़ा सीख लें, तो एक सरल गेम बनाने का प्रयास करें । कोई भी खेल, यहां तक कि टिक-टैक-टो भी। सब कुछ वैसे ही करें जैसे आप चाहते हैं - कोई सीमा नहीं। आपको कोड स्वयं लिखना होगा. ( स्टैक ओवरफ्लो से कॉपी-पेस्ट करने से बचें, जो फिर भी एक बहुत उपयोगी संसाधन है)। मुख्य मानदंड यह है कि खेल को काम करना चाहिए।
इसके बाद, गेम के लिए कुछ नई सुविधाएं लेकर आएं और उन्हें जोड़ने का प्रयास करें । उदाहरण के लिए, यदि आप एक प्लेटफ़ॉर्मर बना रहे हैं, तो एक ऐसी सुविधा बनाने का प्रयास करें जो बटन दबाने पर स्तर के गुरुत्वाकर्षण को बदल दे; या स्तर के एक भाग से दूसरे भाग तक टेलीपोर्ट करने की क्षमता।
यह नोट करने का प्रयास करें कि आपके कामकाजी मसौदे में कुछ नया जोड़ना कितना आसान/कठिन था। कोड की संरचना बदलने के लिए आपको कितनी राशि की आवश्यकता होगी, इत्यादि। उसके बाद, सर्वोत्तम प्रथाओं का अध्ययन करें, देखें कि अन्य डेवलपर्स प्रोजेक्ट और कोड (OOP, SOLID, KISS) को कैसे व्यवस्थित करने का सुझाव देते हैं, और अपने नए ज्ञान को ध्यान में रखते हुए गेम को फिर से लिखें।
फिर, फिर से एक नई सुविधा के साथ आएं और उस नए ज्ञान का उपयोग करके इसे बनाएं । इस बात पर ध्यान दें कि कैसे बेहतर कोड आपके लिए नई सुविधा जोड़ना आसान या कठिन बना देता है, और आप कितने बग ढूंढ सकते हैं।
धीरे-धीरे, कई पुनरावृत्तियों के माध्यम से, परियोजना में जटिलता जोड़ें और इसे आपके द्वारा सीखे गए पाठों के साथ फिर से लिखें।
यह मानते हुए कि आप कोई कोताही नहीं बरतते, आप देखेंगे कि आपके द्वारा लिए गए निर्णय कैसे नई सुविधाओं को लागू करने में बाधा डालते हैं या मदद करते हैं। कोड गुणवत्ता के लिए मुख्य मानदंडों में से एक यह है कि प्रोजेक्ट में बदलाव करना कितना आसान है। दुर्भाग्य से, इसके लिए कोई स्पष्ट कानून नहीं हैं; यह सब अनुभव के साथ आता है।
यदि आपको सरल गेम बनाने का मन नहीं है, तो आप इसके बजाय अलग-अलग मैकेनिकों को कोड करके शुरुआत कर सकते हैं। उदाहरण के लिए, आप किसी सतह पर चलाए गए कुछ क्यूब्स से बनी एक प्राथमिक "कार" बनाकर शुरुआत कर सकते हैं - फिर, धीरे-धीरे मिश्रण में अन्य यांत्रिकी जोड़ें।
उसके बाद, आप एक अधिक जटिल खेल के साथ आ सकते हैं - और परियोजना को बेहतर बनाने के लिए फिर से कई पुनरावृत्तियों से गुजर सकते हैं। यदि आपको कोई दिलचस्प परिणाम मिलता है, तो आप अंततः इस गेम को स्टोर्स में रिलीज़ करने का प्रयास कर सकते हैं।
आप के माध्यम से रिलीज़ करने का प्रयास कर सकते हैं
मैं आपको गेम रिलीज के संबंध में एक छोटा सा लाइफ हैक पेश कर सकता हूं: वेब/ब्राउज़र गेम। हालाँकि ऐसा लगता है कि इस प्रारूप ने लोकप्रियता खो दी है, क्योंकि उपयोगकर्ता अब मुख्य रूप से मोबाइल डिवाइस, पीसी या कंसोल पर खेलते हैं, वेब गेम के पास अभी भी पर्याप्त दर्शक हैं, इसलिए आप अपना पहला प्रोजेक्ट एक के रूप में लॉन्च करने का प्रयास कर सकते हैं। इसे मोबाइल उपकरणों पर एक देशी गेम के रूप में जारी करने की तुलना में यह बहुत आसान है।
मोबाइल गेम्स की प्रतिस्पर्धा भयंकर है, और यह मानते हुए कि इसे प्रचारित नहीं किया गया है, आपके गेम पर किसी का ध्यान नहीं जाएगा - और प्रकाशक के बिना किसी प्रोजेक्ट को बढ़ावा देना बहुत मुश्किल है। वेब गेम्स के लिए, विशेष पोर्टल हैं (उदाहरण के लिए: आर्मर गेम्स, न्यूग्राउंड्स, वेबगेम्स ) जो इन परियोजनाओं की मेजबानी करते हैं: वहां इसे जारी करना बहुत आसान है, और आप विज्ञापन पर कुछ कमा भी सकते हैं। अपनी उम्मीदें मत बढ़ाओ, लेकिन फिर भी, अगर ऐसा होता है, तो यह एक सुखद बोनस है।
अब, एक छोटी सी चेतावनी. इन दिनों, "नो-कोड" दृष्टिकोण बहुत लोकप्रिय है। यह तब होता है जब कोई प्रोजेक्ट बिना कोड लिखे बनाया जाता है। (इसे "माउस-क्लिक प्रोग्रामिंग" भी कहा जाता है)। मेरी सलाह? इस दृष्टिकोण से दूर रहना ही बेहतर है।
ये नो-कोड दृष्टिकोण गेम मैकेनिक्स को आज़माने या एक साधारण प्रोटोटाइप बनाने के लिए आदर्श हैं। लेकिन हमारा समग्र लक्ष्य अलग है - और बिना कोड के एक साधारण गेम को असेंबल करना आपको डेवलपर बनने के करीब नहीं लाएगा।
याद रखें: कोई भी मात्रा में लेख पढ़ना और यूट्यूब गाइड देखना अभ्यास की जगह नहीं ले सकता। केवल कई (और वास्तव में, कई, सिर्फ एक नहीं) परियोजनाएं बनाकर, आप कुछ सार्थक सीखेंगे। खेल के विकास में एक प्रोग्रामर के रूप में अपना रास्ता तय करने के लिए, यहां मुख्य बात चरण-दर-चरण, सरल से जटिल की ओर जाना है।
मैंने खेल के विकास में उतरने और खेलों का कार्यक्रम शुरू करने के बारे में कुछ सलाह देने की कोशिश की है। सही भाषा और इंजन का चयन, दृढ़ता और दृढ़ता, प्रतिक्रिया एकत्र करना और आत्मनिरीक्षण - ये सभी बहुत महत्वपूर्ण हैं। लेकिन इस प्रक्रिया का एक और घटक है जिसे नजरअंदाज नहीं किया जा सकता: आनंद लेना।
यदि आप खेलों के शौकीन नहीं हैं और आप उन्हें नहीं खेलते हैं, तो सबसे अधिक संभावना है, इस उद्यम से कुछ नहीं मिलेगा; एक दुखद सत्य जो मूल रूप से किसी भी रचनात्मक कार्य पर लागू होता है। मौज-मस्ती के बिना, यह सिर्फ पैसा कमाने की एक दिनचर्या बनकर रह जाएगी। निश्चित रूप से, वर्षों बाद आपकी रुचि वैसे भी कम हो सकती है, लेकिन उम्मीद है कि तब तक, आप पहले ही निपुण हो चुके होंगे और कुछ संबंधित कार्यों के बीच चयन करने में सक्षम होंगे, या आपने उस समय अपने लिए कुछ नया और दिलचस्प करने के लिए पर्याप्त कमाई कर ली होगी।
विशेष रूप से आपकी यात्रा की शुरुआत में, सारा काम और कोई खेल न होने से निश्चित रूप से थकान और निराशा होगी।
इसलिए, मेरी आखिरी सलाह: उस चीज़ की तलाश करें जो आपको भावुक बनाती है , वह चीज़ जो आपको किसी प्रोजेक्ट पर दिन-रात काम करने के लिए प्रेरित करती है (बेशक, आपको इसे शाब्दिक रूप से नहीं करना चाहिए!) एक बार जब आप अपनी ड्राइविंग प्रेरणा पा लेते हैं, तो वह चीज़ जो आपको एक प्रोजेक्ट पर काम करने के लिए प्रेरित करती है अन्यथा यह एक सामान्य दिनचर्या एक दिलचस्प, आकर्षक चुनौती में बदल जाएगी - और यह निश्चित रूप से आपके पेशेवर विकास को गति देगा!