vendredi 12 septembre 2014

تعرف على الفرق بين برنامج عادي و لعبة + معنى محركات الالعاب و قوة Unity

السلام عليكم و رحمة الله تعالى و بركاته

في موضوع اليوم سأتكلم عن الألعاب ..
هذا العالم الواسع الذي يعشقه معظم المبرمجين و حتى غير المبرمجين


_________________________


الفرق بين البرامج العادية و الألعاب: 

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

البرامج الاولى التي كنا ننشئها "تقليدية" 
لأن برمجة العاب الفيديو مختلف تماما و له خصائصه الخاصة 

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

بينما لعبة فيديو بالعكس فهي دائما تقوم بحساب شئ ما
لهذا اذا قمنا بالدخول الى  ال " Task Manager " 
سنجد ان البروسيسور (المعالج) عادة يكون مستعمل 100%
و ايضا نلاحظ ارتفاع درجة حرارة الجهاز ..



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

اذن  لعبة الفيديو هي برامج لا تنام أبدا فمثلا لو نرى هذه الصورة 



بالرغم من ان الاعب لا يستعمل الفأرة و لا لوحة المفاتيح (قد يكون بعيدا عن جهازه )
___ إلا أنه يجب تحديث احداثيات (او موقع) الزورق المنطلق 
فهو الان مثلا في الموقع 1 فبعد ثواني قد يقترب أو يبتعد و يصبح في موقع 2
___  و في نفس الوقت يجب أيضا حساب حوالي 60 مرة في الثانية الصورة القادمة التي تجعلنا نحس بابتعاد او اقتراب الزورق
عدد الصور في الثانية تعني (Frame Per Seconds (FPS
أو Frame rate
____ و أيضا كل 16 ميلي ثانية يجب أن تقوم لعبتكم بحساب كل المواقع الجديدة لكل الكائنات او  الاشياء الموجودة داخل لعبتكم 3D
___ حساب كل القوانين الفيزيائية  الموجودة داخل اللعبة مثلا سقوط كائن أو اصطدام كائنين ..الخ

حساب كل ما يقوم به الاعب فاذا قام بتحريك الماوس او الضغط على لوحة المفاتيح (Input)
أيضا التعامل مع الاصوات و الموسيقى ...الخ


كل هذا في 16 ميلي ثانية ! 

لهذا فلحد الان لا يمكننا صنع العاب لها  جرافيك جد عالي او حسابات كبيرة في اجهزة ذكية تستعمل iOs او android 
فهذا  تحدي كبير بسبب محدودية القطع الموجودة بالداخل

______________________________________________________

محركات الالعاب


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

و أيضا اذا اردنا صنع لعبة فيديو من الصفر
في كل مرة يجب برمجة و تطوير نفس الاشياء 
 مثلا لصنع لعبة 1 يجب صنع محرك فيزيائي (physic engine) الذي يمكننا من حساب التصادمات و قوانين الجاذبية ..الخ
لصنع لعبة2 يجب صنع محرك فيزيائي مرة اخرى.....

فصنع كل هذا  يتطلب وقتا و  جهدا و ممكن بعض المال..


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

حسب تعريفمحرك الالعاب في  ويكيبيديا بالفرنسية

Un moteur de jeu est un ensemble de composants logiciels qui effectuent des calculs de géométrie et de physique utilisés dans les jeux vidéo.

يعني أنه مجموعة من البرامج التي تقول بحسابات هندسية و فيزيائية تستعمل في ألعاب الفيديو

هذه المجموعة تتكون من محاكي يحاكي كل ما هو موجود في العالم الحقيقي كالقوانين الفيزيائية الخ

هناك الكثير من محركات الالعب مثلا
Unity, 
CryEngine
Unreal Engine 
...الخ 

فيهم المدفوعة و غير مجانية
و البعض الاخر لا يطرح في الأسواق لأنه خاص بشركة معية (مثلا Ubisof , rockstar ..)

و البعض الاخر موجه الى العام فأنا أو أنت أو أي مبرمج يمكنه استعماله مجانا (Unity)

__________________________________

كل محرك العاب له قوته و وظائفه  حيث يحتوي على الكثير من المحركات المخصصة في مجال معين
مثلا  :
 - محرك فيزيائي
- محرك 3D
- محرك لتسيير الصوت
- محرك مخصص للشبكات (ألعاب MMORPG مثلا)
-محرك خاص بالذكاء الاصطناعي



__________________________________


كيف نختار المحرك المناسب؟

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

و أيضا على أي الأجهزة نريد  أن تشتغل اللعبة؟
هل في الكمبيوتر أم هاتف ذكي ..الخ
لأن في محركات الالعاب قد تجبرك من عمل export للعبة في جهاز خاص

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

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

__________________________________________________________________

و ماذا  عن Unity؟

يمكننا من صنع اللعبة مرة واحدة فقط  ثم نعمل لها  export في الكثير من الاجهزة (بنفس الكود) 
iOs android windows ..

و أيضا ال export يكون مجانا 


برنامج Unity يحتوي على الكثير من المحركات المخصصة  التي ذكرتها 
فهو يحتوي على PhysX by Nvidia للحسابات الفيزيائية 3D
و Box2D  للحسابات الفيزيائية 2D
و Umbra  software 


- يمكننا بكتابة الاكواد(سكربتات)  بثلاث لغات كاملة  جافا سكربت و C#  و BOO  الشبيه ل python 
الاكواد التي نكتبها سيتم تنفيذها من طرف المعالج الخاص  بالكارت فيديو GPU و ليس CPU 

و ايضا النسخة المدفوعة تمكننا من صنع الظل الديناميكي و أيضا تحرك الشعر مع الرياح ..الخ

تعلمه سهل و برمجة الالعب فيه سهل أيضا و حتى ال interface الخاص به مميز

 

هناك الكثير من المزايا أترككم تكتشفونها بأنفسكم سواء على النت او تجريب المحرك

الى

0 commentaires:

Enregistrer un commentaire

Fourni par Blogger.