أستمع الى المقال

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

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

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

المصدر: Getty Images و Javier Laspiur

لغات البرمجة في صناعة الألعاب:  

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

الألعاب سابقاً مثل لعبة Super Mario ولعبة Sonic التي كانت متوفرة على الخراطيش “الكاسيتات” كان يتم تطويرها عن طريق لغة تسمى بلغة الآلة “Machine Language”، وهي لغة ثنائية (0-1)، تستطيع الآلة وحدها فهم وتفسير هذا الكود. لغات البرمجة الحديثة تم بناؤها على لغة الآلة، إذ أن كل الكود البرمجي الذي يكتب بهذه اللغات يتم تحويلها أولاً إلى هذه اللغة وبعدها يقوم المعالج بتنفيذ الأوامر ويعالج البيانات.

اقرأ أيضاً: النظام الثنائي والست عشري

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

  • اللغات ذات المستوى المنخفض تحتوي فقط على الرموز والأرقام والأحرف، الكود البرمجي يكون معقداً جداً ويصعب فهمه لاحقاً، خصوصاً في مرحلة التصحيح “debugging” وهي مرحلة يتطلب فيها البحث عن الأخطاء الموجودة في الكود البرمجي وإصلاحها.  
  • اللغات ذات المستوى العالي تكون في غالبيتها مكتوبة بلغة يفهمها البشر وتحتوي على صياغات وتعابير يفهمها المبرمج بمجرد مروره السريع عليها. وهذا بالطبع يسرع من عملية كتابة الكود ومن عملية تصحيحه لاحقاً.
مقارنة بين لغات منخفضة المستوى وعالية المستوى | المصدر: Getty Images

لغات C كحل وسط:

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

تم إصدار لغة C في عام 1972 وتعتبر -وبالرغم من قدمها- من أكثر لغات البرمجة شيوعاً إلى وقتنا الحالي، اخترعها المبرمج الأمريكي دينيس ريتشي. لاحقاً وفي عام 1983 تم إصدار لغة ++C والتي تعتبر نسخة مطورة من اللغة الأم C، تعتبر لغة C++ من أفضل لغات البرمجة التي تتعامل مع البرمجيات التي تحتوي على رسوميات عالية، وتحتوي على بنى فيزيائية معقدة من بينها الألعاب وغيرها، ويتم اعتمادها إلى الآن في كثير من محركات الألعاب من بينها محركات Unreal وGodot، بالإضافة إلى أنظمة التشغيل والبرامج التي تتعامل مع الصور مثل Photoshop. في عام 2001 ظهرت لغة C# من تطوير وتحسين شركة Microsoft التي نالت شهرة واسعة خصوصاً بعد اعتمادها كلغة أساسية في محرك الألعاب الشهير Unity.

لماذا تعتبر لغات C من أفضل لغات البرمجة في الألعاب:

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

جمع القمامة Garbage Collection:

هي آلية يتم عبرها توفير المساحة داخل الذاكرة العشوائية “RAM” وذلك عبر حذف البيانات منها وتحرير مساحة أكبر لتشغلها البيانات التي ستأتي لاحقاً. تتم هذه عن طريق خوارزميات معقدة يتم من خلالها حساب وتخمين فيما إذا كان وجود إحدى البيانات داخل الذاكرة العشوائية مهم أو أنها “نفايات” فتتخلص منها.

المصدر: Jyothsna Pantam

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

اقرأ أيضاً: أساسيات البرمجة عبر كوتلن

فرص العمل كمبرمج ألعاب تتطلب بالدرجة الأولى إتقان ++C:

لغة C++ تبدو أسهل وأكثر حداثة من لغة C نفسها، فوجود كل هذه الميزات المجتمعة فيها تدفع الشركات للبحث عن مطوري الألعاب المتمكنين في هذه اللغة.

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

شركة Hazelight التي قامت بتطوير العديد من الألعاب من بينها It takes two والمرشحة لجائزة أفضل لعبة في هذا العام، تنشر باستمرار عن شواغر عمل كمبرمج رسوميات أو مبرمج أصوات أو مبرمجين في مجالات مختلفة يتقنون لغة C++ كشرط أساسي للعمل في شركتهم. كذلك شركة Activision المطورة لسلسلة Call Of Duty تطلب مبرمجين ومهندسين متقنين لإحدى لغات C وبالأخص لغة C++، كما أن شركة مثل Playdead التي تعمل حالياً على لعبتها الجديدة بعد Inside، أعلنت منذ فترة عن شواغر في فريق تطوير لعبتهم القادمة ويجب على المتقدم أن يتقن لغة ++C.

كل هذا بالطبع لا يقلل من أهمية إتقان بقية لغات البرمجة للحصول على وظيفة في تطوير الألعاب، ولكن لغة C++ تكون مطلوبة بشدة في هذا المجال خصوصاً في الشركات المطورة لألعاب AAA.

هل أعجبك المحتوى وتريد المزيد منه يصل إلى صندوق بريدك الإلكتروني بشكلٍ دوري؟
انضم إلى قائمة من يقدّرون محتوى إكسڤار واشترك بنشرتنا البريدية.