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

godot-box3d ایک GDExtension ہے جو Box3D، Erin Catto کا 3D فزکس انجن، Godot 4 میں بلٹ ان PhysicsServer3D کے متبادل کے طور پر ضم کرتا ہے۔ اسٹاک Godot فزکس نوڈس کام کرتے رہتے ہیں: آپ اپنے مناظر کے بجائے پروجیکٹ سیٹنگ تبدیل کرتے ہیں۔ پروجیکٹ کو ابتدائی اور تجرباتی قرار دیا گیا ہے، اور Box3D خود ایک نیا انجن ہے۔ محرک: مصنف SurfsUp بنا رہا ہے، جو Godot میں Source-انجن "SkillSurf" کی تفریح ہے۔ سرف نقشے لمبے مقعر ٹرائ میش ریمپ، تیز رفتار کونوں، اور جیومیٹری کے نیچے ہیڈ سرف کے ساتھ فزکس کو دباؤ میں ڈالتے ہیں۔ Godot کی بلٹ ان فزکس اور godot-jolt اس کے کچھ حصوں میں مشکلات کا سامنا کرتے ہیں۔ Box3D Valve کے Rubikon-lite سے ماخوذ ہے، جو Source 2 کا فزکس انجن ہے، اس لیے Rubikon-سلسلہ کا حل آزمایا جانا قابل قدر لگا۔ Godot کے PhysicsServer3D اور Box3D کے درمیان پل godot-jolt کے فن تعمیر کی پیروی کرتا ہے۔ box3d-godot کے مقابلے میں، جو Godot کے لیے ایک اور Box3D بائنڈنگ ہے: box3d-godot Box3D کو 14 حسب ضرورت نوڈس کے طور پر Godot کی فزکس کے ساتھ چلاتا ہے، جبکہ یہ پروجیکٹ Godot کی فزکس کی جگہ لیتا ہے۔ اس کا مطلب ہے کہ اسٹاک نوڈس اور موجودہ ایڈونز کام کرتے رہتے ہیں، لیکن Box3D کی مخصوص خصوصیات جیسے دھماکے، جائروسکوپک ٹارک، سالور پروفائلنگ، اور غیر مطابقت پذیر سٹیپنگ PhysicsServer3D انٹرفیس کے ذریعے قابل رسائی نہیں ہیں۔ box3d-godot زیادہ جوائنٹ اقسام (8 بمقابلہ 3)، ایک حقیقی وہیل کنسٹرینٹ، اور زیادہ پلیٹ فارمز (Android، web) پیش کرتا ہے، جبکہ یہ پروجیکٹ ہائیٹ فیلڈز اور VehicleBody3D کو رے کاسٹ کے ذریعے سپورٹ کرتا ہے۔ README میں کہا گیا ہے کہ یہ پروجیکٹ فی الحال جوائنٹ اقسام، ConeTwist اور 6DOF، کوئری نتائج میں فی-شکل انڈیکس، پروفائلنگ، اور پلیٹ فارمز میں box3d-godot سے پیچھے ہے۔ دونوں میں سے کوئی بھی پروڈکشن کے لیے تیار نہیں۔ جو کام کرتا ہے: سخت، جامد، اور کائینیمیٹک باڈیز؛ شکلیں بشمول باکس، کرہ، کیپسول، سلنڈر، محدب کثیرالاضلاع، مقعر کثیرالاضلاع (ٹرائ میش)، ہائیٹ میپ، اور عالمی حد؛ اوورلیپ واقعات، کشش ثقل/ڈیمپنگ اوور رائڈز، ترجیحی ترتیب، اور پوائنٹ کشش ثقل والے علاقے؛ براہ راست اسپیس اسٹیٹ کوئریز (رے کاسٹس، پوائنٹ اور شکل کا انٹرسیکشن، شکل کاسٹس، collide_shape، rest_info)؛ body_test_motion تاکہ CharacterBody3D اور move_and_slide() کام کریں؛ حقیقی رابطہ پوائنٹس، نارملز، اور امپلسز کے ساتھ رابطہ مانیٹرنگ؛ فی-جوڑی تصادم استثنیات؛ پن، ہنج، اور سلائیڈر جوائنٹس؛ ایک ملٹی تھریڈڈ سالور جس میں خودکار طور پر دریافت شدہ فزیکل کور اور worker_count اوور رائڈ ہے، ورکر کاؤنٹس میں قطعی؛ اور ایک ٹیسٹ پروجیکٹ جس میں ڈیمو ہب، قطعی بینچ مارک، اور 19 ہیڈ لیس ریگریشن ٹیسٹ ہیں۔ باقی کام میں علیحدگی رے شکلیں، ConeTwist جوائنٹس، Generic6DOFJoint3D (Box3D میں فی-محور لاک/لمٹ/موٹر کنسٹرینٹ نہیں ہے، اس لیے کوئی وفادار میپنگ موجود نہیں)، SoftBody3D، کوئری اور رابطہ نتائج میں فی-شکل انڈیکس، سالور پروفائلنگ، macOS یونیورسل بائنریز اور نوٹرائزیشن، مزید پلیٹ فارمز اور آرکیٹیکچرز، اور کارکردگی بینچ مارکنگ اور ٹیوننگ شامل ہیں۔ رویے کے فرق دستاویز کیے گئے ہیں: Area3D ٹرائ میش یا ہائیٹ میپ باڈیز کا پتہ نہیں لگاتا، کیونکہ Box3D مقعر شکلیں ڈیزائن کے لحاظ سے سینسر وزیٹر کے طور پر کام نہیں کر سکتیں؛ collide_shape() رابطہ پوائنٹس بغیر دخول گہرائی کے رپورٹ کرتا ہے کیونکہ Box3D GJK ظاہر کرتا ہے؛ شکل کوئریز کو محدب کوئری شکل کی ضرورت ہوتی ہے؛ اور رگڑ اور بحالی مختلف طریقے سے ملتی ہیں (رگڑ کے لیے sqrt(a*b)، بحالی کے لیے max(a,b)، Godot کے min(a,b) اور کلیمپڈ سم کے مقابلے)، اس لیے مواد کو دوبارہ ٹیوننگ کی ضرورت پڑ سکتی ہے۔ README میں ایک بینچ مارک منظر شامل ہے جو باکسز کو ایک مقررہ جالی پر ایک مقررہ بیج سے اس وقت تک گراتا ہے جب تک 4096 باڈیز موجود نہ ہوں، Linux پر Godot 4.7.2.rc کے ساتھ چلایا جاتا ہے۔ رپورٹ شدہ نتائج Box3D فزکس کو Jolt فزکس، Godot فزکس، اور Rapier3D سے آگے رکھتے ہیں باڈیز پر 16.66 ms، میڈین سٹیپ، p95 سٹیپ، چوٹی سٹیپ، اور میموری میں اس مخصوص گھنے باکس ورک لوڈ میں۔ README واضح طور پر خبردار کرتا ہے کہ چاروں بیک اینڈز 4096 باڈیز سے بہت پہلے بجٹ سے باہر ہیں، یہ اوور لوڈ کے تحت انحطاط کی پیمائش کرتا ہے، اور گھنے باکس کا ڈھیر رے کاسٹس، کریکٹر کنٹرولرز، یا جوائنٹس کے بارے میں کچھ نہیں کہتا، اس لیے اسے درجہ بندی کے بجائے نقطہ آغاز کے طور پر لیا جانا چاہیے۔ تقاضے: Godot 4.3 یا نیا (ٹیسٹ پروجیکٹ 4.7 کو نشانہ بناتا ہے)۔ انسٹالیشن Releases سے ایڈون زپ کے ذریعے ہے، addons/godot-box3d/ کو پروجیکٹ میں کاپی کرنا، پھر Project Settings → Physics → 3D → Physics Engine کو Box3D Physics پر سیٹ کرنا اور دوبارہ شروع کرنا۔ سالور ڈیفالٹ کے طور پر فی فزیکل کور ایک ورکر استعمال کرتا ہے، جسے physics/box3d/worker_count کے ذریعے اوور رائڈ کیا جا سکتا ہے۔ macOS کو کام جاری کے طور پر بیان کیا گیا ہے: صرف Apple Silicon، نوٹرائزڈ نہیں، کمپائل کرنے کے علاوہ غیر آزمودہ۔ Linux اور Windows آزمائے گئے پلیٹ فارمز ہیں۔ بلڈنگ CMake استعمال کرتی ہے، جس میں Linux سے Windows DLL کراس کمپائل کرنے کے لیے MinGW-w64 ٹول چین فائل ہے۔ ٹیسٹنگ ایک ہیڈ لیس اسکرپٹ کے ذریعے چلتی ہے جو ایکسٹینشن بناتا ہے، اسے رجسٹر کرتا ہے، بیک اینڈ لوڈ ہونے کی تصدیق کرتا ہے، اور 19 ریگریشن ٹیسٹ چلاتا ہے، ناکامی یا لیک ہوئے Box3D RID پر غیر صفر کے ساتھ باہر نکلتا ہے۔ شراکتیں خوش آمدید ہیں۔ MIT لائسنس یافتہ؛ Box3D MIT ہے، اور پروجیکٹ godot-jolt سے ساختی الہام لیتا ہے، جو بھی MIT ہے۔