कंप्यूटर पर एक सरल गेम कैसे बनाएं। कंप्यूटर के लिए गेम कैसे बनाये जाते हैं? कंप्यूटर पर गेम के लिए प्रोग्राम

हर साल कंप्यूटर या मोबाइल गेम खेलने वालों की संख्या बढ़ती जा रही है। लोग उन्हें गेमर्स कहते हैं जो खिलौनों के बिना अपने जीवन की कल्पना नहीं कर सकते। कई लोग उन्हें बीमार लोग मानते हैं जिनका इलाज करने की ज़रूरत है। लेकिन साथ ही, ऐसे लोग भी हैं जिन्होंने नए गेम बनाकर गेमर्स से पैसा कमाना सीख लिया है। ऐसे में कई गेमर्स इसके बारे में सोचते हैं स्व-निर्माणखेल.


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

यदि आप अपना खुद का गेम बनाना चाहते हैं, तो आपके पास कुछ गेमिंग अनुभव होना चाहिए। यदि उपयोगकर्ता बहुत कम खेलता है, तो उच्च गुणवत्ता वाला उत्पाद बनाना काफी कठिन होगा। सही गेम बनाने के लिए, आपको गेम लॉजिक का पालन करना होगा और गेम की दुनिया के सभी पहलुओं से अवगत होना होगा।

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

खेल निर्माण

प्रारंभ में, आपको वह शैली चुननी होगी जिसमें गेम बनाया जाएगा। मुख्य विचार प्रत्येक खेल का एक महत्वपूर्ण घटक है। सबसे आम खेल प्रथम-व्यक्ति शूटर शैली पर आधारित हैं। रेसिंग भी बहुत लोकप्रिय है. किसी विशेष खेल की लोकप्रियता जानने के लिए, बस एक निश्चित श्रेणी में उनकी संख्या गिनें।

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

एक शैली चुनने के बाद, आपको एक स्क्रिप्ट बनाना शुरू करना होगा। गेम बनाते समय यह एक बहुत ही महत्वपूर्ण घटक है। स्क्रिप्ट में एक शुरुआत, एक मुख्य पात्र, दुश्मन या प्रतिद्वंद्वी और एक अंत होना चाहिए। यह गेम के इंटरफेस और ग्राफिक्स पर भी काम करने लायक है।

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

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

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

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

कंप्यूटर या स्मार्टफोन पर खेलना किसे पसंद नहीं है? ऐसे शायद कुछ ही लोग होते हैं.

कुछ गेमर्स के लिए, गेम के प्रति उनका प्यार इतना बढ़ जाता है कि वे मनोरंजन को ही समझने लगते हैं और खुद गेम बनाने का सपना देखने लगते हैं। खैर, आज इस पोषित सपने को साकार करने के कई अवसर हैं!

यदि आप अपने खाली समय में अपना खुद का खिलौना बनाना चाहते हैं, तो इसके लिए विशेष निःशुल्क कार्यक्रमों की सूची देखें।

ब्लेंडर



इंटरैक्टिव गेम और 3डी कंप्यूटर ग्राफिक्स बनाने के लिए पेशेवर कार्यक्रमों का एक निःशुल्क पैकेज।

शुरुआती और पेशेवर दोनों के लिए काम के लिए पर्याप्त उपकरण हैं। ब्लेंडर में मॉडलिंग, एनीमेशन, वीडियो और ध्वनि प्रसंस्करण के लिए उपकरण शामिल हैं।

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

लेकिन आपको इस कार्यक्रम में काम करने के सबक मिलेंगे।

आगे बढ़ें, नए ब्रह्मांड बनाएं!

एकता 3डी


यह मोबाइल उपकरणों सहित एप्लिकेशन और गेम विकसित करने के लिए एक शक्तिशाली वातावरण है। यूनिटी 3डी से बनाए गए गेम विंडोज़, आईओएस, एंड्रॉइड, प्लेस्टेशन 3, एक्सबॉक्स 360 और Wii पर चलते हैं। आप किसी भी शैली के गेम बना सकते हैं; बनावट और मॉडल आसानी से आयात किए जाते हैं, और सभी लोकप्रिय छवि प्रारूप समर्थित हैं।

स्क्रिप्ट मुख्य रूप से जावास्क्रिप्ट में लिखी जाती हैं, लेकिन कोड C# में भी लिखा जा सकता है।

पर्यावरण में काम करने पर प्रशिक्षण सामग्री (पर) अंग्रेजी भाषा) आप लिंक के बाद आधिकारिक वेबसाइट पर पाएंगे।

क्लासिक का निर्माण करें

