عن المشروع
Frent مكتبة C# لبناء الألعاب والمحاكاات حول تركيب المكوّنات والكيانات. يصفها ملف README أساسًا بأنها إطار EC (Entity Component) وليس فقط ECS: يمكن أن تتضمن المكوّنات سلوكًا وإدارة للعمر وأحداثًا، لذا يأتي إعادة استخدام الشيفرة من التركيب بدل الوراثة مع أقل قدر من الشيفرة المتكررة. كما تُوفَّر واجهة Systems API اختيارية للاستعلام عن الكيانات بأسلوب ECS التقليدي.
التخزين مزيج هجين من الأركيتايبات والمجموعات المتناثرة، ويقول المشروع إن الكيانات يمكنها الانتقال بين استراتيجيتي التخزين بسلاسة. يسرد README بنية كيان صغيرة بحجم 8 بايت، ودعمًا حتى 127 مكوّنًا لكل كيان، ومكوّنات من نوع struct وclass، وتمريرًا تلقائيًا لبيانات موحّدة مثل deltaTime، وتوافقًا مع AOT بدون انعكاس، وعلاقات بين الكيانات (روابط)، ووسومًا، وأحداثًا، ومخزن أوامر، وتعدد خيوط، وإدارة تلقائية للتغييرات البنيوية، والقدرة على إنشاء الكيانات في أي وقت دون مخزن أوامر. ويُقدَّم EntityMarshal وWorldMarshal لوصول أسرع.
يعرض مثال سريع إنشاء World، وتوليد كيان بمكوّنات Position وVelocity، واستدعاء world.Update()، ثم قراءة Position المحدَّث. يذكر README أن Frent لا يزال في مرحلة beta وغير مستقر تمامًا. ويحتوي على روابط إلى التوثيق وعرض تفاعلي وعينات لـ MonoGame وUnity وGodot. ويُقدَّم رابط قياس أداء مع ادعاء بأن Frent أسرع من معظم تطبيقات C# ECS؛ وهذا الادعاء خاص بالمشروع ولم يُتحقق منه بشكل مستقل هنا. وتطلب إرشادات المساهمة من المستخدمين الإبلاغ عن الأخطاء واقتراح واجهات API وفتح issue قبل البدء بميزات كبيرة.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.