تصميم ألعاب الفيديو/أجزاء اللعبة الأساسية


لنعرف الالعاب برمجياً ،عندما نقوم بتشغيل أي لعبة علي الحاسب مثلاً فاننا نمر بحلقة أو دورة غير منتهية أي " تلف تلف " من الاحداث و التي بدورها تقوم برسم الصور و فعل الاحداث . تقوم الالعاب برسم الصور و فعل الاحداث في معدل معين نحن نفرضه و هو 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 هي احدي موضوعات السى ، السى ++ التي لها اهمية خاصة و يجب أن تفهما جيداً لكي تكمل المشوار في برمجة الالعاب .