GameDev एक शौक के रूप में

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


संक्षिप्त पृष्ठभूमि


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

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

और यहाँ मज़ा शुरू होता है ...

सबसे पहले, विभिन्न तैयार किए गए इंजनों की बहुतायत बहुत सुखदायक है। इसके अलावा, नि: शुल्क और सीखने में आसान।
दूसरे, बाजारों और अनुप्रयोगों के साथ एक समूह जहां आप ईमानदारी से अपने काम को साझा कर सकते हैं।
तीसरा - बहुत सारे लेख, पाठ, ट्यूटोरियल आदि। आदि Habré पर कुछ लेख प्रौद्योगिकियों और उपकरणों का एक विचार प्राप्त करने के लिए काफी पर्याप्त हैं।

तो निर्णय स्पष्ट था - यह करो!

क्या करें?


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

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

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

तो, लक्ष्य स्पष्ट है, चलो चलते हैं!
स्तर शुरू करें

पहली समस्याएं


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

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

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

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

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

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

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

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

परिवर्तनों के बाद, "बाधाओं" ने स्कोर किया। क्योंकि उनकी गणना पारगमन समय को ध्यान में रखते हुए की जाती है, फिर पहले की तुलना में अंतिम के लिए अधिक शुल्क लिया गया।
संतुलन को ठीक करने के लिए मुझे दर्जनों बार खेल से गुजरना पड़ा। और फिर भी, जटिलता में एक रैखिक वृद्धि बनाना संभव नहीं था।

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

फ़ाइल को अंतिम रूप देना


पहला कदम उठाए जाने और पहला स्तर लॉन्च होने के बाद, मैंने इसे जारी करने से पहले खेल में क्या जोड़ा जाना चाहिए, इसकी एक सूची बनाई। सूची लंबी है।

पहले बिंदुओं ने दिखाया कि यदि आप सब कुछ करते हैं, तो खेल तीन या चार महीनों में जारी किया जाएगा। यह देखते हुए कि सब कुछ उत्साह पर किया गया था - एक विकल्प नहीं। मैं पूरी तरह से समझ गया था कि जितना लंबा विकास होगा, उतना ही "प्लग" पैदा होगा, कम संभावना है कि मैं कुछ भी करूंगा। विकास को जल्दी जाना था, एक फ्यूज पर। वास्तव में - एक स्प्रिंट में, अगर यह घोटाले के बारे में था।

परिणामस्वरूप, खेल को सिकोड़ने का निर्णय लिया गया।
क्या मना किया:
  1. बैकग्राउंड म्यूजिक। मुझे एक अच्छा और एक मुक्त नहीं मिला, मुझे नहीं पता कि मुझे कैसे लिखना है, और किसी और को खरीदना एक विकल्प नहीं है। और चोरी करना अच्छा और अनैतिक नहीं है।
  2. स्तरों की संख्या 25 से घटकर 15 हो गई।
  3. एक परिप्रेक्ष्य प्रभाव के साथ एक बहु-परत पृष्ठभूमि के बजाय, अमूर्त बादल डाले गए थे।
  4. सामाजिक नेटवर्क के साथ एकीकरण को लागू नहीं किया गया। मैं वास्तव में फ़ेसबुक पर एक पेज बनाना चाहता था और कम से कम लाइक बटन तो एप्लीकेशन में ही था, लेकिन पर्याप्त समय नहीं था।
  5. वैश्विक रैंकिंग। उन्होंने न केवल खिलाड़ी की उपलब्धियों को खुद दिखाने की योजना बनाई, बल्कि सभी के बीच सर्वश्रेष्ठ और फेसबुक पर अपने दोस्तों के बीच सर्वश्रेष्ठ प्रदर्शन किया। इसी तरह, पर्याप्त समय नहीं था।
  6. एप्लिकेशन में विज्ञापन। मैं खर्च किए गए समय के लिए खुद को थोड़ा मुआवजा देना चाहता था। लेकिन कॉम्बो के साथ समस्याएं थीं, और सवाल उठता है - या तो कुछ भी नहीं कमाएं, या रिलीज को बहुत कस लें। मैंने फैसला किया कि इसे मुफ्त में जारी करना बेहतर है, और प्राप्त अनुभव के साथ खुद को पुरस्कृत करें।

ये केवल वे बिंदु हैं जो दर्ज किए गए थे और जिन्हें मुझे वास्तव में पछतावा था। अनारक्षित "विशलिस्ट" की कुल संख्या को नहीं गिना जाता है।

परिणाम


  1. गेम Google Play पर रिलीज़ और प्रकाशित किया गया है।
  2. विचार से रिलीज तक का विकास समय 2 महीने से थोड़ा अधिक है।
  3. विकास पर खर्च होने वाला समय लगभग 60 घंटे है। बहुत बाद से अधिकांश समय पहले की अज्ञात तकनीकों का अध्ययन करने में व्यतीत हुआ। और परीक्षण और संतुलन के लिए भी।
  4. Google Play पर विकास लागत $ 25 प्रति डेवलपर खाता है।

जीत!
स्तर की जीत

निष्कर्ष


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


और आखिरी, बहुत व्यक्तिगत अनुभव।

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

विकास से छापें सबसे सुखद थीं। तो - खेल खेलते हैं!
मुख्य मेनू, खेल की शुरुआत

मुझे खुशी होगी अगर कोई "अनप्रोफेशनल" गेम डेवलपमेंट के अपने अनुभव को साझा करे।

Source: https://habr.com/ru/post/In204494/


All Articles