الخميس، 9 أغسطس، 2012

إنطلق في صناعة الألعاب -2- : المحرك المثالي

 ملاحظة :أعتذر على طول الموضوع إلا أنني اضطررت للإطالة لأهمية الموضوع, أحضر كوب من القهوة وبعض الدونات لأن الكمية قد تكون كثيرة للبعض

  المحرك المثالي - يوتوبيا تصميم الألعاب
الطريقة المثالية لبناء لعبة ممتازة, هي عبر محرك الألعاب المثالي, هذا المحرك الرائع متعدد القدرات, يمكنه تنفيذ ما تريده منه وكأنه خادمك المطيع؛ تعطيه أفكار اللعبة والمراحل ويقوم بجمعها في لعبة واحدة مميزة, المحرك المثالي هو محرك يأخذك إلى عالم الإبداع والفن, ويبعدك عن عالم التقنية والأكواد والفيزياء والمضلعات والإكساء. كل شيء جاهز هنا, وبالطبع يبقى عليك الكثير لتعمل؛ القصة والموسيقى والمراحل وكل ما يصنف تحت الفن. بالطبع فإن لا أحد يستخدم هذا المحرك, لا الشركات ولا حتى المستقلين؛ ببساطة لأن هذا المحرك ليس موجوداً
لننظر عن كثب وبشكل سريع عن كيفية  نشوء ما يعرف بـ"محركات الألعاب". قبل توفر المحركات بيد الإنديز, كانت الشركات تستخدم محركات خاصة بها وبقيت هذه المحركات بحوزة كل شركة لوقت طويل. بعد مدة, قرر بعض هذه الشركات بيع  المحرك الخاص بها لشركات أخرى بمقابل مادي, فأصبحات الشركات الأخرى تفكر بشكل جدي بالشراء (لماذا أدفع الكثير من المال لعشرة مبرمجين لبناء محرك لعبة, بينما يمكنني شراء محرك حالاً يغطي معظم الخصائص التي نحتاجها؟) وهكذا نشأت فكرة المحركات, وأصبح استخدام المحرك هو مسألة اقتصادية بحتة : هل خصائص المحرك كافية أم أنه يحتاج لكثير من التعديل ؟ هل تكلفة المحرك أكبر أم بناء محرك جديد أكثر كلفة ؟ هل يمكن إنفاق الوقت في بناء محرك أم أنني أحتاج لهذا الوقت؟.. إلخ
ففكرة محرك الألعاب هي توفير الخصائص التي يحتاجها المصمم في برنامج يشمل أمور عديدة(الفيزياء, اختبارات التصادم, اللودينج, الواجهات الرسومية) , بحيث يتمكن المصمم من التركيز على الممتع والمبدع في اللعبة. ونتيجة لأن المحرك مبني بخواص معينة أو موجه لمنصات خاصة, تكمن هنا أهمية اختيار المحرك؛ فعندما تقوم باختيار المحرك أهم ما يجب أن تراعيه هو : (1) أن لا يحد المحرك من إمكانيات لعبتك, أو أن يكون قابلاً للتعديل, (2) وأن يكون المحرك يدعم المنصة التي تريدها
  ماهو المحرك الأفضل إذاً؟
كما ذكرت؛ كلما استطاع المحرك أن يوفر عليك وقتاً أكثر, وجهداً أكثر من الناحية التقنية كلما كان هذا المحرك أفضل, ولكن  لا يمكن تحديد ماهو المحرك الذي يتناسب معك أنت, ومع طريقة عملك, فبعض المحركات تسهل الجرافيكس, بعضها تسهل البرمجة... ولهذا ينصح دائماً أن يكون مصمم الألعاب مطلع على أكبر عدد ممكن من المحركات, فلكل مصمم احتيجاته وقبل أن نتعرف على كيفية اختيار المحرك يجب أن يكون لدينا خلفية عن أنواع المحركات

أنواع محركات الألعاب

هناك ثلاثة أنواع رئيسية لمحركات الألعاب : محركك الخاص, محركات شبه جاهزة, محركات سحب وإفلات

محركك الخاص

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

محركات شبه جاهزة

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

محركات سحب وإفلات

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

اختيار محرك الألعاب
ماذا أراعي عندما أختار محرك الألعاب الخاص بي ؟ هذا هو السؤال المهم, وتختلف الإجابة من مصمم إلى آخر, وكن على ثقة أنه لا يوجد محرك أفضل من محرك. فالأدوات وسيلة, المهم هو أن تختار _أنت_ ما يناسبك من الأدوات

التقنية 

