हाय, मैं Guilherme हूँ, Cave Engine के मुख्य डेवलपर, और मैं आपके लिए यह रिलीज़ नोट लिखकर बहुत खुश हूँ।
पिछले चार महीनों में स्टूडियो में काफी हलचल रही है, और हम पहले से कहीं अधिक गेम और टूल्स विकसित कर रहे हैं। Uniday Studio में हम जो अगला गेम बना रहे हैं वह अब तक के किसी भी काम से कहीं अधिक जटिल है, और इसके कारण इंजन का विकास भी बहुत हुआ है। यह रिलीज़ नोट आपको इसका व्यावहारिक अनुभव दिखाएगा।
Cave Engine 1.4 सचमुच इंजन का अब तक का सबसे बेहतर संस्करण है। इसमें अनगिनत सुधार और बग फिक्स किए गए हैं, और यह Windows और Linux दोनों के लिए अधिक स्थिर हो गया है। बेहतर उपयोगकर्ता अनुभव, बेहतर प्रदर्शन, अधिक टूल्स, और उन्नत फीचर्स की उम्मीद करें जो आपको आपके गेम बनाने में मदद करेंगे।
क्या नया है?
मैं यहाँ आपके लिए सबसे रोमांचक फीचर्स पर प्रकाश डालने की कोशिश करूंगा, तो आइए सीधे इसमें कूदते हैं और एक्सप्लोर करते हैं।
नए आने वालों के लिए नया ऑनबोर्डिंग ट्यूटोरियल
यदि आप नए हैं, तो Cave सीखने के लिए यह अब तक का सबसे अच्छा संस्करण है। संस्करण 1.4 में इंजिन में एक ऑनबोर्डिंग सिस्टम शामिल है जो आपको पहली बार इंजन में कदम रखने में मदद करता है (UI में एकीकृत), जिससे आप यह सीख सकें कि गेम को कैसे टेस्ट करें, संशोधित करें, और इसे रनटाइम के रूप में कैसे एक्सपोर्ट करें। मैंने इंजन के अंदर के ट्यूटोरियल और डाक्यूमेंटेशन को भी काफी बेहतर कर दिया है ताकि सभी का काम आसान हो जाए।

यह मेरे प्रयास का हिस्सा है कि मैं ट्यूटोरियल्स बनाने की बजाय इंजिन इतना आसान बनाऊं कि ट्यूटोरियल्स की ज़रुरत ही न पड़े। :)
नया प्रोजेक्ट निर्माण अनुभव
अब Cave में नया प्रोजेक्ट बनाना बहुत अधिक रोमांचक है और कई नए फीचर्स के साथ आता है।

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

- बेहतर Terrain जेनरेशन, और अब сцेन में जोड़े गए ऑब्जेक्ट उस पर संरेखित होंगे।
- वाहन कंट्रोलर (मेश और भौतिकी के साथ) एक टेम्पलेट के साथ शामिल।
- दुश्मन का टेम्पलेट जिसमें Cave के State Machine System का उपयोग करके एक बुनियादी Wander AI है।
- और अधिक डिफ़ॉल्ट मेश प्रिमिटिव्स, इस बार आपको कुछ ब्लॉकमेश निर्माण एसेट्स (दीवारें, दरवाज़े, खिड़कियां, सीढ़ियाँ आदि) दिए गए हैं।
- नया डिफ़ॉल्ट "रैम्प" मेश।
अनगिनत एडिटर UI और UX सुधार
मैंने एडिटर यूजर इंटरफेस और संपूर्ण उपयोगकर्ता अनुभव में बहुत सारे सुधार किए हैं। मैं मुख्य सुधारों को हाइलाइट करने की कोशिश करूंगा ताकि आप बाकी खुद एक्सप्लोर कर सकें।
नया UI एलिमेंट कंपोनेंट UI

