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

SwarmingLilMen ایک تجرباتی انجن ہے جو ابھرتی ملٹی ایجنٹ سسٹمز کے لیے ہے، فی الحال C#/.NET 8.0 میں پہلی اصولوں سے بنائی گئی 2D بوئڈز/سوام سمولیشن پر مبنی ہے۔ یہ اسکرپٹنگ کے مقابلے میں ابھار پر زور دیتا ہے: چند سادہ، مرکب اسٹیئرنگ قواعد امیر میکرو پیٹرن پیدا کرتے ہیں۔ یہ منصوبہ ابتدائی ترقی کے مرحلے میں ہے (GPL-3.0-only) اور ایک آرکیٹیکچرل تبدیلی کے تحت ہے، جہاں ایگریگیٹ-ڈرائیون سسٹمز اپروچ سے آزاد طور پر ٹیسٹ ایبل، رینولڈز-اسٹائل اسٹیئرنگ قواعد کی طرف منتقل ہو رہا ہے۔ دو عمل درآمدات ساتھ ساتھ موجود ہیں: ایک لیگیسی ڈیفالٹ پائپ لائن (ایگریگیٹ-ڈرائیون SoA اسٹیئرنگ سسٹمز کے ساتھ یونیفارم-گرڈ بوئڈز اور انٹرایکٹو Raylib رینڈرر) اور ایک کینونیکل راستہ (سکیفولڈنگ کے ساتھ تین اسٹیئرنگ قواعد، --canonical کے ذریعے فعال)۔ کینونیکل پرسیپشن/سپیشل-انڈیکس معاہدہ اور فورس-بجٹ نفاذ مکمل ہو چکا ہے، لیکن انسٹرومنٹیشن UX، متعین شدہ برتاؤ کے منظرنامے، ملٹی-گروپ سیمنٹکس، اور کینونیکل بینچ مارکس ابھی کھلے ہیں۔ ثابت شدہ صلاحیتوں میں Structure-of-Arrays (SoA) ڈیٹا لے آؤٹ شامل ہے جو کیش کی کارکردگی کو بہتر بناتا ہے؛ فکسڈ-ٹائم سٹیپ سیڈڈ لیگیسی اور کینونیکل راستے جن میں عین 500-ٹک آرڈرڈ-کائنیمیٹک-ہیش کوریج ہے؛ ایجنٹ-جینوم ڈیٹا سٹرکچرز اور میوٹیشن API؛ کنفیگریبل سمولیشن پیرامیٹرز پری سیٹس کے ساتھ (balanced, strong-separation, tight-flocking, fast-loose, slow-cohesive)؛ لیگیسی یونیفارم-گرڈ بوئڈز پائپ لائن اور انٹرایکٹو Raylib رینڈرر؛ آپٹ-ان کینونیکل سنگل-گروپ رینڈرر اسٹیئرنگ انسٹرومنٹیشن کے ساتھ؛ اور ایک xUnit ٹیسٹ سوٹ جس کا نان-پرفارمنس سب سیٹ CI گیٹ بناتا ہے۔ کارکردگی کی پیمائش کے لیے ایک BenchmarkDotNet سوٹ موجود ہے۔ سسٹمز پائپ لائن ہر ٹک پر یونیفارم گرڈ کو دوبارہ بناتی ہے پھر Sense, Behavior, Wander, اور Integrate سسٹمز چلائے جاتی ہیں۔ کارکردگی کے اصولوں میں الاؤکیشن-کانشس ہاٹ پاتھز، اندرونی لوپس میں LINQ/ڈیلیگیٹس/باکسنگ کا استعمال نہ ہونا، ہوستڈ انویریئنٹس کے ساتھ ٹائٹ for-loops، اور ورچوئل ڈسپیچ کے مقابلے میں ڈائریکٹ/اسٹیٹک کالز شامل ہیں۔ کارکردگی کے ہدف 50k-100k ایجنٹس پر 60 FPS انٹرایکٹو اور 1M+ ہیڈلیس واضح طور پر نامکمل مقاصد کے طور پر بیان کیے گئے ہیں؛ 50k پیمائش 16.67 ms/ٹک بجٹ سے ایک آرڈر آف میگنیٹیوڈ سے زیادہ کم رہتی ہے، اور کینونیکل تھروپٹ، رینڈرر FPS، اور پر-ٹک الاؤکیشنز ابھی ماپے نہیں گئے۔ پروجیکٹ اسٹینڈ الون JavaScript براؤزر ڈیموز بھی فراہم کرتا ہے: Boids Basic (ریئنولڈز الگورتھم کے ساتھ ریئل ٹائم پیرامیٹر ایڈجسٹمنٹ)، Self-Propelled Particles/Vicsek Model (ایکٹیو میٹر میں فیز ٹرانزیشنز کے ساتھ آرڈر پیرامیٹر ٹریکنگ)، Ant Colony Optimization (سٹیگمرجی-بیسڈ پاتھ فائنڈنگ کے ساتھ فیرومون ٹریل)، اور Particle Swarm Optimization (مسلسل گلوبل آپٹیمائزیشن کے ساتھ فٹنس لینڈسکیپ ویژولائزیشن)۔ یہ ڈیموز کسی انسٹالیشن کی ضرورت نہیں رکھتے اور تیز تکرار، ڈیمونستریشن، سیکھنے، اور پروٹوٹائپنگ کے لیے موزوں ہیں۔ روڈمیپ کے مراحل میں ملٹی-گروپ انٹریکشنز/کامیابی/میٹابولزم (Phase 3)، تولید/ارتقا/ٹریٹ ڈرفت (Phase 4)، SIMD آپٹیمائزیشن/پیرالیلائزیشن/NativeAOT (Phase 5)، اور اضافی سیناریو پری سیٹس/ریپلے/ایڈوانسڈ میٹرکس (Phase 6) شامل ہیں۔ ٹیک اسٹیک میں C# 12 on .NET 8.0، Raylib-cs 7.0.2 رینڈرنگ کے لیے، xUnit 2.9.3 ٹیسٹنگ کے لیے، اور BenchmarkDotNet 0.15.6 بینچ مارکنگ کے لیے شامل ہیں۔