खेल का विकास। एक किक अभियान के लिए एक नैपकिन आइडिया से रास्ता

नमस्ते मेरा नाम एंड्री व्लासेंको है। मैं यूक्रेन के खार्कोव शहर में रहता हूं। मैं पेशे से सॉफ्टवेयर डेवलपर हूं। मैं एपेक्सटेक में सीआईओ के रूप में काम करता हूं। मैं आपको हमारे खेल "विध्वंस लैंडर" के निर्माण के बारे में बताना चाहता हूं।

आरंभ करने के लिए, एक छोटा ट्रेलर देखें जो अंत में क्या हुआ (50 वें सेकंड से खेल शुरू से फ्रेम) का एक विचार देगा।




एक विचार का जन्म



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

भविष्य में, यह अवधारणा विनाशकारी स्तर और कार्रवाई के तत्वों के साथ आगे बढ़ गई थी, लेकिन बाद में उस पर और अधिक।


बहुत पहले जहाज

पहला प्रोटोटाइप। बहु। इंजन का विकल्प। पहले भ्रांतियां



यह इस तथ्य से शुरू होता है कि कंपनी ने इस परियोजना को हरी बत्ती देने का फैसला किया, लेकिन केवल लोगों से ही चुना गया।

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

विपक्ष कम महत्वपूर्ण नहीं निकला:


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


पहला प्रोटोटाइप

इस रेक को हिट करने के बाद, स्थिति को संशोधित किया गया था। अब तक हमने cocos2d-iphone पर केवल iOS के लिए संस्करण बनाने का फैसला किया। नाम के बावजूद, इंजन iPhone पर और iOS चलाने वाले अन्य Apple उपकरणों पर बहुत अच्छा काम करता है।

चिपमंक 2 डी का उपयोग करके भौतिकी को लागू करना शुरू किया। कुछ पूछ सकते हैं - क्यों नहीं Box2D? उत्तर सरल है, पहले प्रोटोटाइप के निर्माण के समय, cocos2d में जावास्क्रिप्ट बाइंडिंग केवल चिपमंक के लिए लागू किए गए थे। देशी cocos2d-iphone पर स्विच करते समय, हमने इसे वैसा ही छोड़ने का फैसला किया, जिसका हमें भविष्य में पछतावा नहीं था।

गेमप्ले। क्या वह वहाँ है?



विकास के कई सप्ताह बीत चुके हैं। प्रोटोटाइप तैयार है। खेल यांत्रिकी तैयार। सब कुछ मक्खियों, इंजन स्पिन, स्तर बड़ा है। यह पहले से ही लगता है कि थोड़ा और ऐप स्टोर में रखा जा सकता है। लेकिन यह गेम खेलना उबाऊ है। और इसका मतलब एक चीज है - गेम में कोई गेमप्ले नहीं है।
यहाँ खेल यांत्रिकी के तत्व हैं जो उस समय लागू किए गए थे:


एक बुद्धिशीलता सत्र के बाद, निम्नलिखित तत्वों की योजना बनाई गई थी:


नई कार्यक्षमता को मंजूरी देने के बाद, टीम को 4 लोगों तक विस्तारित करने का निर्णय लिया गया।

स्तर के आयाम



मुझे हमेशा उन खेलों से मोहित किया गया है जिनमें आपके पास बिना किसी प्रतिबंध या भार के घूमने के लिए एक बड़ी जगह थी, और मैंने इसे विध्वंस लैंडर में लागू करने की कोशिश की। खेल में स्तर बहुत बड़ा है। यदि आप पूरे स्तर को खींचते हैं, तो आपको 65 536 से 16 384 के आकार की एक छवि मिलती है। और यह सीमा नहीं है - आप उन्हें बिना किसी महत्वपूर्ण प्रदर्शन के नुकसान के 65536 से 65 536 तक बढ़ा सकते हैं, लेकिन मैंने अभी भी खेल की प्रक्रिया को समय-समय पर अध्ययन के साथ जमीन के ऊपर एक क्षैतिज रूप में देखा। भूमिगत गुफाएँ।
खेल में निम्न तत्वों के स्तर होते हैं:



स्तर का मुखौटा


मिट्टी की बनावट, किनारों, किनारे के पैटर्न और सभी बनावटों को मिलाना


टाइल आकाश का नक्शा


नतीजतन, स्तर खींचा जाता है

स्तर प्रतिपादन एल्गोरिथ्म में दो भाग होते हैं - आकाश की परतें लोड करना और उनसे लंबन बनाना; ग्राउंड टेक्सचर लोड करना और एक शेडर को इनिशियलाइज़ करना जो इन टेक्सचर को ओवरले करता है।

पृथ्वी की विनाशकारी सतह का कार्यान्वयन



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


भौतिकी डिबगिंग परत सक्षम है

क्या खेल तैयार है? - नहीं



हाथ पर आकर्षक खेल यांत्रिकी के साथ पूरी तरह से काम कर रहे खेल, ऐसा लगता है कि ऐप स्टोर पहले से कहीं ज्यादा करीब है। लेकिन नाम के साथ स्तर Test1, Test2 और किसी भी डिजाइन के बिना एक आयताकार जहाज कुछ और की बात करते हैं। यह डिजाइन और सामग्री के लिए समय है।

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

उनके कार्यों में से एक "सर्वश्रेष्ठ" है

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

नतीजतन, उन्हें अभी भी एक डिजाइनर मिला जो काम सौंपा कार्यों के साथ सफलतापूर्वक सामना किया और हमारी टीम का एक अनिवार्य हिस्सा बन गया।


एंटी-एयरक्राफ्ट माउंट और ब्लैक होल


बम विस्फोट

अनुकूलन और स्मृति लीक



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

परिणाम। तत्परता - 90%



विकास का आधा साल। लगभग समाप्त खेल। स्वयं के वित्तपोषण की संभावना का अंत।
बाकी से:


नियोजित से:


क्या बेहतर किया जा सकता है



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

किकस्टार्टर अभियान



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

दूसरे का क्या होगा यह स्पष्ट नहीं है, लेकिन एक परेशान करने वाली प्रवृत्ति है।

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


All Articles