इस प्रोजेक्ट के बारे में
godot-rust एक लाइब्रेरी है जो Rust भाषा को Godot 4 के साथ एकीकृत करती है, जो एक ओपन-सोर्स गेम इंजन है जो उत्पादक, बैटरीज़-इन्क्लूडेड 2D और 3D अनुभव पर केंद्रित है। यह Godot के GDExtension API का उपयोग करता है, जो तृतीय-पक्ष भाषाओं और लाइब्रेरीज़ को इंजन में एकीकृत करने की अनुमति देता है।
दर्शन
यह बाइंडिंग GDScript के विकल्प के रूप में स्थित है, जो टाइप सुरक्षा, स्केलेबिलिटी और प्रदर्शन पर जोर देती है। दोनों भाषाओं को एक प्रोजेक्ट में मिश्रित किया जा सकता है, और कस्टम Rust API को GDScript से टाइप-सुरक्षित तरीके से कॉल किया जा सकता है। बताया गया प्राथमिक लक्ष्य गेम डेवलपर्स के लिए एक व्यावहारिक Rust API प्रदान करना है: आवर्ती वर्कफ़्लो सरल होने चाहिए और न्यूनतम बॉयलरप्लेट की आवश्यकता होनी चाहिए, और API को जहाँ संभव हो सुरक्षित और मुहावरेदार Rust में डिज़ाइन किया गया है। चूँकि यह Godot के साथ C++ इंजन के रूप में इंटरैक्ट करता है, प्रोजेक्ट कभी-कभी उपयोगकर्ता अनुभव को बेहतर बनाने के लिए अपरंपरागत दृष्टिकोण अपनाता है।
README उदाहरण में दिखाए गए फ़ीचर
प्रेरक उदाहरण एक Godot क्लास Player को रजिस्टर करता है जो Sprite2D से इनहेरिट करता है। यह प्रदर्शित करता है:
- GodotClass डिराइव मैक्रो के माध्यम से क्लास घोषणा, स्वचालित इनिशियलाइज़ेशन और एक बेस क्लास के साथ।
- कंपोज़िशन के माध्यम से इनहेरिटेंस, जो बेस क्लास मेथड्स तक पहुँच देता है।
- एट्रिब्यूट-आधारित फ़ील्ड इनिशियलाइज़ेशन, जिसमें एक डिफ़ॉल्ट hitpoints मान शामिल है।
- OnReady चाइल्ड नोड एक्सेस, जो _ready() कॉल होने पर स्वतः इनिशियलाइज़ हो जाता है।
- पूर्वनिर्धारित ट्रेट्स के माध्यम से Godot वर्चुअल मेथड्स को लागू करना (जैसे _ready को ओवरराइड करना)।
- टाइप-सुरक्षित सिग्नल कनेक्शन, जैसे हेल्थ बार के value_changed सिग्नल से कनेक्ट करना।
- #[func] एट्रिब्यूट के माध्यम से GDScript को एक्सपोज़ किए गए कस्टम मेथड्स।
- म्यूटेबल बेस एक्सेस के माध्यम से self पर Node मेथड्स को कॉल करना।
विकास स्थिति
README बताता है कि लाइब्रेरी 2023 से काफी विकसित हुई है और अब गेम्स, एडिटर प्लगइन्स, टूल्स और अन्य Godot-आधारित एप्लिकेशन जैसे प्रोजेक्ट्स के लिए उपयोग करने योग्य है। यह नोट करता है कि ब्रेकिंग चेंजेज़ कभी-कभी पेश किए जाते हैं, आमतौर पर मामूली और माइग्रेशन गाइड के साथ; crates.io रिलीज़ SemVer का पालन करती हैं लेकिन master ब्रांच से पीछे रहती हैं। Godot API के विशाल बहुमत को Rust में मैप किया गया है। वर्तमान विकास फोकस अधिक प्राकृतिक Rust अनुभव और दैनिक गेम डेवलपमेंट के लिए उपयोगी डिज़ाइन पैटर्न पर है। एक विस्तृत CI सूट में clippy, यूनिट टेस्ट, इंजन इंटीग्रेशन टेस्ट और मेमोरी सैनिटाइज़र शामिल हैं, और यहाँ तक कि हॉट-रीलोड का भी परीक्षण किया जाता है। Wasm, Android और iOS के लिए प्रायोगिक समर्थन मौजूद है, हालाँकि डॉक्यूमेंटेशन और टूलिंग अभी भी कमी है।
शुरुआत करना और संसाधन
README godot-rust बुक की ओर इशारा करता है जो शुरू करने के लिए सबसे अच्छी जगह है, जिसे API डॉक्स के साथ उपयोग किया जाना चाहिए। व्यावहारिक उदाहरण और छोटे गेम्स demo-projects रिपॉजिटरी में उपलब्ध हैं। सहायता एक Discord सर्वर के माध्यम से प्रदान की जाती है जिसमें #help चैनल है।
लाइसेंस और योगदान
प्रोजेक्ट Mozilla Public License 2.0 का उपयोग करता है, जिसे अनुमतिपूर्ण और कॉपीलेफ्ट लाइसेंस के बीच संतुलन बताया गया है। उपयोगकर्ता लाइब्रेरी का व्यावसायिक रूप से उपयोग कर सकते हैं और अपने कोड को क्लोज़्ड-सोर्स रख सकते हैं; मुख्य शर्त यह है कि godot-rust में किए गए संशोधन उपलब्ध कराए जाने चाहिए। योगदान का स्वागत है, Contributing.md में संकेत दिए गए हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.