Cave: शुरूआती मार्गदर्शिका

Back to Learn

Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Cave को सीखना आसान बनाने के लिए डिज़ाइन किया गया है, लेकिन इसके कुछ महत्वपूर्ण अवधारणाएँ हैं जिन्हें आपको समझना ज़रूरी है।

यह पाठ उन मुख्य शब्दों को समझाता है जो आप एडिटर में हर जगह देखेंगे: scene, entity, component, asset, entity template, transform, rigid body, character component, Python component, logic brick, timeline, और runtime।

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

बड़ा चित्र

अधिकांश Cave प्रोजेक्ट कुछ दोहराए जाने वाले विचारों से बने होते हैं:

अवधारणा सरल अर्थ
Scene एक स्तर, मेनू, परीक्षण क्षेत्र, या खेलने योग्य जगह।
Entity एक scene के अंदर एक वस्तु।
Component एक entity से जुड़ी विशेषता।
Asset Asset Browser में स्टोर किया गया पुन: उपयोग होने योग्य परियोजना सामग्री।
Entity Template पुन: उपयोग करने योग्य entity सेटअप, prefab के समान।

उदाहरण के लिए, एक स्तर में लकड़ी का crate सोचें:

image.png

  • स्तर एक Scene है।
  • उस स्तर में रखा crate एक Entity है।
  • crate की स्थिति उसके Transform में संग्रहीत है।
  • दृश्य मॉडल Mesh Component द्वारा संभाला जाता है।
  • टकराव Rigid Body Component द्वारा संभाला जा सकता है।
  • crate द्वारा उपयोग किया गया मॉडल, मटेरियल और टेक्सचर Assets हैं।

यदि आप उस crate सेटअप को कई सीन में पुन: उपयोग करना चाहते हैं, तो आप इसे Entity Template के रूप में सहेज सकते हैं।

Scene

एक scene entities का संग्रह है।

Scenes का उपयोग किया जा सकता है:

  • गेम के स्तरों के लिए।
  • मेनू के लिए।
  • परीक्षण मानचित्रों के लिए।
  • प्रोटोटाइप कमरे के लिए।
  • कटसीन स्थानों के लिए।

मुख्य 3D दृश्य में केवल सक्रिय scene संपादित किया जाता है। जब आप गेम का परीक्षण करते हैं, तो Cave scene को गेमप्ले के रूप में चलाता है न कि केवल एडिटर सामग्री के रूप में।

जब आप प्रोजेक्ट को runtime के रूप में निर्यात या परीक्षण करते हैं, तो प्रोजेक्ट सेटिंग्स तय करती हैं कि कौन सा scene स्टार्टअप scene के रूप में उपयोग होगा। आप इसे Settings Tab में जाकर बदल सकते हैं।

Entity

एक entity scene में एक वस्तु होती है।

Entities दृश्यमान या अदृश्य हो सकती हैं। वे सरल या जटिल हो सकती हैं।

Entities के उदाहरण:

  • एक खिलाड़ी चरित्र।
  • एक दरवाज़ा।
  • एक कैमरा।
  • एक लाइट।
  • एक ट्रिगर।
  • एक UI बटन।
  • एक स्पॉन पॉइंट।
  • संगठन के लिए उपयोग किया गया एक फोल्डर।

एक entity अपने आप में मुख्य रूप से एक कंटेनर है। इसकी क्षमताएँ उस पर जुड़े components पर निर्भर होती हैं

Component

एक component एक entity में व्यवहार या डेटा जोड़ता है।

हर संभव चीज़ के लिए एक बड़ा ऑब्जेक्ट टाइप बनाने के बजाय, Cave आपको entities को components को मिलाकर बनाने देता है। और यही आपसे अपेक्षित है कि आप अपने गेम के विभिन्न तत्वों को अलग-अलग component प्रकारों का संयोजन करके बनाएं।

उदाहरण के लिए:

Entity संभावित Components
Static wall Transform, Mesh, Rigid Body.
Player Transform, Character, Camera, Python.
Door Transform, Mesh, Rigid Body, Python या Logic Bricks.
Point light Transform, Light.
UI button UI Element.

यह Cave का एक सबसे महत्वपूर्ण विचार है: Entities कंटेनर हैं। Components उन्हें विशेषताएँ देते हैं।

यहाँ यह भी महत्वपूर्ण है कि आपके विभिन्न ऑब्जेक्ट प्रकारों को संयोजित करने का एक अन्य तरीका बच्चों की entity hierarchy में कई entities का उपयोग करना भी है।

Entity का नामकरण

जब आप एक नया entity बनाते हैं, तो Cave विभिन्न प्रारंभिक प्रकार प्रदान करता है, जैसे Folder, Empty, Mesh, Point Light, Camera, UI Element, Text, और Button।

यह पूरी तरह से अलग-अलग दुनिया नहीं हैं। ये सुविधाजनक प्रारंभिक बिंदु हैं।

