Robot Learning Simulation System

المقاييس والصفات الي هتتغير في الروبوت والحاجات دي مجرد امثله لسه كل واحد لما يعمل لعبته هيحددها خصوصا اول لعبه

الفكرة العامة

كل ميني جيم في المشروع هتمشي على نفس 3 مراحل:

1) Data Collection

أثناء اللعب، السيستم بيسجل أفعال اللاعب والمؤشرات المهمة الخاصة بالميني جيم.

2) Evaluation

في نهاية الميني جيم، السيستم يحسب Score لكل مقياس من المقاييس المطلوبة.

3) Robot Update

بعد ظهور النتيجة، السيستم يعدل قيم الروبوت مرة واحدة فقط بناءً على الأداء.

مهم:


الشكل الموحد لأي Mini-Game

كل ميني جيم لازم يتكتب بنفس الفورمات ده:

ده يضمن إن أي حد في التيم يقدر يشتغل بنفس النظام.


1) Robot Stats System

الروبوت هيكون له ملف واحد ثابت

نعمل RobotStats كـ ScriptableObject أو Data Asset فيه كل القيم الأساسية اللي بتتعدل طول المشروع.

بص هنا

  • كل واحد في اللعبه بتاعته هيضيف القيم الي محتاجها يعني في اللعبه الاولي هنضيف مثلا قيمة لاحتمالية ان الروبوت ينحرف فجاة
  • المفروض يبقي فيه نسبة سماحية دايما

القيم المقترحة

Movement

Systems

Cognition

دول كفاية جدًا كبداية، وأي حاجة زيادة تتضاف بعدين لو فعلًا احتجناها.

الي هينفذ اللعبه دي هو الي هيحدد ايه القيم الي هتتقاس , ايه القيم الي تتسجل , ايه الصفات الي تتحسن

2) Metric System

كل ميني جيم يختار من 3 إلى 4 Metrics فقط

ماينفعش كل ميني جيم يقيس 8 حاجات، لأن ده هيعقد الحسابات ويشتت الفريق.

Metrics Library مقترحه موحدة للمشروع

دي قائمة المقاييس المقترحه اللي أي ميني جيم يختار منها:

كل ميني جيم يختار المقاييس المناسبة له فقط.


3) طريقة الحساب الموحدة

كل Metric بيتحول لنسبة من 0 إلى 100

يعني في الآخر كل Metric لازم يطلع Score واضح:

بعد كده نستخدم الأوزان.

Final Score Formula

Final Score = Sum(Metric Score × Metric Weight)

لازم مجموع الأوزان = 100%


4) مثال ثابت على الحساب

Mini-Game 1: Control Calibration

Tracked Metrics

Example

Final Score

Final Score = (80 × 0.40) + (60 × 0.35) + (70 × 0.25)
Final Score = 32 + 21 + 17.5 = 70.5

النتيجة النهائية = 70.5 / 100


5) Performance Tier System

بدل ما كل ميني جيم يخترع Rules جديدة، نستخدم Tiers ثابتة في المشروع كله:

وده يخلي الفريق كله شغال بنفس المنطق.


6) Robot Update Rules

التعديل على الروبوت ما يكونش مباشر بنسبة الدرجة

يعني غلط جدًا نقول:

الصح:

Update Values المقترحة

Excellent

Good

Average

Fail


Example Update Table

لو الميني جيم بتأثر على:

يبقى التحديث يبقى كده:

Tier Stability PathAccuracy InputResponsiveness
Excellent +0.15 +0.15 +0.10
Good +0.10 +0.10 +0.07
Average +0.05 +0.05 +0.03
Fail 0 0 0

كل القيم لازم تتعمل لها Clamp بين 0 و 1


7) قاعدة التوازن

لازم كل Robot Stat يبقى له:

مثال

بعد أي تحديث:

New Value = Clamp(Current Value + Delta, Min, Max)

ده يمنع أي Stat يبوظ أو يكسر اللعبة.


8) إزاي كل Mini-Game تعرف تعدل إيه

كل ميني جيم لازم يبقى فيها Data واضح بالشكل ده:

Mini-Game Learning Profile


Example: Control Calibration Profile

Metrics Used

Weights

Pass Score

Affected Robot Stats

Update Amounts


Example: Sound Card Efficiency Trial Profile

Metrics Used

Weights

Pass Score

Affected Robot Stats

Update Amounts

مهم:


9) Standard Flow for Every Mini-Game

كل ميني جيم لازم تمشي بالترتيب ده:

Step 1: Start

Step 2: Track

Step 3: Evaluate

Step 4: Apply Update

Step 5: Save Result


10) Tech Structure المقترح

ملفات أساسية

1. RobotStatsSO

فيه القيم الحالية للروبوت

2. MiniGameLearningProfile

فيه إعدادات كل ميني جيم:

3. MiniGameTracker

يجمع الداتا أثناء اللعب

4. MiniGameEvaluator

يحسب النتيجة النهائية

5. RobotStatUpdater

يطبق التحديث على الروبوت


11) النظام البسيط اللي الفريق كله يمشي عليه

Rule 1

كل ميني جيم تستخدم من 3 إلى 4 metrics فقط

Rule 2

كل Metric لازم تتحول لدرجة من 100

Rule 3

كل ميني جيم لازم يكون لها Learning Profile واضح

Rule 4

كل Robot Stat تتحدث في النهاية فقط

Rule 5

كل التحديثات تكون قيم صغيرة ومقفولة بـ Clamp

Rule 6

كل ميني جيم تعدل 2 أو 3 stats فقط


12) Template جاهز لأي Mini-Game جديدة

تقدر تخلي الفريق يملأ التمبلت ده في أي ميني جيم:

Mini-Game Learning Template


13) هل فيه حاجات زيادة عندك لازم تتشال؟

أيوه، علشان النظام يفضل سهل:

أجّل دلوقتي:

مش عشان وحشين، لكن لأنهم:


14) البداية العملية الصح

ابدأوا كفريق بالترتيب ده:

أولًا

اعتمدوا قائمة Robot Stats الأساسية فقط

ثانيًا

اعملوا Learning Profile للميني جيم الأولى

ثالثًا

اعملوا Tracker بسيط لثلاث metrics فقط

رابعًا

اعملوا Evaluator يطلع:

خامسًا

اعملوا Updater يعدل الـ ScriptableObject


الخلاصة

السيستم اللي أنصحك تعتمدوه للمشروع كله هو:

ده System:

لو عايز، أقدر أكتب لك بعده مباشرة:
نسخة technical table جاهزة للميني جيم الأولى والثانية بحيث تبقوا أول حاجتين شغالين على نفس السيستم.

Powered by Forestry.md