Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

دليلك لدخول عالم صناعة ألعاب الهواتف الذكية

  • بنية ألعاب الفيديو (Video games)
  • أنواع ملفات اللعبة
  • الأدوات المستخدمة في صناعة ألعاب الفيديو
  • جهاز الحاسوب المناسب لصناعة ألعاب للهواتف الذكية
  • ختام

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

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


بنية ألعاب الفيديو (Video games)

جميعنا نلعب بألعاب الفيديو و لكن هل تساءلت يوماً كيف تعمل الألعاب بالأساس و مما تتكون؟

مكونات الألعاب ثلاثة و هي:

  • الرسوميات.
  • الصوتيات.
  • البرمجة الخاصة باللعبة.

 

الرسوميات (Graphics)

الرسومات عبارة عن كل ما تراه في اللعبة مثل الشخصيات, المركبات, المراحل, المؤثرات إلخ..

 

الصوتيات (Audios)

الصوتيات عبارة عن كل ما تسمعه في اللعبة مثل صوت أقدام شخصية و هي تتحرك أو صوت محرك مركبة تتحرك إلخ..

 

البرمجة الخاصة باللعبة (Programming)

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

 

لذلك فإن بنية الألعاب هي عبارة عن مجموعة من الملفات (Files) الرسومية و الصوتية و البرمجية بحيث أن نوع الملفات الأخير يتحكم في النوعين الأول و الثاني لأجل أن يعملا كلعبة يمكن للاعب التحكم بها و التفاعل مع عناصرها.

 

أنواع ملفات اللعبة

الملفات الرسومية

تنقسم رسوميات الألعاب إلى نوعين: نوع ثنائي الأبعاد (2D) ونوع ثلاثي الأبعاد (3D) ما ينتج لنا نوعين من الألعاب, ألعاب ثنائية الأبعاد (2D Games) و ألعاب ثلاثية الأبعاد (3D Games).

الرسومات ثنائية الأبعاد: هي عبارة عن ملفات صور عادية و تكون ملفات PNG في العادة.

كمثال توضيحي هذه صورة لأحد الألعاب الثنائية الأبعاد تظهر فيها خلفية مكونة من جبال و سماء و هي عبارة عن صورة و أيضاً الشخصية و التضاريس التي يمكنه المشي فوقها و النقود إلخ.. كلها صور عادية خلفيتها شفافة.

و نفس الشيئ بالنسبة لعناصر التحكم من أزرار و غيرها (عناصر واجهة المستخدم UI Elements) أما العدادات النصية فيمكن أن تكون نصوصاً في حالات كثيرة لأن قيمتها تتغير باستمرار بناءً على ما يقوم به اللاعب.


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


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


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


ملاحظة: تتواجد أيضا في الألعاب ملفات الفيديو الإعتيادية مثل الملفات التي نوعها MP4 و استخدامتها عدة مثل أن يتم إظهار فيديو في بداية اللعبة يحكي بداية قصتها.

 

الملفات الصوتية

هي عبارة عن ملفات صوت إعتيادية إمتدادها MP3 بالعادة, و تشمل أي صوت تسمعه في اللعبة ما عدا الأصوات المرتبطة بملف فيديو لأن الصوت في هذه الحالة سيكون صوتاً في ملف الفيديو و ليس ملفاً منفصلاً.

 

الملفات البرمجية (Scripts)

التعليمات البرمجية هي عبارة عن أوامر مكتوبة لذلك فإن الملفات البرمجية هي عبارة عن ملفات نصية تُكتب بداخلها التعليمات البرمجية، ويتم كتابتها بواسطة لغات البرمجة مثل لغة ++C أو #C أو java الخ..

هذا مثال للتعليمات البرمجية عبارة عن جزء من تعليمات ملف برمجي لأحد الألعاب مفتوحة المصدر.

public class Breakable : MonoBehaviour {
    
    //مقدار الصحة الأولية للكائن
    public float initialHealth = 100;
    
    //متغير داخلي لمتابعة تغير قيمة صحة الكائن
    private float health;
    
    //تستدعى مرة واحدة عند بداية التشغيل
    void Start () {
        health = initialHealth;
    }

    //تستدعى مرة عند تصيير كل إطار
    void Update (    
    }
    
    //تقوم باستقبال الضربات وإنقاص الصحة بناء عليها
    public void TakeDamage(float amount){
           //الصحة منتهية فلا يمكن تلقي المزيد من الضربات
              if (health <= 0.0f)
           {
                   return;
           }
    }
}


ملاحظة: الكتابات باللون الرمادي الفاتح المبتدئة بالرمز // هي تعليقات (Comments) توضع في الملفات البرمجية لشرح دور تعليمات برمجية معينة وهي لا تؤثر في التعليمات، لأن كتابة التعليقات أو عدم كتابتها ليس لديه أي دور في السلوك البرمجي للألعاب، لكن كتابتها تساعد الآخرين كثيراً على فهم ملفك البرمجي في حالة العمل ضمن فريق على سبيل المثال.

 

