عن المشروع
godot-rust هي مكتبة تدمج لغة Rust مع Godot 4، وهو محرك ألعاب مفتوح المصدر يركز على تجربة إنتاجية ثنائية وثلاثية الأبعاد متكاملة. تستخدم واجهة GDExtension الخاصة بـ Godot، والتي تسمح بدمج اللغات والمكتبات الخارجية في المحرك.
الفلسفة
يتم وضع الربط كبديل لـ GDScript، مع التركيز على أمان الأنواع وقابلية التوسع والأداء. يمكن مزج اللغتين في مشروع واحد، ويمكن استدعاء واجهات Rust المخصصة بأمان من GDScript. الهدف الأساسي المعلن هو توفير واجهة Rust عملية لمطوري الألعاب: يجب أن تكون سير العمل المتكررة بسيطة وتتطلب حدًا أدنى من الكود، ويتم تصميم الواجهات لتكون آمنة وطبيعية في Rust حيثما أمكن. نظرًا لأنها تتفاعل مع Godot كمحرك C++، يتبع المشروع أحيانًا أساليب غير تقليدية لتحسين تجربة المستخدم.
الميزات الموضحة في مثال README
يسجل المثال التحفيزي فئة Godot باسم Player ترث من Sprite2D. يوضح:
- إعلان الفئة عبر ماكرو الاشتقاق GodotClass مع تهيئة تلقائية وفئة أساسية.
- الوراثة عبر التركيب، مما يتيح الوصول إلى طرق الفئة الأساسية.
- تهيئة الحقول بناءً على السمات، بما في ذلك قيمة نقاط الصحة الافتراضية.
- الوصول إلى العقد الفرعية OnReady، مع تهيئة تلقائية عند استدعاء _ready().
- تنفيذ الطرق الافتراضية لـ Godot عبر سمات محددة مسبقًا (مثل تجاوز _ready).
- اتصالات الإشارات الآمنة للأنواع، مثل الاتصال بإشارة value_changed لشريط الصحة.
- طرق مخصصة مكشوفة لـ GDScript عبر سمة #[func].
- استدعاء طرق العقدة على self عبر الوصول الأساسي القابل للتغيير.
حالة التطوير
يذكر README أن المكتبة تطورت بشكل كبير منذ عام 2023 وأصبحت الآن قابلة للاستخدام في مشاريع مثل الألعاب وإضافات المحرر والأدوات والتطبيقات الأخرى القائمة على Godot. ويشير إلى أنه يتم أحيانًا إدخال تغييرات جذرية، وعادة ما تكون طفيفة ومصحوبة بأدلة ترحيل؛ تتبع إصدارات crates.io دلالات الإصدارات (SemVer) لكنها تتخلف عن فرع master. تم تعيين الغالبية العظمى من واجهات Godot إلى Rust. يركز التطوير الحالي على تجربة Rust أكثر طبيعية وأنماط تصميم مفيدة لتطوير الألعاب اليومي. تتضمن مجموعة CI المتطورة clippy واختبارات الوحدة واختبارات تكامل المحرك وأدوات فحص الذاكرة، وحتى إعادة التحميل السريع يتم اختبارها. يوجد دعم تجريبي لـ Wasm وAndroid وiOS، على الرغم من أن التوثيق والأدوات لا تزال ناقصة.
البدء والموارد
يشير README إلى كتاب godot-rust كأفضل نقطة بداية، لاستخدامه جنبًا إلى جنب مع وثائق الواجهة. تتوفر أمثلة عملية وألعاب صغيرة في مستودع 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.