ओपन सोर्स 2डी और 3डी गेम बिल्डर। संचालन के लिए किसी प्रोग्रामिंग ज्ञान की आवश्यकता नहीं है। आपको बस एक ऑब्जेक्ट जोड़ना है और एनीमेशन चालू करना है।

कोई रूसी-भाषा संस्करण नहीं है, लेकिन इंटरफ़ेस बहुत स्पष्ट है, इसलिए आप अंग्रेजी के बुनियादी ज्ञान के साथ भी काम कर सकते हैं।

डिज़ाइनर न केवल मुफ़्त है - यह खुला स्रोत है, और यदि आप चाहें, तो आप इसे अनुकूलित कर सकते हैं और अपनी इच्छानुसार संपादित कर सकते हैं।

आप कंस्ट्रक्ट क्लासिक पाठ देख सकते हैं।

गेम मेकर लाइट



किसी भी शैली के सरल गेम विकसित करने के लिए एक निःशुल्क कार्यक्रम: प्लेटफ़ॉर्म, पहेली, एक्शन और 3डी गेम। शुरुआती लोगों के लिए उपयुक्त. आप अपनी स्वयं की छवियों और प्रभावों, या अंतर्निहित कार्यक्रमों का उपयोग कर सकते हैं। छवियों और प्रभावों के बड़े चयन तक पहुंचने के लिए, आपको पंजीकरण करना होगा।

काम करने के लिए किसी प्रोग्रामिंग ज्ञान की आवश्यकता नहीं है, लेकिन अगर चाहें तो कुछ स्क्रिप्ट स्वतंत्र रूप से लिखी जा सकती हैं। तो इस प्रोग्राम का उपयोग प्रोग्रामिंग सिखाने के लिए भी किया जा सकता है।

शुरुआती लोगों के लिए कार्यक्रम में काम करने के पाठ इस साइट पर हैं।

अवास्तविक विकास किट

गेम बनाने के लिए निःशुल्क इंजन. उन्नत विज़ुअलाइज़ेशन और विस्तृत सिमुलेशन के लिए ढेर सारी सुविधाओं और उपकरणों के साथ बहुत शक्तिशाली। आप कई आधुनिक प्लेटफ़ॉर्म के लिए गेम बना सकते हैं.

कार्यक्रम में पहले से ही बनावट, मॉडल, ध्वनियाँ, स्प्राइट और स्क्रिप्ट शामिल हैं। जो कुछ बचा है वह है संयोजन करना और अपना खुद का गेम बनाना।

कार्यक्रम के साथ काम करने के लिए वीडियो ट्यूटोरियल और मैनुअल देखे जा सकते हैं।

खेल संपादक

ऑपरेटिंग सिस्टम विंडोज़, आईओएस, एंड्रॉइड, लिनक्स के लिए सरल द्वि-आयामी गेम बनाने के लिए एक संपादक।

इसमें एनिमेशन के अंतर्निहित सेट हैं जो इसके लिए ज़िम्मेदार हैं उपस्थितिपात्र। आप अपने स्वयं के ग्राफ़िक तत्वों का उपयोग कर सकते हैं. कार्यक्रम भी प्रदान करता है मानक सेटप्रतिक्रियाएँ जो खेल में चरित्र के व्यवहार को निर्धारित करती हैं। लेकिन आप विशेष स्क्रिप्टिंग भाषा गेम एडिटर का उपयोग करके अपना स्वयं का भी बना सकते हैं।

3डी रेड



3डी गेम और इंटरैक्टिव एप्लिकेशन विकसित करने के लिए निःशुल्क कार्यक्रम। कोड का उपयोग करने की कोई आवश्यकता नहीं है, इसलिए अपने स्वयं के गेम बनाना काफी सरल है।

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

गेम मेकर: स्टूडियो

मोबाइल गेम बनाने के लिए टूल का एक निःशुल्क सेट। एक सरल, सहज ज्ञान युक्त इंटरफ़ेस जो गेम विकसित करने को काफी सरल बनाता है। किसी प्रोग्रामिंग ज्ञान की आवश्यकता नहीं है, क्योंकि आपको मैन्युअल रूप से कोड लिखने की आवश्यकता नहीं है।

प्रोग्राम की कार्यशील विंडो में कुछ भी अतिश्योक्तिपूर्ण नहीं है। गेम मेकर: स्टूडियो के साथ विकसित गेम क्रॉस-प्लेटफ़ॉर्म हैं, और तैयार एप्लिकेशन को स्टीम के साथ एकीकृत किया जा सकता है।

नियोएक्सिस 3डी इंजन

