سب-إنجن: محرّك ألعاب ثنائي الأبعاد قائم على البيانات

محرّك ألعاب بلغة TypeScript موجَّه للذكاء الاصطناعي، قائم على نواة ECS بيانات خالصة مع جسر عرض اختياري عبر PixiJS، منشور على npm باسم @sub-engine/core و@sub-engine/pixi.

محرّك ألعاب بلغة TypeScript موجَّه للذكاء الاصطناعي، قائم على نواة ECS بيانات خالصة مع جسر عرض اختياري عبر PixiJS، منشور على npm باسم @sub-engine/core و@sub-engine/pixi.

🧩 سب-إنجن: الألعاب بيانات، لا أصناف

انطلق سب-إنجن من سؤال عنيد: كيف يبدو محرّك ألعاب إذا كان مؤلّفه الأول وكيل ذكاء اصطناعي؟ الجواب محرّك ثنائي الأبعاد بلا تدرّج أصناف تحفظه — الكيانات أعداد صحيحة، والمكوّنات JSON مسطّح، والأنظمة دوال نقية بالصيغة (registry, dt) => registry. كل ما يحتاجه الوكيل — أو الإنسان — لتوليد لعبة عاملة هو بيانات ومعجم صغير قابل للتحقق.

ما هو

  • @sub-engine/core — محرّك بلا رأس وبلا أي تبعية للمتصفح: سجل، وتحقق مخططات وقت التشغيل، وأنظمة مدمجة، وحلقة لعبة بخطوة زمنية ثابتة، وملاحة.
  • @sub-engine/pixi — جسر عرض اختياري فوق PixiJS: حاويات متجاوبة، وتحميل صور، وخرائط بلاط، وطبقة تصحيح.
  • create-sub-engine — واجهة سطر أوامر تُنشئ لعبة جديدة بالبنية نفسها التي تستخدمها الألعاب المرجعية.
  • خمس عشرة لعبة مرجعية — دفاع عن الأبراج، واستراتيجية وقت حقيقي، وألعاب أدوار، ومحاكيات إدارة — تعمل توثيقاً تنفيذياً لكل ميزة.

قرارات تصميم خلفها جروح

تُقرأ دساتير المحرّك كسلسلة تشريح حالات، لأنها كذلك فعلاً. لعبة «سرب» سُرّبت نحو 180 ألف كائن رسومي في ثلاثين ثانية لأن removeChild في PixiJS لا يحرّر ذاكرة الرسوم؛ وأصبح الإصلاح الإلزامي destroy({ children: true }) مادة دستورية لا ملاحظة في سجل تغييرات. وعيب حركة جعل الوحدات تقطع «125 بلاطة في الثانية» على خريطة من ثلاثين بلاطة عاد إلى مقياس زمني مفقود، فصار المحرّك يعلن اتفاقية السرعة صراحةً: وحدات لكل نبضة 16 مللي ثانية، تُحوَّل من قيمة مألوفة لكل ثانية.

وتُبقي البنية تطبيقين للسجل خلف واجهة واحدة: MapRegistry مباشر، وColumnarRegistry مبني على مصفوفات مُنمَّطة للعمل الرقمي الكثيف. ويعمل التحقق من المخطط عند كل كتابة، وهو ما يحوّل «خطأ الوكيل في اسم حقل» من عيب صامت إلى خطأ فوري. وتُشغَّل المحاكاة بلا رأس في Node، فيصبح منطق اللعب قابلاً للاختبار دون متصفح.

التقنيات

التقنيةالدور
TypeScriptكود محرّك صارم قائم على ESM
PixiJSجسر العرض (@sub-engine/pixi)
Viteخادم تطوير الألعاب المرجعية وبناؤها
Vitest201 اختباراً على النواة والعارض
npmحزم منشورة وأداة إنشاء المشاريع

النتيجة

سب-إنجن متاح للعموم وقابل للتثبيت — @sub-engine/core و@sub-engine/pixi وcreate-sub-engine على npm برخصة MIT، والمصدر على github.com/Type-3-studio/sub-engine. إنه بحث خرج من المختبر: تجربة في ما يجعل قاعدة الشيفرة مقروءة للآلات، مقدَّمة كأداة يستطيع البشر استخدامها اليوم.

تفاصيل المشروع

السنة

يوليو 2026

أيضًا معروف بـ

Sub-Engine: A Data-First 2D Game Engine

الوسوم

محرّك ألعابECSمفتوح المصدرأدوات للمطوّرين

التقنيات المستخدمة

TypeScriptPixiJSViteVitestnpm

الإنجازات

  • منشور على npm: @sub-engine/core و@sub-engine/pixi وcreate-sub-engine
  • خمسة عشر لعبة مرجعية تعمل كتوثيق حيّ
  • 201 اختبار وحدة على النواة والعارض

ابدأ مشروعًا

تواصل معنا و دعنا نساعدك في بناء مشروعك القادم.

Start a conversation ابدأ المحادثة