उदाहरण के लिए:

  • एक Empty एक बुनियादी entity है जिसमें transform होता है।
  • एक Mesh entity एक entity है जो mesh प्रदर्शित करने के लिए तैयार है।
  • एक Point Light entity एक entity है जो लाइट के रूप में व्यवहार करने के लिए तैयार है।
  • एक Camera entity एक entity है जो दृश्य रेंडर करने के लिए तैयार है।
  • एक Folder मुख्य रूप से संगठन के लिए उपयोग किया जाने वाला entity है।

आप आमतौर पर components को बाद में जोड़, हटाने या संपादित कर सकते हैं, इसलिए प्रारंभिक प्रकार केवल एक सहायक शॉर्टकट है।

Transform

transform Cave को बताता है कि एक entity कहाँ है और वह कैसे व्यवस्थित है।

यह शामिल है:

  • स्थिति।
  • घुमाव।
  • आकार।

लगभग हर scene entity में transform होता है क्योंकि अधिकांश वस्तुओं को दुनिया में कहीं होना ज़रूरी है। जब आप gizmo से एक entity को स्थानांतरित, घुमाते या आकार बदलते हैं, तो आप उसका transform संपादित कर रहे होते हैं। जब एक entity को किसी अन्य entity के पालक (parent) के रूप में सेट किया जाता है, तो उसका transform उस पदानुक्रम के सापेक्ष मूल्यांकित होता है।

Asset

एक asset पुन: उपयोग योग्य परियोजना सामग्री है जो Asset Browser में संग्रहित होती है। ध्यान देने वाली बात है कि एक Entity आंतरिक रूप से एक Asset माना जाता है, लेकिन Asset और Entity एक ही चीज़ नहीं हैं।

उदाहरण:

  • एक mesh asset मॉडल डेटा है। एक mesh entity scene में रखा गया ऑब्जेक्ट है जो उस mesh asset का उपयोग करता है।
  • एक material asset सतह की दिखावट को परिभाषित करता है। एक mesh entity उस material का संदर्भ दे सकता है।
  • एक Python script asset कोड रखता है। एक Python component उस स्क्रिप्ट का उपयोग कर सकता है।

यह विभाजन शक्तिशाली है क्योंकि एक asset कई बार पुन: उपयोग किया जा सकता है। यदि दस crates एक ही material का उपयोग करते हैं, तो material asset संपादित करने पर वे सभी अपडेट हो जाएंगे।

Entity Template

एक entity template एक पुन: उपयोग करने योग्य entity सेटअप है। नीचे स्क्रीनशॉट देखें। Entity Template Assets इसकी थंबनेल के नीचे हरे रंग की रेखा से चिह्नित होते हैं:

image.png

यदि आप किसी अन्य इंजन से आते हैं, तो आप इसे prefab के समान सोच सकते हैं

एक entity template संग्रहित कर सकता है:

  • एक entity पदानुक्रम।
  • Components।
  • Component सेटिंग्स।
  • Asset संदर्भ।
  • एकाइ बच्चों को।

यह किसी भी चीज़ के लिए उपयोगी है जिसे आप पुन: उपयोग करना चाहते हैं:

  • दुश्मन।
  • पिकअप।
  • दरवाज़े।
  • Props।
  • वाहन।
  • UI विजेट।
  • गेमप्ले ऑब्जेक्ट।

बार-बार एक ही ऑब्जेक्ट बनाने की बजाय, आप इसे एक बार entity template के रूप में बनाते हैं और जहाँ ज़रूरत हो वहाँ इसके उदाहरण (instances) रखते हैं।

Rigid Body

एक rigid body एक entity को भौतिक व्यवहार देता है। इसका उपयोग तब किया जाता है जब किसी वस्तु को टकराव या भौतिक गति की ज़रूरत होती है।

उदाहरण:

  • एक crate जो खिलाड़ी को रोकता है।
  • एक गेंद जो घूम सकती है।
  • एक दरवाज़ा जिसमें टकराव होता है।
  • एक दीवार जिससे खिलाड़ी नहीं गुजर सकता।

Rigid bodies भौतिकी (physics) पक्ष का हिस्सा हैं। जब वस्तुओं को दुनिया के साथ भौतिक रूप से इंटरैक्ट करने की जरूरत होती है, तो आप उनका उपयोग करेंगे।

Character Component

एक character component चरित्र-शैली की गति के लिए उपयोग किया जाता है। यह एक सामान्य rigid body से अलग होता है क्योंकि एक चरित्र को आमतौर पर विशेष व्यवहार की आवश्यकता होती है:

  • चलना।
  • दीवारों के साथ फिसलना।
  • ढलानों को संभालना।
  • कूदना।
  • खिलाड़ी इनपुट का जवाब देना।

एक खिलाड़ी या NPC के लिए, character component आमतौर पर एक बेसिक फिजिक्स ऑब्जेक्ट को चरित्र की तरह व्यवहार कराने से बेहतर शुरुआती बिंदु होता है।

जब हम Cave में Character Component की बात करते हैं, तो हम इसके Character Physics की चर्चा कर रहे हैं, न कि गेम विशिष्ट तर्क (जैसे मूवमेंट आदि) की।

