المقالات العلمية

مقالات الشبكة العربية لمطوري الألعاب

تحليل لعبة: ديف الخطير

هذه المقالة محمية ضمن الحقوق الفكرية لشركة In|Framez Technology Corp.، ومرخصة للعرض فقط ضمن الشبكة العربية لمطوري الألعاب مع الموافقة الصريحة من المؤلف وشركة In|Framez Technology Corp.. لا يسمح بإعادة نشر هذه المقالة أو تعديلها دون الرجوع للمؤلف. يمنع النسخ والاقتباس دون ذكر المصدر والموافقة من المؤلف.

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

لمن لا يعرف جون روميرو (John Romero) نقول: هو مصمم لعبة دووم (الأجزاء الأولى فقط، وليس الجزء الأخير ذو الرسوميات المتقدمة). يشمل ذلك تصميم المراحل والأعداء والأسلحة وكافة المعايرات لتصبح اللعبة عادلة ومتوازنة مع إبقاء درجة صعوبة مناسبة لتشكل تحدياً مقدوراً للاعب.

طبعاً لا نخلط بين جون روميرو مصمم الألعاب وجون كارماك مبرمج لعبتـَي دووم وَ وولفنشتاين. ولا نخلط أيضاً بين هذا الأخير وآدريان كارماك مصمم رسوميات دووم، فالموضوع تشابه أسماء لا أكثر.

عمِل جون روميرو كمصمم ومبرمج مع جون كارماك منذ بداية التسعينات في السلسلة السداسية كوماندر كين (Commander Keen) وألعاب أخرى، إلا أن موضوعنا الآن هو لعبة دينجروس ديف (Dangerous Dave) أو ديف الخطير، وهي لعبة صغيرة قام جون بتطويرها بنفسه بشكل فردي، انتقيتها لتكون موضع التحليل اليوم رغم أنها قديمة نسبياً، علّ هذه الخبرة تكون ذات فائدة للمطورين الفرديين الذين تزداد أعدادهم باستمرار في موضة الألعاب المستقلة (indie games) التي نشهدها الآن.

dave_01

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

dave_03

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

dave_04

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

dave_05 dave_06

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

dave_07 dave_08 dave_09 dave_10

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

dave_11 dave_12

كشف التصادم يعمل بأسلوب المعاينة اللحظية ودون أخذ الزمن ضمن الاعتبار. لنوضح الفكرة أكثر نضرب المثال التالي: أطلق ديف رصاصة على أحد الأعداء. العدو يتحرك حركة عمودية جيبية سريعة نسبياً، أما الرصاصة فتسير بشكل أفقي وبسرعة ثابتة وكبيرة. في اللقطة الحالية الرصاصة في الموقع (20،100) وتسير بسرعة 10 بكسل في اللقطة، أما العدو فهو في الموقع (25،95) وسيصعد لأعلى في اللقطة القادمة بمقدار 10 بكسل هو الآخر. الآن عندما ننظر إلى هذا الوضع نجد أنه لا يوجد اصطدام بين الرصاصة والعدو. ولو انتقلنا للقطة التالية لحصلنا على الإحداثيات (30،100) للرصاصة و (25،105) للعدو. وهنا أيضاً لا يوجد تصادم. لكن لو مثلنا هذا الموقف على أرض الواقع بكرتين صغيرتين وقذفناهما بنفس المعطيات لاصطدمتا في (25،100) عند منتصف الفترة الزمنية بين اللقطتين.

dave_13 dave_14

الأسلوب الأمثل للتعامل مع هذه المسألة هو كشف التصادم المستمر (Continuous Collision Detection) أو CCD لمحبي التحذلق بالاختصارات. المشكلة هنا أن هذه النوعية من الحسابات قد تكون أعقد بكثير من كشف التصادم بالمعاينة اللحظية، وهو ترف غير متاح للعبة بسيطة في ذلك الوقت. الحل البديل هو إبطاء السرعة الكلية، أو تضخيم مساحة أشكال التصادم. للأسف كلاً من هذين الحلين غير متبع في ديف الخطير، وبالتالي يجد اللاعب نفسه في ورطة مع بعض الأعداء في المراحل المتقدمة (لا سيما تلك الأطباق الطائرة اللعينة).