3डी परियोजनाओं के विकास के लिए एक सार्वभौमिक वातावरण।
यह अपने स्वयं के मॉडल, बनावट, भौतिकी, टेम्पलेट और ग्राफिक्स के साथ एक तैयार इंजन है। यहाँ तक कि 24 तैयार, पूर्ण विकसित कार्ड भी हैं!
इसका उपयोग न केवल गेम बनाने के लिए किया जा सकता है, बल्कि एकल मॉडल और जटिल सॉफ़्टवेयर विज़ुअलाइज़ेशन भी बनाया जा सकता है।

जो कुछ बचा है वह है अपनी कल्पना को चालू करना और सृजन करना।

क्या आप अपना खुद का गेम बनाने के इच्छुक हैं? कोई बात नहीं। एक कार्यक्रम चुनें और अपने सपने की ओर बढ़ें!

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

यह प्रोग्राम टॉप-डाउन गेम्स और साइड-व्यू प्लेटफ़ॉर्मर्स में उत्कृष्टता प्राप्त करता है।

"गेम मेकर" उन्नत प्रोग्रामर के लिए भी रुचिकर होगा; इसमें अपना स्वयं का प्रोग्राम कोड जोड़ने का अवसर भी है।

गेम मेकर प्रो के भुगतान किए गए संस्करण की तुलना में प्रोग्राम का मुफ़्त संस्करण किसी भी तरह से आम उपयोगकर्ताओं को सीमित नहीं करता है। भुगतान किया गया संस्करण जटिल सॉफ़्टवेयर मॉड्यूल तक पहुंच प्रदान करता है जो केवल वास्तविक पेशेवर प्रोग्रामर के लिए रुचिकर हैं।


एक बहुत ही सरल 2D गेम डिज़ाइनर। प्रोग्रामिंग भाषाओं का ज्ञान आवश्यक नहीं है।

गेम मेकर के विपरीत, कंस्ट्रक्ट 2 आईओएस, एंड्रॉइड, फेसबुक, क्रोम वेब स्टोर, डेस्कटॉप विंडोज, विंडोज 8 ऐप्स, वेब (एचटीएमएल5), कोंग्रेगेट और कई अन्य प्लेटफार्मों के लिए गेम बना सकता है।

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

हम प्रशिक्षण पाठ्यक्रम "ए से ज़ेड तक टीडीएस" ("टॉप-डाउन शूटर" शैली में एक गेम बनाना) की अनुशंसा करते हैं।


3डी गेम बनाने के कार्यक्रम (वेबसाइट)

3डी गेम इंजनों में "3डी रेड" सबसे सस्ता विकल्प है। कार्यक्रम का उपयोग पूरी तरह से नि:शुल्क किया जा सकता है, और $5 का भुगतान करने पर आपको नवीनतम अपडेट उसी दिन मिलते हैं जिस दिन वे जारी होते हैं (मुफ़्त संस्करण में, अपडेट केवल तीन महीने के बाद दिखाई देते हैं)। अक्सर, इस इंजन का उपयोग रेसिंग गेम बनाने के लिए किया जाता है।

कार्यक्रम में एक सरल और स्पष्ट इंटरफ़ेस है, जो छोटी-छोटी बातों पर बोझ नहीं है।

"3डी रेड" व्यक्तिगत प्लगइन्स की स्थापना का समर्थन करता है, इसमें एआई मॉडल, छाया और बनावट मानचित्र पहले से स्थापित हैं। ऑनलाइन गेम बनाना संभव है.


नियोएक्सिस गेम इंजन एसडीके

सरल इंटरफ़ेस और उच्च गुणवत्ता वाले ग्राफिक्स के साथ एक उत्कृष्ट गेम इंजन। लगभग किसी भी शैली में गेम बनाने के लिए डिज़ाइन किया गया।

Ogre3D इंजन के आधार पर बनाया गया। उपयोग की जाने वाली प्रोग्रामिंग भाषा C# और C++ और .NET प्लेटफ़ॉर्म है, लेकिन तैयार कार्यों की विशेष लाइब्रेरीज़ के कारण प्रोग्रामिंग के बिना ऐसा करना संभव है। इंजन में तृतीय-पक्ष उपयोगकर्ताओं द्वारा विकसित विभिन्न ऐड-ऑन और एक्सटेंशन हैं। 3dsMax और माया, ऑटोडेस्क सॉफ़्टिमेज और ब्लेंडर के लिए निर्यात करना संभव है। PSSM (समानांतर-विभाजित छाया मानचित्र) शेडर, प्रकाश व्यवस्था और छाया समर्थित हैं।

