منصوبے کے بارے میں

godot-rust ایک لائبریری ہے جو Rust زبان کو Godot 4 کے ساتھ مربوط کرتی ہے، جو ایک اوپن سورس گیم انجن ہے جو پیداواری، تمام سہولیات سے لیس 2D اور 3D تجربے پر مرکوز ہے۔ یہ Godot کے GDExtension API کا استعمال کرتا ہے، جو تیسری پارٹی کی زبانوں اور لائبریریوں کو انجن میں ضم کرنے کی اجازت دیتا ہے۔ فلسفہ یہ بائنڈنگ GDScript کے متبادل کے طور پر پیش کی گئی ہے، جس میں ٹائپ سیفٹی، اسکیل ایبلٹی اور کارکردگی پر زور دیا گیا ہے۔ دونوں زبانوں کو ایک پروجیکٹ میں ملایا جا سکتا ہے، اور حسب ضرورت Rust APIs کو GDScript سے ٹائپ-سیف طریقے سے کال کیا جا سکتا ہے۔ بیان کردہ بنیادی مقصد گیم ڈویلپرز کے لیے ایک عملی Rust API فراہم کرنا ہے: بار بار آنے والے کام آسان ہونے چاہئیں اور کم سے کم بویلر پلیٹ کی ضرورت ہو، اور APIs کو جہاں ممکن ہو محفوظ اور فطری Rust کے طور پر ڈیزائن کیا گیا ہے۔ چونکہ یہ Godot کے ساتھ C++ انجن کے طور پر تعامل کرتا ہے، اس لیے پروجیکٹ بعض اوقات صارف کے تجربے کو بہتر بنانے کے لیے غیر روایتی طریقے اپناتا ہے۔ README مثال میں دکھائی گئی خصوصیات محرک مثال ایک Godot کلاس Player رجسٹر کرتی ہے جو Sprite2D سے وراثت پاتی ہے۔ یہ درج ذیل کو ظاہر کرتی ہے: - GodotClass derive میکرو کے ذریعے کلاس کا اعلان، خودکار ابتداء اور ایک بیس کلاس کے ساتھ۔ - کمپوزیشن کے ذریعے وراثت، بیس کلاس کے طریقوں تک رسائی فراہم کرتی ہے۔ - صفت پر مبنی فیلڈ ابتداء، بشمول ایک ڈیفالٹ ہٹ پوائنٹس ویلیو۔ - OnReady چائلڈ نوڈ تک رسائی، جو _ready() کال ہونے پر خود بخود ابتداء ہوتی ہے۔ - پہلے سے طے شدہ ٹریٹس کے ذریعے Godot ورچوئل طریقوں کو نافذ کرنا (مثلاً _ready کو اوور رائیڈ کرنا)۔ - ٹائپ-سیف سگنل کنکشنز، جیسے ہیلتھ بار کے value_changed سگنل سے جڑنا۔ - #[func] صفت کے ذریعے GDScript کو بے نقاب کردہ حسب ضرورت طریقے۔ - قابل تغیر بیس تک رسائی کے ذریعے self پر Node طریقوں کو کال کرنا۔ ترقی کی حیثیت README میں کہا گیا ہے کہ لائبریری 2023 سے کافی ترقی کر چکی ہے اور اب گیمز، ایڈیٹر پلگ انز، ٹولز اور دیگر Godot پر مبنی ایپلیکیشنز جیسے پروجیکٹس کے لیے قابل استعمال ہے۔ اس میں نوٹ کیا گیا ہے کہ کبھی کبھار بریکنگ تبدیلیاں متعارف کرائی جاتی ہیں، عام طور پر معمولی اور مائیگریشن گائیڈز کے ساتھ؛ crates.io ریلیزز SemVer کی پیروی کرتی ہیں لیکن ماسٹر برانچ سے پیچھے رہتی ہیں۔ Godot APIs کی اکثریت Rust میں میپ کی جا چکی ہے۔ موجودہ ترقی کی توجہ زیادہ فطری Rust تجربے اور روزمرہ گیم ڈویلپمنٹ کے لیے مفید ڈیزائن پیٹرن پر ہے۔ ایک وسیع CI سوٹ میں clippy، یونٹ ٹیسٹ، انجن انٹیگریشن ٹیسٹ اور میموری سینیٹائزر شامل ہیں، اور یہاں تک کہ ہاٹ-ریلوڈ کا بھی تجربہ کیا جاتا ہے۔ Wasm، Android اور iOS کے لیے تجرباتی سپورٹ موجود ہے، حالانکہ دستاویزات اور ٹولنگ ابھی بھی ناکافی ہیں۔ شروع کرنا اور وسائل README godot-rust کتاب کو شروع کرنے کے لیے بہترین جگہ بتاتا ہے، جسے API دستاویزات کے ساتھ استعمال کیا جائے۔ عملی مثالیں اور چھوٹے گیمز demo-projects ریپوزٹری میں دستیاب ہیں۔ مدد Discord سرور کے ذریعے #help چینل کے ساتھ پیش کی جاتی ہے۔ لائسنس اور تعاون پروجیکٹ Mozilla Public License 2.0 استعمال کرتا ہے، جسے اجازت دینے والے اور کاپی لیفٹ لائسنسوں کے درمیان توازن کے طور پر بیان کیا گیا ہے۔ صارفین لائبریری کو تجارتی طور پر استعمال کر سکتے ہیں اور اپنا کوڈ بند رکھ سکتے ہیں؛ بنیادی شرط یہ ہے کہ godot-rust میں کی گئی تبدیلیاں دستیاب کرائی جائیں۔ تعاون کا خیرمقدم کیا جاتا ہے، جس کے لیے Contributing.md میں رہنمائی دی گئی ہے۔