التقنية المستخدمة مهمة جداً, وأظن أنها أهم العوامل في اختيار محرك الألعاب الذي يناسبك. ما يجب أن تقوم به عند اختيار التقنية المناسبة هو أن تفتح عينيك جيداً, وتعرف تماماً مالذي تريد أن تفعله, فالتقنية تعني وسيلة التسويق في عالم الألعاب, فمثلاً؛ لن تتمكن من تسويق ألعاب صغير مثل "قرقيعان" على ويندوز (إي إكس إي) والأفضل لتسويق هذه الألعاب البسيطة هو المتصفح[بعض المهارات التسويقية ستناقش في حلقات قادمة], وأشهر 3 وسائل لتشغيل ألعاب على المتصفح هي : فلاش, إتشتي إم إل 5, يونيتي... الأقوى والأثبت حالياً هو الفلاش, لكن اليونيتي أفضل بكثير من ناحية الثريدي (لهذا أقول أنه يجب أن تعرف تماماً ماذا تريد) , هناك منصات أخرى مثل إمكانية التصدير لآندرويد أو آيفون أو ربما التصدير للإكسبوكس لايف؛ إذاً يجب أن تتعرف تماماً على إمكانيات المحرك وماهي المنصات التي يمكن أن يصدر اللعبة إليها

 البرمجة 

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

التعليم

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

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

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

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

روابط
قائمة بمحركات الألعاب
http://en.wikipedia.org/wiki/List_of_game_engines 

مقال - لماذا يقوم أي شخص ببناء محرك ألعاب ؟
why on earth would we write our own game engine?

السبت، 4 أغسطس، 2012

إنطلق في صناعة الألعاب -1- : إنس الموضوع برمته

ملاحظة  : هذه السلسلة موجهة للإنديز (مصممي الألعاب المستقلين) بشكل خاص, يمكن أن يستفيد منها غيرهم, ولكن صحة المعلومات هنا والمقالات مرتبطة بعالم الإنديز فقط

إنس موضوع صناعة الألعاب, صناعة الألعاب متعبة ومكلفة ,بل مملة في كثير من مراحلها, وقد سلكه الكثير(أكثر مما قد تتصور) من الناس وتراجع, لا يوجد طريق واضح للنجاح, ولا يوجد ما يضمن لك الأرباح, والناس ستهاجمك قبل أن تستحسن لعبتك

حلم كل مصمم ألعاب

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

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

صعوبات صناعة الألعاب
 الصعوبات التقنية

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

فحبك للبرمجة أو للرسم لا يؤهلك _وحده_ للنجاح في هذا العالم المعقد, وتكوين فريق يتمكن بالقيام بكل هذه المهام, قد يكون أصعب من تعلمك لها, والأسوأ من ذلك كله, هو أن الفكرة, وتصميم اللعبة (وهو الممتع بالنسبة لمصمم الألعاب) قد لا يشكل 5% من الوقت اللازم لتطبيق هذه الفكرة, وهناك قاعدة تقول : دائماً, إنتاج لعبة يتطلب من الوقت أضعاف الذي كنت تتوقعه, حتى لو أخذت هذه القاعدة بعين الاعتبار

 الصعوبات المعنوية

 كل مصمم ألعاب مستقل مر أو سيمر بحالات متعبة جداً, فعلى سبيل المثال _لا الحصر_ المتابعون سيهاجمونك على كل صغيرة وكبيرة, سيسخرون من لعبتك, بل حتى الذين أعجبوا بلعبتك, قد لا يفهموا ما أردتهم أن يفهموه من لعبتك. كذلك فلن يفهم أحد طبيعة عملك, وسيقول لك القاصي والداني : "مصمم ألعاب؟, لابد أنك تقضي وقتاً ممتعاً, وتلعب الساعات, كم أنت محظوظ !" ولن يفهموا الضغوطات وساعات العمل والمشاكل التي تواجهها مع الفريق . كما أنك ستعمل لساعات وساعات وساعات وساعات وساعات وساعات وساعات ... ثم لا تلبث إلا أن تلاحظ أن هناك خلل كبير في سير العمل, لا يمكن تصحيحه إلا بإعادة بناء المشروع؛ فتكره المشروع وتفقد الرغبة بالتفكير في مشروع آخر, وينتهي بك الأمر إلى شرب 5 ألتار من "الكولا" يومياً, فالإحباط يعني الرغبة بشرب شيء بارد !. وقد تنتهي من اللعبة, ولكنها لا تربح وتحصل على تقييمات ضعيفة وتخيب أملك بعد فترة طويلة من العمل عليها. وقد يترك أحد أعضاء الفريق اللعبة (نتيجة لمثل هذه الضغوط) وعندما تأتي بعضو بديل, فلا يفهم عمل العضو السابق , وتقل جودة اللعبة بسبب ذلك ... إلخ

لا يوجد طريق واضح للنجاح

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

 هل مازلت هنا ؟

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

مقالات قد تهمك
7 reasons you don't won't to work in the video games industry