NeoAxis इंजन को 4 लाइसेंस प्रकारों के अंतर्गत वितरित किया जाता है: गैर-व्यावसायिक - गैर-व्यावसायिक परियोजनाओं के लिए निःशुल्क; इंडी लाइसेंस - $95/$295 (एकल/टीम); वाणिज्यिक - $395/995 (एकल/टीम); स्रोत लाइसेंस - $9,800 से।

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


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

यूनिटी 3डी किसी भी शैली के गेम बनाने के लिए उपयुक्त है। समर्थित प्लेटफ़ॉर्म नियमित कंप्यूटर (Windows XP/Vista/7, OSX), मोबाइल डिवाइस (Android, iOS, ब्लैकबेरी), गेम कंसोल (Wii, Playstation 3, Xbox), इंटरनेट ब्राउज़र (फ़्लैश, वेब प्लेयर) हैं।

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

एकमात्र नकारात्मक बात यह है कि यूनिटी 3डी का उपयोग करने के लिए आपको कम से कम मध्यवर्ती स्तर पर कंप्यूटर प्रोग्रामिंग जानने की आवश्यकता है। रेडीमेड प्रैक्टिकल की समृद्ध लाइब्रेरी के बावजूद सॉफ़्टवेयर समाधानऔर त्वरित संकलन के साथ एक शक्तिशाली स्क्रिप्टिंग इंजन; आपको जावास्क्रिप्ट या सी# में कुछ कोड स्वयं लिखना होगा।


अवास्तविक विकास किट (यूडीके)

पेशेवर गेम डेवलपर्स के बीच सबसे लोकप्रिय गेम इंजनों में से एक। अनरियल टूर्नामेंट सीरीज़, मास इफ़ेक्ट सीरीज़, एक्सकॉम, बॉर्डरलैंड्स 2, डीएमसी: डेविल मे क्राई और दर्जनों और सैकड़ों छोटे गेम जैसे गेम अनरियल इंजन पर बनाए गए थे।

"UDK" निम्नलिखित प्लेटफ़ॉर्म का समर्थन करता है: PC, Xbox 360, PlayStation 3, Wii, Android।

यह इंजन मूल रूप से 3डी शूटर बनाने के लिए डिज़ाइन किया गया था, लेकिन इसमें संबंधित शैलियों के गेम बनाने की क्षमता भी है: स्लैशर्स, एडवेंचर्स, एमएमओ गेम।

गेम इंजन पूरी तरह से चेहरे के एनिमेशन, जटिल भवन वास्तुकला बनाता है और जटिल भौतिक वस्तुओं को संसाधित करता है। यूडीके के पास सबकुछ है आवश्यक उपकरणएनिमेशन, बनावट, ध्वनि, स्तर, मॉडल, सॉफ्टवेयर स्क्रिप्ट बनाने के लिए। इसमें एक अंतर्निहित लाइब्रेरी है जिसमें 1000 से अधिक संरचनाएं, अन्य 3डी मॉडल, मानक बनावट और ध्वनियां शामिल हैं। एक विशेष भाषा "अवास्तविक स्क्रिप्ट" (C++ पर आधारित) में प्रोग्राम करना संभव है।

जब तक आप इस इंजन पर बनाए गए अपने गेम को आधिकारिक तौर पर प्रकाशित करने का निर्णय नहीं लेते, तब तक आप यूडीके का पूरी तरह से नि:शुल्क उपयोग कर सकते हैं। इस मामले में, आपको महंगे लाइसेंस के लिए भुगतान करना होगा।


क्रायइंजन 3 निःशुल्क एसडीके

"क्राइंजिन 3" आधुनिक गेम इंजनों का शिखर है, जो डायरेक्टएक्स 11 और तीसरी पीढ़ी के शेडर्स के समर्थन के साथ फोटोरियलिस्टिक ग्राफिक्स प्रदान करता है। इंजन का तीसरा संस्करण 2009 में बनाया गया था। फ़ार क्राई और क्राइसिस श्रृंखला के गेम इसी इंजन पर बनाए गए थे। ऑनलाइन गेम"आयन", साथ ही दर्जनों कम-ज्ञात कंप्यूटर गेम।

क्रायटेक कंपनी ने इस पहले से ही लोकप्रिय गेम इंजन को मुफ्त में वितरित करने का निर्णय लिया। लेकिन मुफ़्त संस्करण केवल तब तक चलता है जब तक आप इस इंजन पर बनाए गए गेम को आधिकारिक तौर पर रिलीज़ नहीं करना चाहते। लाइसेंस प्राप्त संस्करण सभी समान कार्यक्रमों की तुलना में अधिक महंगा है, लेकिन यह पैसे के लायक है।

"CryENGINE 3" पर आप प्लेटफ़ॉर्म के लिए गेम बना सकते हैं: PC, PlayStation 3 और Xbox 360।