الأدوات المستخدمة في صناعة ألعاب الفيديو

أصبحت الآن تعرف بنية الآلعاب ومكوناتها لذلك فإن ما يجب معرفته الآن هي البرامج المتخصصة في عمل هذه المكونات وإنشاء لعبة منها، وهي كالتالي:

1- برنامج لإنشاء الرسوميات ثنائية الأبعاد

تنقسم البرامج التي يمكنك إستخدامها لإنجاز رسومات ثنائية الأبعاد إلى نوعين: برامج رسم نقطي (Pixel) و برامج رسم متجهي (Vector).

لكن بالنسبة لإنشاء رسومات ثنائية الأبعاد للألعاب فإن إستخدام برنامج متجهي هو الخيار الأمثل لما توفره هذه النوعية من سهولة و مرونة في الرسم، و فيما يلي أفضل البرامج لتعلمها و إستخدامها:

برنامج Adobe Illustrator

أشهر برنامج متجهي والأكثر إستخداماً وهو من تطوير شركة Adobe، البرنامج مدفوع عن طريق الإشتراك الشهري ويعمل على نظامي Windows و MacOS.


برنامج Affinity Designer

برنامج صاعد بقوة و ينافس Adobe Illustrator و هو من تطوير شركة Affinity، و ما يميزه سعره الأقل بكثير فأنت ستدفع مرة واحدة ما يعادل سعر شهرين إشتراك في برنامج Illustrator و لن تدفع مجدداً إلا في حال تم إخراج إصدار جديد و أردت شراءه، و يعمل البرنامج على نظامي Windows و MacOS و أيضاً على أجهزة آيباد.


برنامج Inkscape

إذا كنت تريد حلا مجانياً فإن هذا البرنامج هو الأنسب، فهو مجاني بالكامل و مفتوح المصدر و هو ليس برنامج تجارياً تابعاً لشركة بل قائم على فكرة “المجتمع” الذي يقوم بتطويره و دعمه، و يعمل البرنامج على أنظمة Windows و MacOS و Linux.


بالبحث في Google و Youtube و مواقع الدورات مثل Udemy ستجد دروساً و دورات كثيرة مجانية و مدفوعة لتعلم هذه البرامج و تعلم الرسم بها.

 

2- برنامج لإنشاء الرسوميات ثلاثية الأبعاد

يستخدم لإنشاء الرسومات ثلاثية الأبعاد أو ما يطلق عليها أيضاً نماذج ثلاثية الأبعاد (3D Models) برامج خاصة للرسم ثلاثي الأبعاد (3D CG Software). من أشهر هذه البرامج و أكثرها استخداماً هي البرامج التالية: Maya و Blender و Houdini و Cinema 4D و Modo.

البرنامج الذي ينصح باستخدامه هو برنامج Blender نظراً لكونه مجانياً، فتكلفة البرامج المدفوعة ليست رخيصة أبداً و كون البرنامج مجانياً لايعني أنه أقل مستوى، فهو بنفس مستوى البرامج المدفوعة و سبب توفره مجاناً هو أنه ليس برنامجاً تجارياً بل وراءه مؤسسة “Blender” غير الربحية و هو برنامج مفتوح المصدر و له مجتمع داعم كبير و من بين الداعمين شركتين لهما وزنهما الكبير في سوق صناعة الألعاب وهما شركتا Ubisoft و Epic Games، و يعمل البرنامج على أنظمة Windows و MacOS و Linux.



بالبحث في Google و Youtube ومواقع الدورات مثل Udemy ستجد دروساً و دورات كثيرة مجانية ومدفوعة لتعلم هذا البرنامج و تعلم إنشاء رسومات به.

 

3- الصوتيات في الألعاب

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

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

 

4- كتابة التعليمات البرمجية

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

  • Visual Studio و هو في الواقع أكثر من محرر تعليمات برمجية بل هو بيئة تطوير متكاملة (IDE).
  • Visual Studio Code
  • JetBrains Rider

و سيتضح لك لماذا هذه المحررات بالظبط دون غيرها في الفقرة التالية من هذه المقالة. و بالنسبة إلى اللغة التي ستكتب بها التعليمات البرمجية فستكون لغة #C و سيتضح لك لماذا هذه اللغة دون غيرها من اللغات في الفقرة التالية.


5- محرك الألعاب (Game Engine)

لديك الآن الرسوميات و الصوتيات الخاصة بك و بقي لك مرحلة البرمجة، و قد سبق و قلنا أن البرمجة في الألعاب هي كتابة تعليمات تتحكم في العناصر الرسومية و الصوتية لديك بطريقة تجعل منها لعبة. و لكن في الواقع البرمجة في الألعاب تفوق هذا ومسألة أنك ستقوم بهذه البرمجة النهائية فقط لصناعة لعبة يعني أن هناك برمجة متقدمة أولية قد تم عملها بدلاً منك لتسهيل الأمر عليك و جعل عملية صناعة الألعاب أسهل، فقد تم وضع و تنظيم كل هذه البرمجيات المتقدمة ضمن برنامج واحد يسمى محرك الألعاب و فيه سوف تضع كل رسوماتك و صوتياتك و ملفاتك البرمجية و تصنع الألعاب فيه.

