الجمعة، 1 نوفمبر، 2013

تجربتي مع محرك Stencyl

تعريف
محرك Stencyl محرك ألعاب بواجهة مجهزة, مبني على محرك فلكسل سهل الاستخدام ولكنه أكثر تطوراً بنظري من معظم محركات ألعاب الـ2D الموجودة, فبناء نظام اللعبة فيه يعتمد على أساليب تشبه البرمجة إلى حد كبير, وبالتالي يعطي مرونة قريبة قليلاً من المرونة التي يتمتع بها المبرمج, ولكن في نفس الوقت تعطي صعوبة مشابهة لصعوبة كتابة الأكواد لمن لا يعرفها.
بداية تجربتي
بيئة البرنامج
عندما قمت بتحميل النسخة البيتا إلى جهازي قبل سنتين تقريباً كنت متحمساً جداً حول محرك يتمتع بمرونة كبيرة, ويستطيع من خلاله المبرمج أن يقوم بالتعديل على الأكواد إن أراد؛ وبالتالي أستطيع التمتع بسرعة استخدام الواجهات الجاهزة وبمرونة البرمجة معاً. تمكنت من تعلم المحرك كاملاً ومن الألف إلى الياء خلال أسبوع, الـHelp في البرنامج كانت مريحة وعملية وموجهة للمستخدم البسيط, وتغطي معظم خصائص البرنامج.. المنتديات الخاصة بالبرنامج جيدة وتجد فيها حلولاً جيدة لكثير من التساؤلات بسهولة(بالطبع ستحتاج لتكتب مشكلتك بالإنجليزي). في نفس الوقت شعرت أنني لو لم أكن أمتلك خلفية برمجية لكنت واجهت صعوبة في فهم المكتوب, لأن بناء الـBehaviors في Stencyl تشبه البرمجة لحد كبير, حتى وإن كانت تعتمد على "السحب والإفلات".
Stencyl Forge
يوفر Forge العديد من الحركات -الكنترولز -ذكاء اصتناعي الجاهزة للاستخدام
هذه الخاصية في البرنامج هي أكثر ما لفت انتباهي, وهي عبارة عن مجتمع خاص بـStencyl يقوم المطوّرين من خلاله برفع مصادرهم الخاصة, مثل الشخصيات والخلفيات والأصوات وما إلى ذلك, الذي كان جديداً بالنسبة لي هو إمكانية رفع الـBehaviors. فيمكنك أن تنزل مثلاً تحكم جاهز لشخصية, ثم تقوم بتحميل إضافة أخرى وهي _مثلاً_ إمكانية الإنزلاق والقفز من على الجدران, وبالتالي يمكنك جمع الكثير من أنواع التحكم من ألعاب أخرى ووضعها في شخصيتك, وستجد تشكيلة واسعة سواء كانت في التحكم أو بتصرفات الأعداء, أو مثلاً ببرنامج جاهز يقوم بإظهار حوارات كما في ألعاب الRPG الكلاسيكية, وتقوم بتخصيصه كما يحلو لك بدون أن تدخل إليه و"تفككه", فبعض هذه الـBehaviors معقدة وكما ذكرت فهي تحتاج خبرة برمجية, لكن هناك عادة أشياء يمكن تخصيصها بسهولة مثل : السرعة, الجاذبية, والكنترولز, بحيث يمكن تعديل هذه الـAttributes بحسب ما يناسب لعبتك...
سنتين
انتظرت فترة طويلة حتى أكتب هذا المقال كنت أنتظر أن يتطوّر البرنامج أكثر لأنه لايزال تحت التطوير... قاموا بتطويره بالفعل ولكن لم يعط حتى الآن ما كنت أنتظره, نعم قاموا بإضافة ميزات تصدير رائعة للأندرويد والـiOS والويندوز, (أسعارهم ليست باهظة ولكنها أيضاً ليست رخيصة) ... وأضافوا ميزة رائعة لم أتوقعها وهي إمكانية استخدام الـAPI الخاصة بأشهر مواقع ألعاب الفلاش (MochiMedia - Kongergate - newGrounds) ولكن حتى هذه الخاصية ليست مجانية وتحتاج لأن تشتري نسخة لكي تستفيد من الربح في ألعاب الفلاش ...
لكن ما كنت أنتظره هو تطوير Stencyl Forge, فللأسف مستواه سيء للغاية لأكثر من ناحية, فأولاً لا يمكن أن تمتلك مكتبة Local من الـBehaviours التي أنشأتها وستضطر أن ترفعها على Forge, مما يسبب إزعاج عند العمل بدون اتصال نت. ثانياً الـForge تصفحه سيء للغاية وتقديم الأشياء فيه ضعيف جداً... والأسوأ من ذلك كله أن المجتمع لايزال ضعيفاً جداً ولا يوجد أدوات كافية عليه... حتى أنه كان يفترض بالشركة أن تقدم أدوات أكثر من ذلك بكثير...
باختصار...
أحد تجاربي مع البرنامج

Stencyl محرك ممتاز لغير المبرمجين لأنه يعطي أفكار برمجية جيدة, وفي نفس الوقت فهو يقدم الكثير من الأدوات السهلة الاستخدام, كما أنه ساعدني على فهم محرك فلكسل بشكل أفضل, لكن لا أنصح به المبرمجين, أظن أن بناء الكلاسات يعطيك راحة وحرية أكثر من Stencyl وهناك مكتبات ومحركات جاهزة للمبرمجين الذين لا يريدون أو لا يستطيعون بناء محركات كاملة, الذي وجدته هو أن الوقت الذي يختصره Stencyl يضيع في أمور أخرى عندما تحاول أن تتجاوز محدودية البرنامج
لكن أنصح بالبرنامج لاستخدامين :
1- البرنامج جيد جداً في بعض أنواع الألعاب البسيطة والتي لا تحتاج لتنوع كثير, شخصياً أبسط ألعابي تحتوي على نوع من التنوع في الشخصيات وأسلوب اللعب... وأعمل على لعبة حالياً كذلك فيها كثير من الشخصيات لكل شخصية تحكم مختلف,في هذا النوع من الألعاب سيضايقك Stencyl كثيراً. لكنه ممتاز لألعاب البلاتفورم _مثلاً_ والـLevel Design فيه جداً جيد.
2- لمجرد الاكتشاف فأنا أضمن لك أن تعلم محرك كهذا سيكون تجربة مفيدة في أكثر من جانب, ومن يدري قد يأتي يوم وأستخدمه لصناعة لعبة ما... أو قد يتطوّر ويصبح بالمرونة التي أريدها... يوماً ما...