احذر من كتب برمجة الألعاب التي قد تطيح بمستقبلك كمبرمج للألعاب

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

بعض عيوب تلك الكتب:
أكثر تلك الكتب يحمل عنوانا مضللا غالبا ما يحتوي: Games Programming لكنه في الحقيقة لا يتحدث إلا عن بعض من أساليب الرسم و التحريك الأساسية. العناوين المناسبة لمثل هذه الكتب هي Graphics Programming. و هناك فئة كبيرة يناسبها العنوان: Game Engine Programming حيث أنها تعلم المستخدم برمجة محركات الألعاب و لا تعلمه أساليب برمجة الألعاب.

تعمد تجاهل عناصر مهمة جدا في برمجة الألعاب الحديثة. أسوء ما في تلك الكتب أن كاتبها يوهم القارئ بأنه سيتعلم برمجة “الألعاب” و بالطبع المقصود هو الألعاب البسيطة جدا جدا لكن ما في عقل قارئ الكتاب هو تلك الألعاب العالمية. يصطدم القارئ بهذه الحقيقة عندما يبدأ ببرمجة اللعبة التي لطالما حلم بها، فالكتاب الذي تعلم منه لم يذكر ما يكفي عن أساليب تحري التصادم بين الأجسام و حساب زوايا ميل إطارات السيارة فوق أرض غير مسطحة و عن صعود السلم و اختيار الاجسام في المنظور ثلاثي الأبعاد بدقة و الأساليب المتبعة في تحسين أداء الألعاب بحيث لا يكون أداؤها بطيئا كزحف سلحفاة على وشك أن تموت.

عدم توجيه القارئ إلى الأساليب العملية في برمجة الألعاب. إن كان كاتب الكتاب مبرمج ألعاب محترف فهو الأقدر على توجيه القارئ إلى اختيار الخوارزميات التي تناسب الطرق العملية في برمجة الألعاب الحديثة. لكن أكثر ما يقدمه كاتبوا تلك الكتب هو فقط الأساليب البسيطة إما لأنهم يريدون ما يسهل على القارئ فهمه أو ربما لأن أكثرهم ليسوا مبرمجي ألعاب محترفين أو ربما لأن تلك المعلومات هي في الحقيقة أسرار عالم برمجة الألعاب و لا بد أنهم استثمروا كثيرا من عمرهم في اكتشافها و لذلك تجدهم لا يحبون كشف تلك الأسرار.

عدم تعليم القارئ الطرق الصحيحة لهيكلة الأصل البرمجي و الاكتفاء في أكثر الأحيان بملاحظة تقول بأن الغرض من الأصل البرمجي في الكتاب هو التعليم. لكن أكثر المبرمجين المبتدئين لا يعيرون الكثير من الانتباه لتلك الملاحظة و يعتمدون أساليب البرمجة التي تعلموها من الكتاب في برمجة الألعاب. إن أكبر مصيبة تلم بمبرمج الألعاب(بعد المصيبة في دينه) هو تعلمه لعادات سيئة في برمجة الألعاب و اتباع تلك العادات حتى يعتقد أنها هي أفضل أساليب البرمجة. تلك العادات تشبه الإدمان و يصعب بحق على المبرمج تعلم طريقة جديدة في البرمجة الا بعد الكثيرالكثير من الصبر على البرمجة باتباع الطرق الصحيحة.

قبل أن تدخل عالم تطوير الألعاب يجب أن تقرر ماذا تريد أن تكون:
مبرمج ألعاب
مبرمج محركات ألعاب
اكاديميا في مجال برمجة الألعاب

بالطبع يندرج أسفل كل عنوان من ما سبق الكثير من العناوين الفرعية. إن كان خيارك هو أن تصبح مبرمج ألعاب فأنصحك باتباع الطريق التالي:
– إن كنت تريد أن تصبح مبرمج ألعاب محترف فعليك بلغة سي أو سي بلص بلص فقط. أما إن كنت تريد أن تبرمج الألعاب للتسلية فلا بأس بأي لغة برمجة أخرى أيا ما كانت.
– لا تقرأ أي كتب تعلم أوبن جي أل أو ديريكت أكس فهي مخصصة لمن يريد أن يصبح مبرمج محركات ألعاب أو محركات رسوم. اختر أحد محركات الألعاب و اعتمده لإنتاج الألعاب و لا تنس أنه يجب أن يدعم سي أو سي بلص بلص
– لا تقرأ أكثر من كتاب او كتابين عن البرمجة العامة للألعاب، خذ من هذه الكتب الأفكار و لا تأخذ منها طرق البرمجة. احذر ثم احذر ثم احذر من كتاب يعلم برمجة محركات الألعاب و يدعي بأنه يعلم برمجة الألعاب. من الضروري انتقاء الكتب التي لها تقييم عال من قبل القراء و ليس من قبل المحررين.
– لا تجعل حماستك للبرمجة تمنعك من قراءة كتاب ممتاز عن تصميم الألعاب. هذا مهم جدا لتعرف كيف تقوم الشركات العالمية بتصميم ألعابها و ما يجب القيام به و ما لا يجب القيام به.
– بهذا تكون جاهزا للانتقال إلى قراءة كتب متخصصة في أساليب البرمجة المحترفة. من الضروري أن تعرف أساليب تصميم و بناء الأصل البرمجي للألعاب، فأساليب برمجة البرامج المحاسبية و الأدوات و غيرها من التطبيقات قد لا تناسب ابدا برمجة الألعاب.
– انتقل إلى قراءة الكتب و المقالات المتخصصة في كل مجال من مجالات برمجة الألعاب. قد يتجاوز عدد الكتب التي يجب قراءتها العشرة ( كتاب او كتابين عن كل موضوع من مواضيع برمجة الألعاب). يجب انتقاء الكتب التي لها تقييم عال من قبل القراء. قبل أن تنتقل إلى هذه المرحلة حاول أن تعرف ماذا أنجز غيرك في المجال الذي تريد الدراسة عنه لأن هذا سيساعدك في إكمال المسيرة عوضا عن البدء من نقطة الصفر.

كم أتمنى أن أسهب في الشرح و التوضيح لكن الوقت لا يسعفني و إن شاء الله سأضيف إلى هذه المقالة المزيد عندما يكون هناك وقت. أرحب كثيرا بالنقد البناء حيث أنه يساعدني و يساعد القراء في تدارك الأخطاء و التنبه إلى ما يمكن تحسينه في هذه المقالة.

م.علاء همّاش