आप ग्राफ़िक्स प्रोग्राम "3ds max", "माया" के साथ-साथ इंजन के पिछले संस्करणों से बनावट आयात कर सकते हैं।

CryENGINE 3 इंजन बहुत लोकप्रिय साबित हुआ, इसमें एक संपूर्ण रूसी भाषी समुदाय है, इसकी बदौलत आप सभी प्रकार की प्रशिक्षण सामग्री, साथ ही विशिष्ट प्रश्नों के उत्तर आसानी से पा सकते हैं।


खेल का विकास प्रगति पर है, यह आशाजनक है और लोकप्रियता प्राप्त कर रहा है। हमने सीखने के खेल विकास के पथ पर एक विस्तृत इन्फोग्राफिक तैयार किया है।

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

0. बच्चों के लिए खेलों का विकास

कई किताबें स्क्रैच जूनियर सहित बच्चों के लिए पौराणिक और सहज विकास वातावरण के साथ काम करने पर ध्यान केंद्रित करती हैं। आधार के बाद Python Pygame के बारे में जानकारी आती है। 5 साल के बच्चों के लिए एक किताब है, लेकिन अधिकांश सामग्री 8 साल और उससे अधिक उम्र के बच्चों के लिए उपयुक्त है।

1. कंप्यूटर विज्ञान

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

2. प्रोग्रामिंग भाषाएँ

कंप्यूटर की भाषा बोलना आसान नहीं है, लेकिन यह संभव है। और ऐसे बहुत सारे तरीके हैं. उदाहरण के लिए, C भाषा ने अपने सिंटैक्स को लोकप्रिय C#, C++ और Java के साथ साझा करके सॉफ्टवेयर उद्योग को महत्वपूर्ण रूप से प्रभावित किया है। बदले में, C++ प्रभावी प्रोग्राम और सॉफ़्टवेयर सिस्टम बनाने के लिए एक शक्तिशाली भाषा है। कई लोग C# में गेम भी लिखते हैं: भाषा तेज़, सुविधाजनक है और आपको तेजी से विकास शुरू करने की अनुमति देती है।

लेकिन लुआ ने C++ से कुछ अपनाया। गेम लॉजिक के लिए स्क्रिप्ट भाषा अच्छी है। इससे एक स्तर को आरंभ करना, कार्यों को वस्तुओं से बांधना, परियोजना को पुन: संकलित किए बिना एनपीसी के व्यवहार को अंतःक्रियात्मक रूप से बदलना और भी बहुत कुछ आसान हो जाएगा।

3. एप्लिकेशन बनाना

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

4. खेल के विकास के लिए गणित

नहीं, बीजगणित और ज्यामिति में कोई स्कूली पाठ्यक्रम नहीं होगा। चयन को खेल विकास के क्षेत्र में गणित की बुनियादी बातों और अधिक उन्नत स्तर में विभाजित किया गया है।

5. गेम प्रोग्रामिंग

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

6. गेम इंजन का विकास

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

7. कंप्यूटर ग्राफ़िक्स

हां, सामग्री महत्वपूर्ण है, लेकिन यह है कंप्यूटर चित्रलेखयह एप्लिकेशन इंटरफ़ेस का एक एनालॉग है जिसे उपयोगकर्ता देखेंगे। इसलिए इस पर विशेष ध्यान देना चाहिए.

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



8. गेम ऑडियो

खेल का विकास ऑडियो से भी संबंधित है: ये एनपीसी, मुख्य पात्र, घटना या वस्तुओं के साथ-साथ संगीत द्वारा बनाई गई ध्वनियाँ हैं। ऑडियो प्रोग्रामिंग में केवल दो पुस्तकें शामिल हैं, लेकिन वे आवश्यक जानकारी सुलभ तरीके से प्रदान करते हैं।

9. खेल भौतिकी और एनीमेशन

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

एक सप्ताह में आरपीजी? शुरूुआत से? क्या यह संभव भी है?
मैंने एक मौका लिया और मैंने यह किया।

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

गेम ऑफ द डे (www.gameinaday.com) के मासिक गेम समीक्षक टॉम बैम्पटन ने कहा, "इसके लिए आगे बढ़ें!" फिर उन्होंने एक अतिरिक्त शर्त जोड़ी - मुझे मौजूदा गेम इंजनों का उपयोग किए बिना ऐसा करना होगा। मैं केवल मुख्य लाइब्रेरी/एपीआई का उपयोग कर सकता हूं।

