برمجة الألعاب الثلاثية الأبعاد/أجزاء اللعبة الأساسية

من ويكي الكتب
اذهب إلى التنقل اذهب إلى البحث

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