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

لكل من برمج لعبة باستخدام Unreal أو CryEngine أو Godot أو Unity أو ……….. كم أمرا من أوامر OpenGL أو DirectX استخدمت؟؟؟ 99% من الإجابات: و لا أمرا واحدا. لماذا؟!!

لأن OpenGL و DirectX يستخدمان من قبل مطوري محركات الألعاب و ليس من قبل مطوري الألعاب. بالطبع يمكن استخدامهما من قبل مبرمج للألعاب في حالة الألعاب البسيطة جدا و كذلك الألعاب المعقدة جدا لكن قانون إعادة استخدام البرمجة يفرض علينا أن نقسم عملية تطوير برمجة الألعاب إلى: 1- تطوير محرك الألعاب 2- برمجة اللعبة باستخدام محرك الألعاب.

الأمر الذي لاحظته أن العدد الأكبر من الكتب التي تحمل عنوانا يشبه: تعلم برمجة الألعاب…. غالبا ما يكون عن برمجة محرك للألعاب و ليس عن برمجة الألعاب نفسها. و الكثير منها يحاول اقناع القارئ بأنه سيكون قادرا على برمجة الألعاب كالمحترفين أو أن إنشاء محرك للألعاب أمر سهل. لماذا لا يشرح أي من تلك الكتب تحري التصادمات بالطريقة المستخدمة من قبل الشركات الكبيرة مثل Physx أو حركة البشر و الحيوانات على الأسطح غير المستوية مثل Autodesk IK أو طرق تسريع معالجة الرسوم و غيرها من المواضيع الأساسية جدا جدا لإنشاء محركات الألعاب و بالتالي الألعاب. للمزيد عن هذا الموضوع تابع المقالة:

يعتقد البعض أنه لا يوجد محرك ألعاب يصلح لإنتاج كل انواع الألعاب، لكن هذا التفكير خاطئ. على سبيل المثال محرك الألعاب من شركة Renderware استخدم في إنتاج كافة أنواع الألعاب: قتال، مغامرات، سيارات….. ما حصل هو أن الشركات التي كانت تشتري التراخيص كانت تستأجر مبرمجين يبرعون في *** أساليب برمجة الألعاب *** يقومون بإضافة كل الميزات التي تهمهم بالطريقة المناسبة. و بالتالي فإنهم كانوا قادرين على دمج كل شيئ في لعبة واحدة مثل: GTA، قتال و مغامرات و سيارات و طائرات….. مثال آخر: قامت شركة Valve باستخدم محرك Quake في صناعة Half Life و التي تضم اشخاص و سيارات و فيزياء بالرغم من أن محرك Quake صمم ليكون FPS (طبعا هذه جملة خاطئة لأن المحرك مصمم ليكون عاما لكن الإضافات عليه كانت في مجال FPS)

إذا عندما نتعلم أساليب برمجة الألعاب لا يعود مهما جدا ما هو محرك الألعاب الذي نستعمله لأن طريقة تطبيق أساليب برمجة الألعاب تكون غالبا متشابهة جدا بين المحركات المختلفة. إذا تعلمنا طريقة Ray Casting لتحري تصادم إطارات السيارة بما هو أسفلها فإن طريقة التطبيق متشابهة جدا سواء كنت تستخدم Bullet أو Newton أو Havok أو ….. ألمهم هو الطريقة.

الخلاصة: إذا كنت تريد أن تصبح “مبرمج ألعاب” لا تضيع وقتك في تعلم OpenGL و DirectX بل استثمر وقتك في تعلم برمجة الألعاب نفسها. و تذكر أن الأفكار المستخدمة في برمجة الألعاب متشابهة جدا مهما اختلف محرك الألعاب. قم باختيار محرك ألعاب يناسب احتياجاتك و انطلق في برمجة الألعاب.

م.علاء همّاش