خلف الكواليس : تصميم الالعاب الالكترونية !


اعمل على تصميم الالعاب من قرابة 3 سنوات في محرك Unity, قمت بتأليف بعض الكتب التي تشرح الجانب البرمجي بالإضافة الى تصميم الالعاب في هذا المحرك كونه الجانب الاصعب وبطبيعة الحال جعلت الشرح باللغة العربية من اجل توسيع المحتوى العربي.


محرك الالعاب – Game Engine :

يعتبر تصميم الالعاب من اكثر المشاريع ربحاً في العالم حيث بات ينافس عالم تصميم الافلام بعائداته القوية, فتصميم الالعاب لم يعد حكراً على شركات الالعاب فقط انما اصبح من الممكن لأي شخص الدخول الى هذا المجال و البدء بتصميم اللعبة التي يريدها, ولكن كيف استطيع تصميم لعبة؟

في الواقع هناك برامج تسمى محركات الالعاب, ووظيفتها هي توفير الوقت و الجهد للمصمم حيث توفر العديد من الاشياء الضرورية لبناء اي لعبة في داخلها بالإضافة الى محركات اخرى في داخلها مثل: محرك الRender, الفيزياء Physics Engine , محرك الاصوات ...الخ, وتوفر وصول سريع جداً الى تلك المحركات مع التلاعب بإعداداتها لإخراج اللعبة بشكل واقعي.


تجتمع تلك المحركات مع بعضها لتكوين محرك الالعاب هذا, حيث ان اشهر محركات الالعاب ذو الجودة العالية هي:

Unity Engine, Unreal Engine, هذه المحركات موجودة على الانترنت ويمكن لأي شخص تحميلها وتجربتها, ايضاً يوجد لها العديد من الدروس على الانترنت وانا شخصياً افضل العمل على محرك Unity كونه الاسهل, لكن هذا لا يعني انه سيء في الاخراج بالعكس هذه المحركات ذات جودة عالية في اخراج رسومات قوية للعبة بالإضافة الى امكانياتها الخارقة في بناء لعبة كاملة.

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


التصميم و الأنيميشن – Animation & Modeling:

فعند تجهيز الوثيقة تأتي مرحلة التصميم وهي تسمى محرك الموديلينج Modeling, للدخول الى الموديلينج او التصميم يجب ان تملك احد برامج التصميم وهناك العديد منها على الانترنت مثل Maya, Blender, Sketch Up, 3D Max, فعند امتلاك المطور لاحد تلك البرامج التي يجيدها تبدأ مرحلة تصميم اللعبة بعمل اول التصاميم. فيمر المجسم اولاً بعمليه الرسم على ورق او الاعتماد على مخططات Blueprint المفصلة التي تعرض صور بأبعاد حقيقية للتصميم من جميع الجهات كالتي موجودة في الاسفل.


بعدها تبدأ عمليه التصميم اعتماداً على تلك التفاصيل كونها اكثر دقة من التخمين.

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

الفرد و الاكساء – Unwrapping & Texturing:


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

بعد اخارج التفاصيل على شكل صورة نقوم بإدخالها الى برامج التلوين مثل الفوتوشوب وغيره, البعض يفضل استخدام برنامجGIMP بما انه مجاني, او البرنامج الاشهر Sebastance Painter لكن هذا الاخير غير مجاني.

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


واقوم بتطبيق هذا الامر على جميع التصاميم. في الواقع قد لا تكون جودة التكستشرز عالية ولكنها تفي بالغرض, فكلما زادت جودته كلما احتجت الى جهاز اقوى لمعالجة هذه الرسومات وهذا يفترض وجود تكستشرز بدقة عالية (4K), فعند ادخال التكستشرز الى محرك الالعاب ووضعة على المجسم فأنه يخضع الى Shaders الموجود في المحرك, وهذه الاخير يقوم بعمليات معقدة لإظهار المجسم بشكل واقعي مثل حسابات انعكاسات الاضاءة و الانكسارات واشياء من هذا القبيل, وهل الجسم معدني ام لا وغيرها من الامور, فمحرك Unity و محركات اخرى بنفس القوة او اقوى فأنها تطبق نظام الـPBR وهذا الاخير يقوم بعمليه خطيه لتطبيق القوانين الفيزيائية على الMaterial, هذه الموضوع طويل ولكن اذا اردت التوسع فيه فيمكنك البحث عن تلك العناوين.
تصميم المستويات – Level Design:


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

وطبيعية الحال هذا الامر يعتمد على مدى ابداعك, ولا يوجد فيه شيء معقد يستحق الحديث عنه, فسننتقل للمرحلة التالية وهي البرمجة.


البرمجة – Programming:


يعتبر الجانب البرمجي احد اصعب الجوانب في تصميم الالعاب, وربما اغلبيه من دخلوا الى هذا المجال تركوه بعد ان عرفوا ان البرمجة هي المحور الاساسي لتصميم اي لعبة, في الواقع لا يوجد شيء مخيف في البرمجة ولكنها خطوات منطقية تخاطب فيها الحاسب من اجل تطبيق امر معين في الشاشة, وبما ان محرك الالعاب Unity متقدم التطوير مثل باقي المحركات فانه يوفرAPI او مرجع كبير لجميع للاكواد البرمجية.

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

في الواقع هناك بعض الالعاب التي تعتمد على البرمجة فقط لتصميم اللعبة اي يقوم بتصميم ملفات برمجة تساعد على انشاء مدينه تلقائياً, او بناء متاهة مثل الموجودة في لعبة Pac Man ويمكنك البحث عن هذا الامر تحت مسمى Map Generation وبطبيعة الحال هذا الامر يتطلب الكثير من الخبرة في البرمجة و الحسابات الرياضية وفهم الخوارزميات.

اطلاق اللعبة:


اخيراً وبعد الانتهاء من الخطوات السابقة وتجهيز اللعبة للبناء, تقوم بتحديد المنصات التي ستصدر اللعبة اليها, مثل هل اللعبة موجهه للحساب الشخصي؟ ام للهواتف الذكية؟ وهذا الامر يعتمد عليك.


ففي محرك Unity تذهب الى الخيار Build Settings منه تختار المنصة التي تريد اطلاق اللعبة اليها, ولكن قبل هذا يجب ان يتأكد المطور من ما اذا كان قد برمج اللعبة للعمل على تلك المنصة اي من ناحية طريقة التحكم والاستهلاك, وهل التصاميم عالية الجودة ام كافيه للعمل على تلك المنصة بشكل جيد, وهذا الامر يجب ان يطرحه كل مطور العاب على نفسه قبل اطلاق اللعبة, او يقوم بعمل نسخة تجربيه واختبار أدائها, ثم تبدأ عمليه رفع وتسويق اللعبة على الانترنت او ارض الواقع من اجل ان تصل الى اكبر عدد من اللاعبين.

خاتمه:

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

الموضوع من طرف: عماد عارف التوي
ضمن مسابقة المحترف لأفضل تدوينة لسنة 2017
شكرا لك ولمرورك