अब UIElement की स्थिति, स्केल, और एंकर पॉइंट सेट करना बहुत आसान और सहज हो गया है। मैंने Behavior टैब में भी सुधार किए हैं।
Python Script Editor में सुधार
जब आप Asset Browser से कोई Python स्क्रिप्ट खोलने के लिए क्लिक करते हैं, तो अब आप इसे Properties टैब में सीधे फुल-हाइट एडिटर का उपयोग करके संपादित कर सकते हैं। इसका मतलब है कि अब स्क्रिप्ट को किसी एक्सटर्नल टैब में खोलने के लिए दो बार क्लिक करने की ज़रुरत नहीं है। यह Cave के एडिटर में कोड लिखना बहुत आसान बनाता है।

अब हमारे पास एक Inspect टैब भी है जहां आप अपनी स्क्रिप्ट की सामग्री देख सकते हैं, और एडिटर टूल्स का अपना समर्पित टैब है जहां आप टूल रजिस्टर या रीलोड कर सकते हैं या एडिटर में स्क्रिप्ट चला सकते हैं।
Shader Program Editor में सुधार
Python स्क्रिप्ट एडिटर सुधारों की तरह, अब Shader Programs को पूरी तरह से संपादित करने के लिए कहीं और क्लिक करने की आवश्यकता नहीं है। Vertex और Fragment शेडर सीधे Properties टैब में दिखाई देते हैं ताकि आप उन्हें एडिट कर सकें। यदि चाहें तो आप उन्हें अलग-अलग टैब में भी खोल सकते हैं।
Console टैब में सुधार
अब सभी संदेशों को क्लिपबोर्ड पर कॉपी करने के लिए एक बटन है। यह डिबगिंग के दौरान या कंसोल आउटपुट साझा करते समय उपयोगी है।
नए Entity ... मेनू में Proto Character और Vehicle

अगर आपने अपने नए प्रोजेक्ट्स में अब डिफ़ॉल्ट के रूप में आने वाले Proto Character या Vehicle को डिलीट नहीं किया है, तो ये आपके लिए एक विकल्प के रूप में दिखाई देंगे ताकि आप उन्हें Shift + A दबाकर अपनी सीन में जल्दी जोड़ सकें।
ऑटोमैटिक रूप से Rigidbody बनाएं
जब आप Asset Browser से कोई मेश सीन में ड्रैग करते हैं, तो आप Drag + Ctrl दबाकर उसके लिए स्वचालित रूप से एक rigid body बना सकते हैं।
Blender जैसे कैमरा कंट्रोल (3D व्यू)
यह शायद Cave Engine के शुरूआती दिनों से सबसे अधिक मांगा गया फीचर है, और अब यह आखिरकार यहाँ है। 3D व्यू में नेविगेट करते समय, आप मिडिल माउस बटन का उपयोग करके ऑब्जेक्ट्स के चारों ओर ऑर्बिट कर सकते हैं, बिल्कुल Blender की तरह।
यह फीचर अभी प्रयोगात्मक है, इसलिए यदि आप कोई समस्या रिपोर्ट करना चाहते हैं या सुधार सुझाना चाहते हैं, तो कृपया हमारे Discord सर्वर पर बताएं।
State Machine System में सुधार

जब आप स्टेट ट्रांज़िशन के लिए कोड लिख रहे हैं, तो अब आपको "from state" लोकल वेरिएबल्स को डिक्शनरी प्रॉपर्टीज़ की तरह एक्सेस करने की ज़रूरत नहीं है। आप उन्हें तुरन्त लोकल वेरिएबल्स की तरह एक्सपेक्ट कर सकते हैं।
इस अपडेट से पहले का ट्रांज़िशन कोड (उदाहरण):
result = state.get("myVar") == 3
अपडेट के बाद (उदाहरण):
result = myVar == 3
Path Component System में सुधार

Path Component और Path Tool पिछले Cave संस्करण (1.3) में प्रयोगात्मक के रूप में जोड़े गए थे, और तब से काफी विकसित हुए हैं। 1.4 के लिए मुख्य हाइलाइट्स दो नए PathComponent मेथड्स हैं: GetSampleAdvance(...) और GenerateProceduralMesh(...)।
पहला फंक्शन आपको एक पोजीशन देता है और उस पोजीशन के अनुसार path component पर निकटतम पोजीशन और एक एडवांस वैल्यू देता है। यह इसलिए उपयोगी है क्योंकि इसी से आप कैरेक्टर, वाहन, या अन्य किसी चीज़ को पथ का अनुसरण करवा सकते हैं।
दूसरा फंक्शन नाम के अनुसार एक मेश लेता है और पथ के साथ प्रोसीजरली एक नया मेश बनाता है, जिससे आप सड़कें, दीवारें, इमारतें आदि बना सकते हैं।
Terrain System में सुधार
Cave के terrain सिस्टम को इस संस्करण में कई सुधार मिले हैं, और मैं पहले से ही एक बात कह सकता हूँ: अब पूरे terrain को रेंडर करना बहुत तेज़ हो गया है।

