تقنية الالعاب : المحركات
الكثير منا يسمع عن محرك الالعاب ؟ ربما يكون اللفظ غريبا عندما تردد على اذنيك اول مرة، و لكن ان كنت من هواة الالعاب فبالتأكيد تردد على مسامعك كثيرا بحيث لم يعد باللفظ الغريب، ايضا ان كنت من مفضلى الحواسب على المنصات الاخرى فانت اكيد عانيت من ان بعد المحركات تطلب قدرات فائقة للغاية للحاسب و اشهر مثال على ذلك محرك CtyEngine و هو البنية التحتية للعبة crysis الشهيرة.
ما علاقة المحرك بالالعاب؟! دعنا نسرد قصة بسيطة عشناها جميعا منذ ١٥ عام، حيث كان الحصول على فنجان من القهوة فى الصباح يحتاج ان تستقيظ مبكرا لتضع الماء فى كنكة حتى يصل للغليان فى وقت مناسب على نار المقود و يجب ان تراقبه و الا فارت القهوة و فقدت "الوش" الذى يميزها ربما الامر كله كان يستغرق ٢٠ دقيقة او اكثر اما الان كل ما عليك هو الضغط على زر فى جهاز عمل القهوة الاوتوماتيكى الذى ينهى الامر فى دقيقتان على الاكثر و يضع لك القهوة فى الكوب و معها "الوش" دون الانتظار او المراقبة للكنكة. هذا النوع من التطور فى اجهزة عمل القهوة ضمن سرعة التنفيذ و استنفاد مجهود اقل و جودة مضمونة يوميا هو نفسه الذى صنعته محركات الالعاب بصناعة الالعاب عموما!
مبدأيا تطوير الالعاب كان معتمد كليا على البرمجة و تكون الرسوميات امر مساعد و تبنى كل لعبة من الصفر بحيث يقوم المبرمجون بكتابة الاف السطور من اكواد لغات البرمجة المتكررة فى كل لعبة كاطار اساسى ثم يقوموا باضافة خصائص اللعبة التى يعملوا عليها حاليا و من بعدها الرسوميات و الموسيقى و بالتالى كان تطوير الالعاب فى الاساس عمل برمجى و ليس عمل فنى.
تغير كل هذا بحدوث طفرة هائلة حيث بدأت محركات الالعاب فى الظهور كمكتبات من الكود يدرجها المبرمج فى اللعبة خلال تطويرها و تقوم بتوفير الجهد عليه فى كتابة الاطارات المتكررة مثل التعامل مع كارت الشاشة و ضبط خصائصه كدقة الصورة و الالوان و ظلت المحركات عامل مساعد للمبرمج و ظلت ايضا الالعاب عمل برمجى اكثر منه عمل فنى و لكن هذا الوقت سمح لشركات انتاج الالعاب ان تبذل جهدا اكبر فى القصة و الرسوميات و بالتالى بدأت تظهر العاب اقرب لافلام السينما و بعيدة عن الالعاب التقليدية المعتمدة على تجميع النقاط.
تطورت المحركات فيما بعد فاصبحت بيئات متاكملة لانتاج الالعاب بما فى ذلك الرسوميات و تسجيل الحركة و الموسيقى و الصوت و معالجته و اصبحت المحركات اقرب الى برامج صناعة افلام الكارتون و من هنا اصبحت الالعاب عمل فنى اكثر منه عمل برمجى و اصبح المبرمج معظم عمله متركز على برمجة المحرك نفسه و تحسينه و جعله اكثر استقرارا و داعم لاكبر عدد ممكن من كروت الشاشة و المعالجات باستخدام اقل مساحة تخزينية فى الرام و بذلك تطورت صناعة الالعاب بشكل ملحوظ حيث اصبح الامر اقرب الى صناعة السينما منه الى البرمجة!
اشهر الامثلة على مكتبات الكود هى directX و OpenGL، الاول تطوره مايكروسوفت و استخدامه حصرى على منصاتها اما الثانى فهو مفتوح المصدر له نكهات عديدة و مستخدم على منصات linux و Apple Mac OSX و Andriod و .iOS
تعتبر هذه المكتبات medium level بمعنى انها تربط المبرمج بالhardware على مستوى متوسط بدلا من تركه يتعامل مباشرة مع الهاردوير و بالتالى توفر الكثير من الوقت و الجهد، و فى نفس الوقت تتيح له الكثر من الامكانيات لفعل ما يريد.
اما اشهر المحركات اللتى توفر بيئات متاكلمة للتطوير crytek engine و unreal engine و unity3D الاول يعتبر افضل محرك من الناحية الرسومية و اكثرهم احتياجا للمتطلبات و بالطبع اشهر انتاج منه crysis و اسطورتها الخاصة بانها تحرق كروت الشاشة و بالطبع هذا امر اسطورى فكروت الشاشة مزودة بحساسات حرارة تجعلها تخبر الmotherboard بوجوب عمل restart فى حالة ارتفاع الحرارة ربما تصاب هذه الحساسات بعطل بعد فترات عمل طويلة و لكن هذا امر ليس له دخل باللعبة، اما سبب المتطلبات الفائقة فهو اعتماد محرك crytek على حسابات معقدة للاضاءة تختلف كثيرا عن كل المحركات الاخرى وص اقرب الى حسابات الاضاءة الخاصة بافلام الكارتون و ايضا كثرة المؤثرات الجويه كالاتربة تجعله من اقسى المحركات على كروت الشاشة
اما الثانى فهو محرك unreal و اشهر العابه unreal torunment و bioshock infinite و infinity blade الخاصة بالiOS هو محرك قوى قادر على صنع الكثير باقل القدرات و اذكر اننى كنت استطيع تشغيل Bioshock infinite على المتوسط-العالى مع كارت intel hd 4000 على احد اجهزة ابل و بالطبع هناك اختلاف كبير لمتطلبات الdirectx عن الopenGL التى سمحت بذلك كمان ان لعبة infinity blade تتميز برسوميات تضاهى تلك التى تجدها على منصات الالعاب المتخصصة و مع ذلك تعمل على اجهزة الموبايل
اما الثالث فهو اسهل من حيث الاستخدام، محرك يمكن انجاز الكثير به و هو unity3D مشهور بين الهواة و المبرمجين الصغار لسهولة استخدامه كما ان له متجر الكترونى لشراء الassets او الرسوم او المؤثرات الصوتية التى يستخدمها المبرمج فى العابه و بهذا يمكنه انتاج لعبة كامله وحده من منزله، معظم انتاجته هى العاب موبايل و و اذكر هنا ان لعبة unearthed و التى اعتبرها اضخم انتاج عربى فى مجال اللعاب استخدمته.
و قبل ان تنتهى من قراءة هذا المقال لعلك تسأل نفسك لماذا الى الان هناك مكتبات كود تحتاج الى الكثير من الجهد و الوقت مع ان هناك بيئات متاكاملة للتطوير دون الحاجة لهذا الوقت و المجهود؟ لماذا لا نستخدم فقط البيئات المتاكملة و نستغنى تمام عن مكتبات الكود؟، و اجد ان هذا السؤال فى محله و ربما يثير تعجب اى شخص و لكن الاجابه عليه تطول و بها الكثير من الامور التقنية و لكن يمكن الاختصار بان المكتبات الكودية تتيح لمطور الالعاب الكثير من الامور التى لا تتيحها بيئات التطوير حيث انها تكون ابسط و لكن على حساب الامكانات المتاحة للمطور كما ان هذا البيئات تُبنى باستخدام هذه المكتبات الكودية فى الاساس؛ و يمكن تشبيه الامر بوجود السيارات الmanual الى الان و التى يفضلها محترفى القيادة مع ان السيارات الاوتوماتيكية موجودة و متاحة منذ عقود.
من هنا ينتهى هذا الجزء من سلسلة تقنية الالعاب، لمقتراحاتكم و اراءكم ارجو التعليق على المقال.
ما علاقة المحرك بالالعاب؟! دعنا نسرد قصة بسيطة عشناها جميعا منذ ١٥ عام، حيث كان الحصول على فنجان من القهوة فى الصباح يحتاج ان تستقيظ مبكرا لتضع الماء فى كنكة حتى يصل للغليان فى وقت مناسب على نار المقود و يجب ان تراقبه و الا فارت القهوة و فقدت "الوش" الذى يميزها ربما الامر كله كان يستغرق ٢٠ دقيقة او اكثر اما الان كل ما عليك هو الضغط على زر فى جهاز عمل القهوة الاوتوماتيكى الذى ينهى الامر فى دقيقتان على الاكثر و يضع لك القهوة فى الكوب و معها "الوش" دون الانتظار او المراقبة للكنكة. هذا النوع من التطور فى اجهزة عمل القهوة ضمن سرعة التنفيذ و استنفاد مجهود اقل و جودة مضمونة يوميا هو نفسه الذى صنعته محركات الالعاب بصناعة الالعاب عموما!
مبدأيا تطوير الالعاب كان معتمد كليا على البرمجة و تكون الرسوميات امر مساعد و تبنى كل لعبة من الصفر بحيث يقوم المبرمجون بكتابة الاف السطور من اكواد لغات البرمجة المتكررة فى كل لعبة كاطار اساسى ثم يقوموا باضافة خصائص اللعبة التى يعملوا عليها حاليا و من بعدها الرسوميات و الموسيقى و بالتالى كان تطوير الالعاب فى الاساس عمل برمجى و ليس عمل فنى.
تغير كل هذا بحدوث طفرة هائلة حيث بدأت محركات الالعاب فى الظهور كمكتبات من الكود يدرجها المبرمج فى اللعبة خلال تطويرها و تقوم بتوفير الجهد عليه فى كتابة الاطارات المتكررة مثل التعامل مع كارت الشاشة و ضبط خصائصه كدقة الصورة و الالوان و ظلت المحركات عامل مساعد للمبرمج و ظلت ايضا الالعاب عمل برمجى اكثر منه عمل فنى و لكن هذا الوقت سمح لشركات انتاج الالعاب ان تبذل جهدا اكبر فى القصة و الرسوميات و بالتالى بدأت تظهر العاب اقرب لافلام السينما و بعيدة عن الالعاب التقليدية المعتمدة على تجميع النقاط.
تطورت المحركات فيما بعد فاصبحت بيئات متاكملة لانتاج الالعاب بما فى ذلك الرسوميات و تسجيل الحركة و الموسيقى و الصوت و معالجته و اصبحت المحركات اقرب الى برامج صناعة افلام الكارتون و من هنا اصبحت الالعاب عمل فنى اكثر منه عمل برمجى و اصبح المبرمج معظم عمله متركز على برمجة المحرك نفسه و تحسينه و جعله اكثر استقرارا و داعم لاكبر عدد ممكن من كروت الشاشة و المعالجات باستخدام اقل مساحة تخزينية فى الرام و بذلك تطورت صناعة الالعاب بشكل ملحوظ حيث اصبح الامر اقرب الى صناعة السينما منه الى البرمجة!
اشهر الامثلة على مكتبات الكود هى directX و OpenGL، الاول تطوره مايكروسوفت و استخدامه حصرى على منصاتها اما الثانى فهو مفتوح المصدر له نكهات عديدة و مستخدم على منصات linux و Apple Mac OSX و Andriod و .iOS
تعتبر هذه المكتبات medium level بمعنى انها تربط المبرمج بالhardware على مستوى متوسط بدلا من تركه يتعامل مباشرة مع الهاردوير و بالتالى توفر الكثير من الوقت و الجهد، و فى نفس الوقت تتيح له الكثر من الامكانيات لفعل ما يريد.
اما اشهر المحركات اللتى توفر بيئات متاكلمة للتطوير crytek engine و unreal engine و unity3D الاول يعتبر افضل محرك من الناحية الرسومية و اكثرهم احتياجا للمتطلبات و بالطبع اشهر انتاج منه crysis و اسطورتها الخاصة بانها تحرق كروت الشاشة و بالطبع هذا امر اسطورى فكروت الشاشة مزودة بحساسات حرارة تجعلها تخبر الmotherboard بوجوب عمل restart فى حالة ارتفاع الحرارة ربما تصاب هذه الحساسات بعطل بعد فترات عمل طويلة و لكن هذا امر ليس له دخل باللعبة، اما سبب المتطلبات الفائقة فهو اعتماد محرك crytek على حسابات معقدة للاضاءة تختلف كثيرا عن كل المحركات الاخرى وص اقرب الى حسابات الاضاءة الخاصة بافلام الكارتون و ايضا كثرة المؤثرات الجويه كالاتربة تجعله من اقسى المحركات على كروت الشاشة
اما الثانى فهو محرك unreal و اشهر العابه unreal torunment و bioshock infinite و infinity blade الخاصة بالiOS هو محرك قوى قادر على صنع الكثير باقل القدرات و اذكر اننى كنت استطيع تشغيل Bioshock infinite على المتوسط-العالى مع كارت intel hd 4000 على احد اجهزة ابل و بالطبع هناك اختلاف كبير لمتطلبات الdirectx عن الopenGL التى سمحت بذلك كمان ان لعبة infinity blade تتميز برسوميات تضاهى تلك التى تجدها على منصات الالعاب المتخصصة و مع ذلك تعمل على اجهزة الموبايل
اما الثالث فهو اسهل من حيث الاستخدام، محرك يمكن انجاز الكثير به و هو unity3D مشهور بين الهواة و المبرمجين الصغار لسهولة استخدامه كما ان له متجر الكترونى لشراء الassets او الرسوم او المؤثرات الصوتية التى يستخدمها المبرمج فى العابه و بهذا يمكنه انتاج لعبة كامله وحده من منزله، معظم انتاجته هى العاب موبايل و و اذكر هنا ان لعبة unearthed و التى اعتبرها اضخم انتاج عربى فى مجال اللعاب استخدمته.
و قبل ان تنتهى من قراءة هذا المقال لعلك تسأل نفسك لماذا الى الان هناك مكتبات كود تحتاج الى الكثير من الجهد و الوقت مع ان هناك بيئات متاكاملة للتطوير دون الحاجة لهذا الوقت و المجهود؟ لماذا لا نستخدم فقط البيئات المتاكملة و نستغنى تمام عن مكتبات الكود؟، و اجد ان هذا السؤال فى محله و ربما يثير تعجب اى شخص و لكن الاجابه عليه تطول و بها الكثير من الامور التقنية و لكن يمكن الاختصار بان المكتبات الكودية تتيح لمطور الالعاب الكثير من الامور التى لا تتيحها بيئات التطوير حيث انها تكون ابسط و لكن على حساب الامكانات المتاحة للمطور كما ان هذا البيئات تُبنى باستخدام هذه المكتبات الكودية فى الاساس؛ و يمكن تشبيه الامر بوجود السيارات الmanual الى الان و التى يفضلها محترفى القيادة مع ان السيارات الاوتوماتيكية موجودة و متاحة منذ عقود.
من هنا ينتهى هذا الجزء من سلسلة تقنية الالعاب، لمقتراحاتكم و اراءكم ارجو التعليق على المقال.
تقنية الالعاب : المحركات
Reviewed by Unknown
on
أغسطس 05, 2014
Rating:
هناك تعليق واحد:
متكاملة*
إرسال تعليق