dave_15 dave_16 dave_17 dave_18

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

dave_19 dave_20

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

dave_21 dave_22 dave_23 dave_24

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

dave_25 dave_26

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

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

dave_27 dave_28

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

dave_29 dave_30

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

dave_31 dave_32 dave_33

ننهي حديثنا ببعض التوجيهات على غرار "ما يستفاد من الحديث":

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

وإلى لقاء آخر إن شاء الله...

لمزيد من المعلومات

المصطلحات المستخدمة

المصطلح معناه
ألعاب مستقلة بالإنجليزية Indie Games، وهو اسم دلع للاسم الكامل Independent Games. ألعاب يقوم بتطويرها فرد وحيد أو بضعة أفراد يقومون بكافة المهام بدلاً من فريق متكامل يتألف من أخصائيين متعددين في شركة ما. نظراً لمحدودية إمكانيات التطوير في مثل هذه النوعية من الألعاب فإنها تفتقد غالباً للتنوع والكم الكبير في المحتوى والذي يتواجد في ألعاب الشركات. إلا أن الألعاب المستقلة تعوض هذا الضعف غالباً بأفكار لعب خلاقة وممتعة.
ألعاب المنصات بالإنجليزية Platform Games، أو أحياناً تدعى Platformer. ألعاب تتركز طريقة اللعب فيها على مهارة التحرك على سطوح أو منصات مختلفة. هذه المنصات قد تكون منحدرة أو متحركة أو دوارة أو لها خاصية ما تضطر اللاعب لاستخدام مهارته في السيطرة على توازن الشخصية لتجاوز المنصات وصولاً لهدف ما عن طريق الجري والقفز من منصة لأخرى. تعتبر لعبة سوبر ماريو أحد أشهر ألعاب المنصات في التاريخ.
كشف التصادم بالإنجليزية Collision Detection. في الألعاب، ينحصر تفاعل الكثير من الأغراض با��ترابها من بعضها أو ارتطامها أو تماسها. كشف التصادم هو مجمل الحسابات التي يقوم بها المبرمج لمعرفة إن كانت بعض الأغراض تتقاطع مع أغراض أخرى تمهيداً لاتخاذ رد فعل مناسب (كتجميع جواهر مثلاً). من الشائع تبسيط حسابات كشف التصادم إلى حساب تقاطع أشكال مبسطة (كالمستطيلات أو الدوائر) تمثل الأغراض في اللعبة بدلاً من اللجوء لكشف دقيق ذو كلفة حسابية عالية.
المعاينة اللحظية بالإنجليزية Instant Sampling. في كشف التصادم بين الأجسام المتحركة، يعتمد أسلوب المعاينة اللحظية على تحريك الأجسام بمقدار صغير كل لقطة، ثم الكشف عن التقاطعات بين الأغراض في مواقعها الجديدة فقط مع تجاهل المسارات التي تحركت عليها الأغراض خلال الفترة الزمنية بين اللقطتين. من أشهر نقاط ضعف هذا الأسلوب مشهد الرصاصة ولوح الفولاذ، حيث أن تجاهل مسار الرصاصة السريعة يؤدي غالباً لتجاوز الجدار دون أن يحدث أي تقاطع في أي من اللقطات، وبالتالي فإن الرصاصة تنفذ من الجدار دون أن ترتطم به.
كشف التصادم المستمر بالإنجليزية Continuous Collision Detection، أو CCD اختصاراً. البديل للمعاينة اللحظية، ويختلف عنها فقط في أنه يأخذ مسارات الحركة عبر الزمن ضمن الاعتبار أثناء الكشف عن تصادم الأغراض، إلا أن هذه الإضافة الصغيرة تزيد من تعقيد الحسابات بشكل كبير خاصة لو كانت الأغراض حرة الشكل وتتحرك بدرجات حرية عديدة. تعتبر رياضيات مينكوسكي Minkowski مفتاحاً هاماً في هذا المجال، وذلك لقدرتها على حساب تقاطعات الأشكال المعقدة في البعد الرابع.
أشكال التصادم في حسابات كشف التصادم يتم تمثيل الأغراض القابلة للتصادم بأشكال بسيطة كالمربعات والدوائر وإن كانت لا تحيط بالغرض بشكل دقيق وتام. يستطيع المبرمج أيضاً التلاعب بهذه الأشكال كتضييقها لزيادة التسامح أو تضخيمها أيضاً لزيادة التسامح!
لقطة بالإنجليزية Frame. كما أن فلم السينما يتكون من شريط طويل من اللقطات المتراصة التي تعرض بسرعة لتعطي إيحاءً بالحركة، فإن الألعاب تستخدم نفس المصطلح للدلالة على نفس الشيء. باعتبار أن النتيجة النهائية لحسابات الألعاب تظهر كصور على الشاشة، فإن عرض اللقطات يعتبر النبض الفعلي للعبة، حيث أن كافة الحسابات يجب أن تتم في الفترة الزمنية القصيرة بين لقطتين. تعمل الألعاب المعاصرة بسرعة عرض 30 لقطة في الثانية وأحياناً 60 لقطة في الثانية إن أمكن.
قابلة للإعادة بالإنجليزية Loopable. لفظة تطلق على حركات الشخصيات أو الأغراض في اللعبة، كالمشي أو الركض مثلاً. حيث يكفي أن يتم تصميم خطوة واحدة كاملة للشخصية ومن ثم يمكن إعادة لعبها باستمرار لتظهر الشخصية وكأنها تسير باستمرار. كي تكون الحركة قابلة للإعادة، يجب أن تكون اللقطة الأخيرة منها مستمرة مع اللقطة الأولى من ذات الحركة، وإلا فإن الانقطاع سيكون محسوساً.
الأشكال الشبحية بالإنجليزية Sprites. مصطلح شاع إطلاقه على كافة الأشكال المتنقلة في اللعبة، إلا أنه في الواقع يعني الصور التي يتم رسمها بتقنية اللون المفتاحي Color Key. باعتبار أن الصور دائماً تحفظ بشكل مربع، فإن الرسام يحتاج لتحديد البكسلات التي لا يجب أن تظهر عند وضع الشكل في اللعبة، وطريقته في تحديد ذلك هي باختيار لون معين واعتماده كلون شفاف يتم تجاهله عند إظهار الصورة في اللعبة.
ذاكرة الإظهار ذاكرة تتواجد على بطاقة الإظهار وترتبط مباشرة بمحول إشارة أو مخرج صورة حيث تقوم الشاشة "بمسحها" (أي المرور عليها بالتدريج) عند كل تحديث عامودي Vertical Refresh. أية تعديلات تطرأ على هذه الذاكرة تظهر فوراً على الشاشة في المسحة القادمة.
المناطق القذرة بالإنجليزية Dirty Regions. بعض الألعاب تتفادى إعادة رسم كامل الشاشة في كل لقطة، وإنما تحافظ على محتويات اللقطة السابقة، وتقوم فقط بتعديلها لتمثل اللقطة القادمة. لمعرفة الأجزاء التي تحتاج إلى تعديل، يتم إنشاء قائمة بالأشكال المتحركة وتعلّـم على أنها أجزاء قذرة من الشاشة تجب إعادة رسمها. هكذا ينحصر الرسم فقط في مجموعة محدودة من المربعات زيادة في سرعة الأداء.
المشاكل البرمجية بالإنجليزية Bugs. عموماً المشاكل البرمجية أو الأخطاء البرمجية هي أية تصرفات غير متوقعة يحدثها البرنامج، والتي تتنوع بين الانهيار الكامل Crash وأخطاء الحسابات أو تشوهات الرسوم أو حالات الجمود المفاجئة Freezing.
سجل العلامات بالإنجليزية High Scores. وهو سجل يظهر أسماء اللاعبين الذين حصلوا على أعلى العلامات في اللعبة. هذا الأسلوب شائع في ألعاب الملاهي Arcade Games، حيث أنها تعتبر دافعاً للمنافسة وبالتالي تحصيل المزيد من الأموال. أما في الألعاب المنزلية فإن أهميتها تقل خاصة على الأجهزة التي لا تحتفظ ذاكرتها بهذا السجل لأطول من فترة التشغيل.

أضف تعليقاً

Loading