अब आप UNDO कर सकते हैं! (Ctrl + Z)
हाँ, अब आप Terrain Tool का उपयोग करके अपने टेरेन डिस्टॉर्शन या अन्य कोई भी बदलाव Undo कर सकते हैं। यह एक बहुत अच्छी गुणवत्ता वाला फीचर है।
Terrain Rendering ऑप्टिमाइज़ेशन
मैंने इंजन में ड्रॉ कॉल्स की संख्या लगभग 100 गुना तक कम कर दी है, जिससे यह सैद्धांतिक न्यूनतम के करीब आ गया है। साथ ही, आंतरिक सिस्टम को और बेहतर किया गया है ताकि Terrain रेंडरिंग और अधिक ऑप्टिमाइज़ हो। बेहतर प्रदर्शन की उम्मीद करें।
नया Path Alignment मोड
जैसा कि पहले बताया गया, path सिस्टम में काफी सुधार हुआ है। इसका असर terrain सिस्टम पर भी पड़ा है क्योंकि अब आप अपनी सीन में path चुनकर उसे terrain को Terraform करने के लिए उपयोग कर सकते हैं। यह रास्ते और इसी तरह की विशेषताएँ बनाने के लिए बहुत अच्छा है।
बेहतर Heightmap जेनरेशन
डिफ़ॉल्ट heightmap जेनरेशन पहले औसत दर्जे का था, इसलिए अब इसे बेहतर बनाकर और अधिक रोचक परिदृश्य उत्पन्न किए जाते हैं। हमने एक समस्या भी ठीक की है जहां हर terrain एक ही seed का उपयोग करता था और इसलिए वे हमेशा समान दिखते थे।
अब ऐसा नहीं है, और आप कोड के माध्यम से रैंडम सीड सेट कर सकते हैं जो terrain जनरेशन सीड्स को भी अपडेट करेगा।
नया Terrain Raycasting मेथड
आप origin और target पोजीशन देते हुए terrain component को कॉल कर सकते हैं ताकि यह जांच सके कि क्या टेरेन से कोई collision होता है, और यदि होता है तो टकराव की पोजीशन और सामान्य आरेख को लौटाए।
Rendering Performance सुधार
इंटरनल OpenGL कैशिंग सिस्टम पर बहुत काम किया गया है ताकि ड्राइवर ओवरहेड को कम किया जा सके। Cave Engine में पहले से ही ड्राइवर ओवरहेड कम करने के लिए व्यापक कैशिंग और सिस्टम थे, लेकिन अब इसे और बेहतर किया गया है।
कुछ मामलों में, मैंने लगभग हजार गुना ड्राइवर ओवरहेड घटाने का निरीक्षण किया है। यह आपके मशीन पर निर्भर करता है, लेकिन अगर आप पहले ड्राइवर ओवरहेड की सीमा में थे, तो इस संस्करण में आपको महत्वपूर्ण प्रदर्शन सुधार देखने को मिल सकता है।
नई आंतरिक अनुकूलन में शामिल हैं:
- शेडर प्रोग्राम बाइंडिंग कैश
- यूनिफ़ॉर्म वैल्यू कैशिंग
- कैश अमान्यकरण लॉजिक
इन परिवर्तनों से अनावश्यक OpenGL कॉल कम होते हैं और रेंडरिंग प्रदर्शन में सुधार होता है।
साथ ही:
- यूनिफ़ॉर्म बाइंडिंग सुरक्षा सुधार
- AMD डेप्थ क्लियरिंग समस्याओं के लिए संभावित समाधान
लिनक्स संस्करण सुधार
मैंने उन अनगिनत Python पाथ समस्याओं को भी ठीक किया है जो कुछ लिनक्स उपयोगकर्ता इंजन का उपयोग करते समय अनुभव कर रहे थे, खासकर जब नया प्रोजेक्ट बनाया जा रहा था।
नए Python API
ऊपर उल्लिखित अधिकांश सुविधाओं के साथ, उन्हें समर्थन देने के लिए नए Python API जोड़े या अपडेट किए गए हैं, लेकिन इससे भी अधिक है। मैं यहां कुछ सूचीबद्ध करूँगा।
VehicleComponent.SetSteering(...)
Mesh.AddMeshAsLod(...)
PathComponent.GenerateProceduralMesh(...)
PathComponent.GetSampleAdvance(...)
PathEdge.GetPointA()
PathEdge.GetPointB()
Transform.AlignAxis(...)
VSync और FPS सीमाओं के लिए नए विकल्प भी जोड़े गए हैं। सभी नई चीज़ें देखने के लिए Python स्टब्स देखें।
अधिक cave.ui API और बेहतर टूल विकास
यदि आप कस्टम टूल्स लिखना पसंद करते हैं या उन्हें आवश्यक मानते हैं ताकि आप संपादक के लिए अपने गेम बनाने या विकास के दौरान सहायता कर सकें, तो आपकी ज़िंदगी अब बेहतर हो गई है। आप अब हमारे cave.ui कोड से API स्टब्स देख सकते हैं और एक अधिक स्थिर संपादक टूलिंग अनुभव की अपेक्षा कर सकते हैं। जब गेम रीलोड होता है, तो डिबग टैब भी रीलोड हो जाते हैं।
बग फिक्सेस
इस रिलीज़ में निम्नलिखित सुधार शामिल हैं:
- लिनक्स एक्सपोर्ट समस्याओं को ठीक किया
- गलत Python पाथ के कारण लिनक्स क्रैश ठीक किया
- टेरेन हाइटमैप हमेशा एक ही परिणाम क्यों जनरेट करता था, इसे ठीक किया
- टेम्पलेट रीलोड रेकर्शन क्रैश ठीक किया
- मैन्युअल एक्सपोज़र के उपयोग पर ब्लैक थंबनेल की समस्या ठीक की गई
- गलत डिफ़ॉल्ट DebugTab कोड ठीक किया
- स्ट्रिंग खाली होने पर CodeEditor संपादनीय नहीं होने की समस्या ठीक की गई
- एनिमेटेड मेशेस के गलत AABB बाउंड्स ठीक किए
- टेरेन चंक कलिंग त्रुटियाँ ठीक कीं
- StateMachine कंपोनेंट रेफरेंस गायब होने की समस्या ठीक की गई
- विभिन्न संपादक UI टाइपो ठीक किए
- डाक्यूमेंटेशन टाइपो ठीक किए
- EntityMap क्रैश ठीक किया
- CodeEditor स्ट्रिंग हाइलाइटिंग समस्याएँ ठीक कीं
- स्ट्रिंग के बाद CodeEditor कमेंट हाइलाइटिंग ठीक की गई
- क्लिपबोर्ड कॉपी इम्प्लीमेंटेशन को SDL का उपयोग करने के लिए ठीक किया गया
ज्ञात समस्याएँ
हमारे पास कुछ ज्ञात समस्याएँ हैं जिनका उल्लेख करना चाहिए। इन्हें अभी तक ठीक न करने का कारण या तो ये कम प्राथमिकता की हैं या फिर हम इन्हें लगातार पुनरुत्पादित नहीं कर पाए हैं। यदि आपके पास इनके बारे में कोई जानकारी हो, तो कृपया हमारे Discord सर्वर में बताएं।
- Cave कुछ (या ज्यादातर) Wayland लिनक्स सिस्टमों पर काम नहीं करता (फिलहाल केवल X11 समर्थित है)।
- कभी-कभी कैमरा एंगल के आधार पर टेरेन चंक गायब हो जाता है (एक झूठी सकारात्मक कलिंग समस्या)। यह बहुत ही दुर्लभ ग्लिच है और मैं इसे अभी तक पुनरुत्पादित नहीं कर पाया हूं।