️ مكتبة نماذج الممثلين (Actor Model) بلغة TypeScript
في هذا المشروع قمت بتطوير مكتبة برمجية تعتمد على نموذج الممثلين (Actor Model)، وهو نموذج برمجة متوازي قائم على مفهوم الممثلين (Actors) الذين يتواصلون فيما بينهم عبر تبادل الرسائل.
وصف الفكرة:
كل مُمثل (Actor) يمتلك حالة خاصة به، ويستطيع استقبال وإرسال الرسائل.
يمكن للممثل تحديث حالته، إنشاء ممثلين جدد، أو إنهاء نفسه حسب طبيعة الرسائل التي يستقبلها.
الرسائل عبارة عن بنى بيانات (structures) تتكون من وسم (label) ومعاملات (parameters).
آلية التنفيذ:
تم تبسيط النموذج عبر اعتماد تحديث متزامن (synchronized update) لجميع الممثلين.
الزمن يُقسم إلى فترات (ticks) بواسطة ساعة عالمية (global clock):
خلال كل فترة، يجمع الممثل الرسائل التي تصله (مثل: move, collide).
عند انتهاء الفترة، تُفرغ صناديق الرسائل ويُعاد تحديث حالة كل ممثل وفقًا للرسائل المستلمة.
تم تطوير بيئة تشغيل (runtime) كهيكل بيانات مركزي مسؤول عن إدارة التحديث المتزامن لجميع الممثلين.
مميزات المشروع:
مكتبة مرنة تسمح بإنشاء ألعاب أو تطبيقات قائمة على الرسائل.
إمكانية تطوير ألعاب من نوع shoot’em up (إطلاق نار) باستخدام الممثلين كوحدات ديناميكية.