تصميم ألعاب الفيديو/أجزاء اللعبة الأساسية
لنعرف الالعاب برمجياً ،عندما نقوم بتشغيل أي لعبة علي الحاسب مثلاً فاننا نمر بحلقة أو دورة غير منتهية أي " تلف تلف " من الاحداث و التي بدورها تقوم برسم الصور و فعل الاحداث . تقوم الالعاب برسم الصور و فعل الاحداث في معدل معين نحن نفرضه و هو 30 و معني 30 أي انه في كل ثانية نجعل اللعبة ترسم 30 اطار و يسمي هذا المعدل بعدد الاطارات لكل ثانية Frames Per Second (FPS) ، بعض الالعاب الحديثة الآن مبنية علي معدل 60 اطار لكل ثانية . تصورها كانك تخرج فيلم .. فالفيلم يتتابع احداثه و لكن بمعدل "بتغير ".
ملحوظة: غالباً كلمة " معدل " تدل علي التغير في الشىء و في موضوعنا هذا " احداث اللعبة تتغير ب 30 اطار لكل ثانية و معدل تغير سرعة السيارة مثلاً في لعبة ثنائية الابعاد يعبر عنه بتفاضل دالة المسافة كما سنري في الفيزياء الميكانيكيه الكلاسيكيه .
احداث الالعاب
هناك عدة احداث يجب ان تمر بها اللعبة و سوف نسردها الان و أى لعبة في الكون تمر بهذه الاحداث .
1. Initiali(s/z)ation حدث الاعداد .
هو الحدث الاول التي يحدث بعد الضغط علي الملف التنفيذي و غالباً يشمل التالي
1.حجز ذاكرة كافية للعبة " غالباً النظام يقوم بعمل هذه العملية " .
2. تحميل ملفات اللعبة ( من الممكن ان يكون في أول اللعبة او في وسطها )
3. شىء تريده يبداً مثلاً تريد ان تسجل مفتاح في ملفات التسجيل register .
4. كشف إن كانت السى دي موجودة في القرص ام لا .... و هناك العديد من الاحداث
نعبر عن حداث الاعداد في السى بالدالة Init(); .
بعد انتهاء هذا الحدث ندخل علي دالةFunction اخري و هي دالة main() .
5 Main loop
وهنا ما يأتي مجري الاحداث و التفاعل في اللعبة .. فإن كنت برمجت من قبل علي مترجمات الدوس للسى ، السى ++ فستلاحظ ان مجري عمليات البرنامج يدخل في الدالة main ! و هنا نفس الفكرة موضوعة .
3. Releasing
غالباً ليس المصطلح العلمي لها Finish و هو الحدث الذي ينتهي في البرنامج " اللعبة " و لكن المصطلح الصحيح هو Release ;
لان في هذا الحدث نقوم "بتحرير" كل الذاكرة التي قمنا بحجزها في بداية البرنامج من مثلا تحميل الملفات ففي هذا الحدث نقوم بقفلها و
نقوم مثلاً بتحرير جميع المؤشرات pointers التي قمنا بحجز جزء ذاكرة لديها في بداية البرنامج .
ملحوظة
المؤشرات pointers هي احدي موضوعات السى ، السى ++ التي لها اهمية خاصة و يجب أن تفهما جيداً لكي تكمل المشوار في برمجة الالعاب .