هذه البرمجيات المتقدمة عبارة عن أنظمة برمجية خاصة للألعاب مثل أنظمة التحريك و الفيزياء كالجاذبية و غيرها و الضوء و غير ذلك الكثير مما لا يسع ذكره.

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

و يدعم محرك Unity لغة البرمجة #C لأجل كتابة التعليمات البرمجية، أما بالنسبة إلى المحرر البرمجي فإنه يدعم المحررات Visual Studio و Visual Studio Code و JetBrains Rider و عند تحميل المحرك سيقوم بتتبيث إطار Visual Studio ليكون مجهزاً مباشرة لكتابة التعليمات البرمجية فيه.

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


وبالبحث في Google و Youtube ومواقع الدورات مثل Udemy ستجد دروساً و دورات كثيرة مجانية و مدفوعة لتعلم لغة #C سواء عامة أو مخصصة للبرمجة في محرك Unity و أيضا لتعلم صناعة ألعاب الهواتف الذكية في محرك Unity و التي يوفرها أيضا موقع Unity الرسمي.

يعمل محرك Unity على نظام Windows و MacOS و Linux.

 

جهاز الحاسوب المناسب لصناعة ألعاب للهواتف الذكية

للبدء في تعلم صناعة الألعاب ستكون هذه المواصفات في جهاز الحاسوب ممتازة:

  • معالج core i5 /core i7 من شركة intel أو معالج ryzen 5/ryzen 7 من شركة AMD.
  • ذاكرة عشوائية (RAM) بحجم ما بين 8GB و 16GB.
  • كرت شاشة متوسط الأداء من شركة NVIDIA أو AMD (عامة هي التي تمتلك حجم ذاكرة من 4GB إلى 6GB) بالنسبة إلى صناعة ألعاب 3D.
  • كرت شاشة من عادي إلى متوسط الأداء من شركة NVIDIA أو AMD (التي تمتلك حجم ذاكرة من 2GB إلى 4GB) بالنسبة إلى صناعة ألعاب 2D.
  • و إذا وفرت قرص تخزين من نوع SSD فإنه سيكون أفضل من القرص العادي HDD كونه أكثر سرعة.

 

ختام

تعرفت في هذا المقال على أساسيات صناعة الألعاب للهواتف الذكية، و الآن حان دورك للتعمق في البحث أكثر و إختيار هل تود البدء بتعلم صناعة الألعاب 2D أو الألعاب 3D و تحميل الأدوات و بدأ رحلة تعلمك، فإلى المهتمين بالدخول في المجال كن صبوراً غير مستعجل للنتائج و خذ وقتك في التعلم و البحث و الإطلاع.

و خلال تقدمك كثيراً في هذا المجال ستبدأ بالإهتمام أكثر بجانب الجوانب الرسومية/ الصوتية/ البرمجية بالجانب التصميمي (تصميم الألعاب Game Design) و التصميم يتعلق بماذا ستكون فكرة لعبتك و طريقة اللعب فيها و المراحل و أن تكون مناسبة للّاعبين و محببة لهم و غيرذلك الكثير… فهذه ملاحظة سريعة لأن هناك خلطاً بين تصميم الألعاب و الرسم حيث قد يظن البعض أن رسم رسوميات الألعاب هو التصميم في الألعاب.

و صلنا إلى نهاية المقال و أرحب بأي سؤال قد يراودك بخصوص صناعة الألعاب للإجابة عليه بما أعلم.

 

المراجع و المصادر

الصورة الثانية من الموقع التالي:

https://www.freepngimg.com/png/83123-computer-sprite-figure-character-fictional-2d-animation

الصورة الرابعة من الموقع التالي:

https://www.techjockey.com/blog/top-animation-software-list

الصورة الخامسة من الفيديو التالي:

https://www.youtube.com/watch?v=yiFOYS1B-t0

الصورة السادسة من الموقع التالي:

https://gametorrahod.com/unity-2d-asset-pipeline-with-affinity-designer

الصورة السابعة من الموقع التالي:

https://trainingvideocenter.com/skillshare-design-2d-game-ui-in-vector-with-inkscape

الصورتان الثامنة والتاسعة من الموقع التالي:

https://free3d.com/es/modelo-3d/intergalactic-spaceship-in-blender-28-eevee-394046.html

الصورة العاشرة من الموقع التالي:

https://comidoc.com/unity-game-programming-for-absolute-beginners

الصورة الحادية عشرة من الموقع التالي:

https://unity.com/solutions/2d

آخر تحديث في 01-08-2024

الكاتب

Mohammed Alqalaluzi

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

تعليقات 1

أضف تعليق

يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.