टैग और प्रॉपर्टीज़

टैग और प्रॉपर्टीज़ entities को पहचानने और कॉन्फ़िगर करने में आपकी मदद करते हैं।

  • टैग एक लेबल होता है जो स्क्रिप्ट्स या लॉजिक को चीज़ों को खोजने और वर्गीकृत करने में मदद करता है।
  • प्रॉपर्टीज़ संपादन योग्य मान होते हैं जो एडिटर में दिखाए जाते हैं। वे बार-बार कोड लिखे बिना व्यवहार को समायोजित करने देते हैं।

उदाहरण के लिए, एक दुश्मन के पास प्रॉपर्टीज़ हो सकती हैं:

  • चलने की गति।
  • स्वास्थ्य।
  • हमला दूरी।
  • गश्त लक्ष्य।

अच्छा उपयोग आपके गेम को अनुकूलित करने में आसान बनाता है।

प्रॉपर्टीज़ केवल Entities तक सीमित नहीं हैं: Scenes, Logic Bricks, और अन्य Assets में भी हो सकती हैं।

जब हम Cave में प्रॉपर्टीज़ की बात करते हैं, तो हम विशेष रूप से उन प्रॉपर्टीज़ की बात कर रहे हैं जो Python dictionaries के माध्यम से कोड से एक्सेस की जा सकती हैं। वे लगभग हमेशा एडिटर में भी उपलब्ध होती हैं।

Python Component

Python component एक entity को Python लॉजिक चलाने देता है।

यह तब उपयोगी होता है जब आप कस्टम व्यवहार चाहते हैं, जैसे:

  • दरवाज़ा खोलना।
  • प्लेटफॉर्म को हिलाना।
  • खिलाड़ी इनपुट को संभालना।
  • एक ऑब्जेक्ट पैदा करना।
  • UI टेक्स्ट अपडेट करना।
  • इवेंट ट्रिगर करना।

Python components Cave में गेमप्ले प्रोग्रामिंग के मुख्य तरीकों में से एक हैं।

Python Code Component

Python Code component तब उपयोग किया जाता है जब कोड सीधे component में संग्रहित होता है, बजाय इसके कि उसे अलग स्क्रिप्ट asset के रूप में जोड़ा जाए। यह त्वरित परीक्षण, छोटे व्यवहार, या प्रोटोटाइप के लिए उपयोगी हो सकता है।

बड़े गेमप्ले सिस्टम के लिए, अलग Python script asset रखना प्रबंधित करना और पुन: उपयोग करना आसान होता है।

Logic Brick

Logic bricks लॉजिक बनाने का एक दृश्य तरीका हैं। ये तब उपयोगी होते हैं जब आप सीधे Python कोड लिखे बिना व्यवहार बनाना चाहते हैं।

यदि आप Unreal के Blueprints जानते हैं, तो logic bricks उसी विचार परिवार में आते हैं: आप लॉजिक को विज़ुअली जोड़ते हैं बजाय इसे टेक्स्ट के रूप में लिखने के।

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

आप इन्हें इस गाइड में आगे सीखेंगे।

Timeline

एक timeline एक asset है जो ऑथर्ड अनुक्रमों के लिए उपयोग किया जाता है। Timelines समय के साथ चीजों को एनिमेट या ट्रिगर कर सकते हैं।

वे उपयोगी हैं:

  • कटसीन्स के लिए।
  • कैमरा मूव्स के लिए।
  • स्क्रिप्टेड इवेंट्स के लिए।
  • समन्वित गेमप्ले अनुक्रमों के लिए।

हर गेम के लिए Timelines ज़रूरी नहीं होते, लेकिन जब आप चाहते हैं कि कुछ विशेष क्रम में घटित हो, तब ये उपयोगी होते हैं।

महत्वपूर्ण: Timelines व्यक्तिगत एनिमेशन संपादन के लिए नहीं होते, जैसे आपके चरित्र के लिए Walk Cycle एनिमेशन संपादन। इस स्थिति में, आपको Blender जैसे विशेष DCC सॉफ़्टवेयर का उपयोग करना होगा, फिर उसे Cave में आयात करना होगा।

Player और Game Runtime

  • Cave Editor वह जगह है जहाँ आप प्रोजेक्ट बनाते हैं।
  • Cave Player runtime है जो गेम चलाता है।

जब आप एडिटर में Play दबाते हैं, तो Cave आपके scene को गेम जैसा मोड में एडिटर के अंदर चलाता है। जब आप स्टैंडअलोन runtime के रूप में परीक्षण करते हैं, तो Cave गेम को अलग player विंडो में लॉन्च करता है।

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

सबसे महत्वपूर्ण संबंध

यदि आप इस पाठ से केवल एक बात याद रखें, तो इसे याद रखें:

एक सीन में एंटिटी होती हैं, एंटिटीज़ में कंपोनेंट्स होते हैं, और कंपोनेंट्स अक्सर असेट्स का उपयोग करते हैं।

यही Cave प्रोजेक्ट की रीढ़ है।