पहले तो मैंने इस विचार से इनकार कर दिया. कार्यस्थल पर वर्तमान गेम प्रोजेक्ट को विकसित करने से एक सप्ताह की छुट्टी लेने के लिए मेरे पास अतिरिक्त समय नहीं था। लेकिन फिर मैंने सोचा: भाड़ में जाए, एक सप्ताह क्या है? ई.ए. जैसी सामान्य कंपनी में, कार्य सप्ताह 40 घंटे का होता है। तो क्यों न खेल को एक कैलेंडर सप्ताह में नहीं, बल्कि 40 शुद्ध घंटों में बनाया जाए? यह पहले से ही अधिक वास्तविक है, लेकिन मैं कोई अन्य टेट्रिस या अर्कानॉइड नहीं बनाना चाहता था। किस बारे में भूमिका निभाने वाला खेल- सबसे कठिन गेमिंग शैलियों में से एक? क्या यह संभव है?

मैं जानता था कि यह बेहद कठिन होगा. लेकिन मैंने चुनौती स्वीकार कर ली.

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

तो इस तरह मैंने एक सप्ताह में बिना बजट के एक गेम बनाया। यदि आप पढ़ने में बहुत आलसी हैं और यह जानने के लिए कहानी के अंत पर तुरंत नज़र डालना चाहते हैं कि अंतिम उत्पाद कैसा दिखता है और इसके सभी बग देखें, तो आप गेम का विंडोज संस्करण यहां से डाउनलोड कर सकते हैं: http://www. ragantgames.com/hackenslash.html

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

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

विकास नियम

नियम #1: विकास का समय एक सप्ताह तक सीमित है (जिसमें 40 घंटे शामिल हैं)
गेम को विकसित करने में कुल मिलाकर 40 घंटे से अधिक समय खर्च नहीं किया जाना चाहिए। इसमें वास्तव में खेल पर काम करने और इसके बारे में सोचने में बिताया गया समय शामिल होगा। दस मिनट से अधिक समय तक विकास में रुकावट को ध्यान में नहीं रखा जाएगा। यह 40 अत्यधिक उत्पादक घंटों का एक "आदर्श" कार्य सप्ताह होगा।

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

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

नियम #3: कोई इंजन नहीं, केवल मानक लाइब्रेरी/एपीआई
गेम को मौजूदा गेम इंजनों का उपयोग किए बिना स्क्रैच से बनाया जाना चाहिए। कोई धोखाधड़ी नहीं, या गेम डिज़ाइनरों का उपयोग करके या समान सॉफ़्टवेयर का उपयोग करके गेम या उसका कोई भाग नहीं बनाना।

औजार
कोड:

