عن المشروع

EnTT (Entity-Component-System) هي مكتبة C++20 تعتمد على الرؤوس فقط، مصممة أساسًا للبرمجة في الألعاب ولكنها قابلة للتطبيق في تطوير البرمجيات الأوسع. توفر تنفيذًا عالي الأداء لنظام ECS مع سياسة "ادفع مقابل ما تستخدمه"، وأنواع مكونات غير مقيدة، واستقرار مؤشر اختياري، وخطافات تخزين قابلة للتخصيص. تقدم المكتبة أنماط تكرار متعددة عبر العروض والمجموعات، تتراوح من بنية مصفوفات مثالية (SoA) إلى الوصول العشوائي. بالإضافة إلى ECS الأساسي، تتضمن EnTT نظام RTTI مدمجًا، وتسمية موارد ثابتة التعبير، ونظام إعدادات بسيط، ومُنشئ رسم بياني للتنفيذ لجدولة مثلى، ومحدد خدمات، ونظام انعكاس وقت تشغيل غير تدخلي بدون وحدات ماكرو، وأدوات تعدد أشكال ثابتة، وحاويات مخصصة (بما في ذلك خريطة تجزئة قائمة على مجموعة متفرقة)، وجدولة تعاونية، وإدارة موارد (ذاكرة تخزين مؤقت، محملات، مقابض)، ومندوبين، ومعالجات إشارات، وموزع أحداث، وباعث أحداث قائم على CRTP. تُستخدم EnTT في الإنتاج من قبل مشاريع رئيسية بما في ذلك Minecraft (Mojang)، وArcGIS Runtime SDKs (Esri)، وRagdoll Dynamics. تتكامل عبر CMake وConan وvcpkg وHomebrew وbuild2 وBazel (bzlmod). تتطلب المكتبة مترجمًا متوافقًا مع C++20 وتوفر توثيقًا شاملاً عبر Doxygen، مع دعم تصحيح أخطاء Natvis. مرخصة بموجب MIT للكود، وCC BY 4.0 للتوثيق، وCC BY-SA 4.0 للشعارات.