पायथन 2.3 (http://www.python.org/)
पायथनविन
पायगेम (http://www.pygame.org/)
Py2exe - वितरण के लिए निष्पादन योग्य फ़ाइल में क्या होता है उसे संकलित करने के लिए। (http://starship.python.net/crew/theller/py2exe/)

जिम्प 2.0 (http://gimp-win.sourceforge.net/)
एमएस पेंट (जो विंडोज़ के साथ आता है) - प्रिंटस्क्रीन कुंजी द्वारा कैप्चर किए गए स्क्रीनशॉट डालने के लिए (जीआईएमपी ने किसी कारण से ऐसा करने से इनकार कर दिया)
मुफ़्त बनावट (http://www.textureartist.net/textures/index.htm) और (http://www.mayang.com/textures/) से ली गई थी

ऑडेसिटी (http://audacity.sourceforge.net/) और मेरा माइक्रोफोन या मुफ़्त।

कार्य की अनुसूची (योजना)।
अनुसूचियाँ तोड़ने के लिए बनाई जाती हैं, लेकिन प्रगति और लाइनों की निगरानी करने और आवश्यकतानुसार समायोजन करने के लिए उनकी अभी भी आवश्यकता होती है।

घंटा 1-10: बुनियादी वास्तुकला
इंजन और मुख्य घटकों का डिज़ाइन। दुनिया को स्क्रीन पर प्रदर्शित करें। मुझे एक टेस्ट खिलाड़ी को दुनिया भर में ले जाने और चीजों को देखने की क्षमता लागू करनी है और फिर उसे एक गेम एडिटर में बदलना है।

घंटा 11-20: खिलाड़ी विकल्प
खिलाड़ी के लिए सभी मुख्य संभावनाओं का कार्यान्वयन - हिलना, हमला करना, दरवाजे खोलना, मरना, चीजें उठाना और इन्वेंट्री का उपयोग करना। सभी वस्तुओं का एक कंकाल प्रतिनिधित्व बनाएं पर्यावरण, दुनिया के साथ बातचीत करने में खिलाड़ी की क्षमताओं का परीक्षण करने के लिए।

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

घंटा 31-40: सामग्री और नियम जोड़ना
टेक डेमो से पूरा गेम प्राप्त करें। सभी अतिरिक्त सामग्री जोड़ें. खेल यांत्रिकी की पूर्णता और संतुलन प्राप्त करें। आपके पास जो कुछ भी समय है उसे निखारें, विशेष प्रभाव, एनीमेशन आदि जोड़ें।

40 घंटों के बाद: गेम का परीक्षण और रिलीज़
पाई गई त्रुटियों का परीक्षण करें और उन्हें समाप्त करें (नई सुविधाएँ जोड़े बिना!) सभी चीज़ों को एक ढेर में इकट्ठा करें और इसे इंटरनेट पर पोस्ट करें। संपूर्ण दस्तावेज़ीकरण.

हैकेंसलैश डेवलपर डायरी: सप्ताह का खेल

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

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

धीरे-धीरे मैं यह समझने लगता हूं कि सब कुछ कैसे काम करेगा और आवश्यक सुधार करूंगा। मैं इस समय PyGame का उपयोग करने का प्रयास भी नहीं कर रहा हूं और प्रोग्राम कंसोल के अलावा कुछ भी नहीं दिखा रहा है। लेकिन मुझे लगता है कि जो कुछ भी किया गया है वह बहुत अच्छी प्रगति है!

घंटा 2 - पायगेम 101
इस घंटे का लक्ष्य PyGame को आरंभ करना और स्क्रीन पर कम से कम कुछ बनाना शुरू करना है। वास्तव में, मैं अपना अधिकांश समय PyGame दस्तावेज़ पढ़ने में बिताता हूँ, यह पता लगाने की कोशिश करता हूँ कि इसमें क्या है और इसे कैसे करना है, क्योंकि मुझे PyGame या SDL का उपयोग करने का लगभग कोई अनुभव नहीं है।

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

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

एक घंटा बीत गया. लेकिन मेरे पास अभी भी वही काली स्क्रीन है। वहाँ अभी भी कोई दीवारें नहीं थीं।

4 घंटे - होटल में एक निःशुल्क कमरा है
कुछ वाक्यविन्यास त्रुटियों से जूझने के बाद, मैं अंततः दीवारों को स्क्रीन पर प्रदर्शित करने में सक्षम हो गया। सच है, वे गलत तरीके से प्रदर्शित होते हैं, वे संकेतित स्थान पर नहीं हैं, और यहां तक ​​कि खंडों के बीच अंतराल के साथ भी। यह भयंकर है। लेकिन थोड़े से बदलाव और संपादन के साथ, मुझे स्क्रीन पर 10 बाय 10 वर्ग का कमरा जैसा दिखने वाला कमरा मिल गया।

नहीं हो रहे विस्तृत योजनाप्रोजेक्ट, भ्रमित होना वास्तव में काफी आसान है जब, कुछ काम पूरा करने के बाद, आप यह सवाल पूछते हैं कि "आगे क्या है?" मैंने निर्णय लिया कि यदि एक कमरे का चित्र बनाना अच्छा है, तो दो का चित्र बनाना दोगुना अच्छा होगा।

बनाए गए कमरों को संग्रहीत करने के लिए मैंने एक फ़ाइल "मिनीडंगऑन" बनाई।
मैं "पोर्टल्स" के लिए तर्क जोड़ना शुरू करूंगा - दीवारों में छेद जो अन्य कमरों तक ले जाते हैं (और आसन्न कमरों को सही ढंग से प्रदर्शित करने के लिए आवश्यक सभी ऑफसेट जानकारी प्रदान करते हैं)।

घंटा 5 - हैकेंसलैश को अधिक कमरे मिलते हैं

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

घंटा 6 - जिसके दौरान हम अपने ड्राइंग कौशल में सुधार करते हैं

एक दरवाज़ा वर्ग जोड़ा गया और दरवाज़े के स्थान के लिए मानचित्र भी कॉन्फ़िगर किए गए (दरवाजा दो कमरों के लिए सामान्य होना चाहिए)। (संपादित करें: काश मैंने इसका उपयोग कभी नहीं किया होता!)
मैंने 3 और दीवार टाइलें बनाईं और उन्हें एक छवि में संयोजित किया।
दीवारों का ग्राफिक स्वरूप प्रकार के आधार पर भिन्न होता है।
मैं करता हूं सरल ग्राफिक्सऊपर से नीचे के दृश्य के लिए.

घंटे 7-8 - चक्कर और विस्मयादिबोधक!

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

घंटे 9-11 - तत्व - ब्र्र्र!

और यहाँ फिर से, मुझे "आगे क्या है?" प्रश्न को हल करने की आवश्यकता है।

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

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

कुल मिलाकर, मैंने ग्राफिक्स बनाने और कोड लिखने के बीच तत्वों पर काम करते हुए लगभग तीन घंटे बिताए।

घंटे 12 - 13 - हमें लूट की ज़रूरत है!

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

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

घंटा 14 - कालीन

मैं तय समय से काफी पीछे हूं, मुझे क्या करना चाहिए?
काली पृष्ठभूमि बहुत बदसूरत लगती है, इसलिए मैंने कमरे के अंदर फर्श को कालीनों से ढक दिया - अलग टाइलें।

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

लेकिन अब लेवल अच्छा लग रहा है. ख़ैर, कम से कम काले रंग से ज़्यादा ठंडा।

घंटे 15-16 - क्लिक करें! क्लिक करें!

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

घंटा 17 - हम तब तक आसानी से आगे बढ़ते हैं जब तक हमारा माथा दीवार से नहीं टकरा जाता

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

घंटा 18 - दहलीज पार करना

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

घंटा 19 - स्वर्ग की सीढ़ी, नर्क का मेनू

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

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

मैं खिलाड़ी को नए कमरे में ले जाने के लिए सीढ़ियाँ सिखाता हूँ।
मैंने यह देखने के लिए इंटरनेट और PyGame दस्तावेज़ को थोड़ा खंगाला कि क्या समान PyGame मेनू के लिए कोई खुला स्रोत कोड है। और मुझे कुछ भी नहीं मिला.
मैंने अपना स्वयं का मेनू बनाना शुरू कर दिया।

घंटे 20 - 21 - मेनू में क्या है?

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

घंटा 22 - इस प्रक्रिया में सो जाओ

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

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

घंटा 23 - युद्ध पैरामीटर!

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

घंटा 24 - प्लेयर मेनू

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

घंटा 25 - फर्श और दीवारों को दोबारा काटने से पहले

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

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

कोड को डीबग करते समय, मुझे कमरों के बीच संक्रमण से संबंधित कई और त्रुटियाँ मिलीं।

ब्रेक - संकट!

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

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

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

यह निर्णय लेते समय कि मैं क्या नहीं करूँगा (या जिसे मैं बाद के लिए टाल दूँगा), यह निर्णय लेना भी उतना ही महत्वपूर्ण है कि पहले क्या करने की आवश्यकता है।

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

बढ़िया, हमने प्राथमिकताएँ तय कर ली हैं, आइए विकास जारी रखें।

घंटा 26 - चलो पासा पलटें

मैं "पासा" मैकेनिक पर काम कर रहा हूं, एक तंत्र जिसके द्वारा खेल में यादृच्छिकता का एक तत्व पेश किया जाएगा। चूँकि हमारे पास वास्तविक पासों की कोई सीमा नहीं है, हम प्राप्त कर सकते हैं यादृच्छिक संख्याकोई वांछित सीमा. उदाहरण के लिए 1 से 33, या 6 से 17 तक। तो मैं पासा पलट सकता हूं, तुलना कर सकता हूं कि मेरे हमले और दुश्मन के बचाव में क्या आया। यदि रोल किया गया नंबर रक्षा से अधिक है, तो हमला सफल होता है।

उदाहरण के लिए, मान लीजिए मेरे पास है सामान्य अर्थहमले 15। मैं एक राक्षस पर हमला करता हूं जिसके पास 10 बचाव हैं। मेरी संभावनाएँ 25 में से 15 (25 =15 +10), या 5 में से 3 हैं। इसलिए गेम 1 और 25 के बीच एक यादृच्छिक संख्या उत्पन्न करेगा, और यदि यह दस से अधिक है, तो मैं जीत जाऊंगा।

क्षति की गणना के लिए थोड़ी अलग विधि का उपयोग किया जाता है। मैंने रक्षक के लिए "कवच" पैरामीटर और हमलावर के लिए "क्षति" पैरामीटर जोड़ा। मैं 1 से उनके योग तक एक यादृच्छिक संख्या उत्पन्न करता हूं और फिर कवच घटा देता हूं। यदि परिणाम एक से कम है, तो कोई क्षति नहीं होती है। अन्यथा, यह प्राप्त परिणाम के बराबर है। इस प्रकार, यदि 10 क्षति वाला एक राक्षस 5 कवच वाले खिलाड़ी पर हमला करता है, तो गेम 1 से 15 तक एक संख्या उत्पन्न करेगा, जिसमें से वह 5 घटा देगा, जो कि हुई क्षति है।

इस स्पष्टीकरण और विवरण में इसके कार्यान्वयन से अधिक समय लगा।

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


शीर्ष