المعاتيه يسيطرون على المصحة!
تسعى هذه المقالة لمناقشة الذكاء الصناعي خلف سلسلة ألعاب Batman:Arkham.
اللعبة
بتاريخ الكتابة تحتوي سلسلة ألعاب Batman على أربع ألعاب مختلفة:
- لعبة Arkham Asylum
- لعبة Arkham City
- لعبة Arkham Origins
- لعبة Arkham Knight (ستصدر عام 2015)
تتيح لك اللعبة خوض تجربة الرجل الوطواط من نواحي عدة كالتحقيق وحل القضايا. ونمط العب يركز على ناحيتين بشكل كبير: القتال و التسلل.
نمط القتال متتابع بطبيعته مما يسمح ببناء مجموعة أكبر من الضربات المتتالية، والذي بالتالي يؤدي إلى تحصيل نقاط أكبر كلما استمر سيل الضربات. ويتميز الأعداء في هذا النمط بحمل اسلحة بيضاء فقط (عصي، سكاكين، … إلخ). ومن هذا يتبين لنا أن الهدف من النمط القتالي هو القضاء على أكبر عدد من الأعداء في أسرع وقت ممكن مع الحرص على استمرار سيل الضربات. وهذا يتطلب من اللاعب عنصري المهارة والدقة.
بينما يتناول نمط التسلل مواجهة أعداد كبيرة من الأعداء المسلحين. ولأن الرجل الوطواط ليس مضادًا للرصاص فعليه أن يتصيد الأعداء واحدًا تلو الآخر. وهذا في العادة يتطلب استثمارللبيئة من حولك في اغتنام الأعداء الغافلين وزرع الأفخاخ للأعداء الذين تنبهوا لهزيمة رفقائهم.
وكان أكثر شيء استمتعت به كلاعب هو سلاسة وتناغم هذين النمطين ويتبين ذلك في أن المطورين تقريبًا لم يضيفوا شيئًا إلى الأجزاء اللاحقة في هذه السلسة. ومع أن اللعبة تشعرك بالإنغماس وحس السيطرة فهي تحافظ على إظهار الأعداء بمظهر ذكي، ففي نمط القتال يمكن للأعداء أن يقهروك إذا تزايدت أعدداهم وانخفضت قدرتك على الحفاظ على استمرارية سيل الضربات بينما في نمط التسلل تظهر أفضلية الأعداء عليك عندما يتم كشف مكانك مما يتيح لهم القضاء عليك ببضع طلقات سريعة.
ويبقى أحد العناصر المهمة التي لا يمكن إدراكها بسهولة هو ليس فقط صعوبة توقع الطرق التي سيتخذها الأعداء بل يضاف إلى ذلك التزامن بين مرسومياتهم. فلا يمكنك توقع تصرفهم التالي بمجرد ملاحظة مرسومياتهم.
إذا السؤال الذي تحاول إيجابته هذه المقالة هو "كيف قاموا بفعلها؟". بعد التمحيص وصلت مبكرًا إلى أن الذكاء المطبق هنا ليس ذكاء متقدم. وهذا ليس عيبًا في حق المطورين ولكنه إدراك لحقيقة كون اللعبة لا تحتاج لذكاء متقدم ليستوفي احتياجاتها. وكان محض اهتمامي هو ماذا يحدث خلف الستار وكيف تم تطبيقه. وكون معظم الذكاءات المطبقة في الألعاب تكون غير واضحة ويتلبسها الكثير من الغموض سيجعلني هذا بعيدًا من أن أتفاجأ من حقيقة أن الذكاء المطبق هنا يستفيد من مظهره أكثر من جوهره.
التطوير
أشار "تيم هاناجان" في مؤمتر ذكاء الألعاب الصناعي عام 2012 إلى أن اللعبة مبنية بطرق بسيطة نسبيًا. وبالنظر إلى منهج فريق تطوير الذكاء الصناعي في استوديو Rocksteady خصوصا في لعبتي : Arkham City و Arkham Asylum نلاحظ أن الفريق كان يعتمد وبشدة على النماذج الأولية السريعة والتطوير الحلقي. فيصمم الفريق أفكارًا ثم يقومون بالتخلي عن الأفكار التي لا تؤدي الوظيفة ويحسنون الأفكار الجيدة. ومما يلفت النظر ، أن الفريق المطور للذكاء الصناعي هو نفسه الفريق المصمم لميكانيكا القتال والتسلل وهذا التوجه مثير للاهتمام لأنه يسمح بتبسيط خط تطوير اللعبة من ناحية أن الأعداء يتم تطوير ذكائهم و طرق القضاء عليهم في نفس الوقت. ومن مميزات هذا التوجه أيضًا أنه يتوافق مع توجه الفريق نحو النماذج الأولية السريعة و التطوير الحلقي فيسمح لهم باختبار أفكارهم بسرعة دون الحاجة لانتظار موافقة فريق التصميم.
فريق الذكاء الصناعي (والذي بدأ بخمس أعضاء ثم ازداد إلى 16 عضوًا بين لعبتي Arkham Asylm و Arkham City ) كان مسؤولا وبشكل كبير عن "إيجاد المتعة" عن طريق التعامل مع الكثير من المتغيرات في سبيل تطوير تجربة جذابة. وحقق ذلك عن طريق التعامل مع متغيرات عدة كالتوقيت والقوة.
ولوجود الجانب الفني والاهتمام بالمظهر النهائي لا يمكن الإكتفاء بالمبرمجين فقط لتطوير ميكانيكا الألعاب. كما ذكرت مسبقًا لمرسوميات الألعاب دور كبير في إظهار التناغم بين تصرفات العدو مما يصعب توقع التصرف التالي للعدو، وهذا ليس نتيجة لكون مصممي المرسوميات يعملون بالقرب من المبرمجين إنما هو نتيجة لطبيعة العم�� على المشروع. فكلما قرر الفريق أن يضيف ميزة جديدة (عن طريق اتباع التطوير الحلقي، حسب ظني) يقوم مبرمجي الذكاء الصناعي ومصممي الرسوميات بقيادة عملية تطوير هذه الميزة ومراقبتها حتى تصل إلى نتيجتها النهائية.
وكما ذكر في مؤتمر الذكاء الصناعي المقام في عام 2012 في مدينة هينجستون فريق Rocksteday لم يقوموا باستعمال شجرة التصرفات (تقنية ذكاء صناعي متقدمة)والتي تم العمل بها سابقًا في لعبة Halo ولا غيرها من التقنيات المتقدمة الأخرى، إنما يعتمد الذكاء الصناعي هنا بالكلية على تقنية ذكاء صناعي تدعى "آلة الحالات المعدودة"
مقدمة في آلة الحالات المعدودة
آلة الحالات المعدودة من الطرق المتعارف عليها في بناء الذكاء الصناعي لـ NPCs(الشخصيات ذاتية التحكم) في مجال تطوير الألعاب. وهذه الآلة مبنية على مبدأ رياضي يتبع لنظرية الحوسبة، حيث يتم تطبيقها في مجال البرمجيات والعتاد.
تعتمد الآلة في تصميمها البسيط على عنصرين آساسيين:
- للآلة عدد محدد من الحالات.
- نظام للتنقل بين الحالات. والذي يدير عملية التنقل بين الحالات المحدودة للآلة.
ملاحظة
هذه المقدمة تعتبر تبسيط لمبدأ الحالات المعدودة ولاتعتبر مقدمة علمية شاملة فإذا أردت الإطلاع على مقدمة شاملة وبتفاصيل أكثر يمكن استشارة مصادر رياضية وعلمية أخرى.
قد يبدو هذا التمثيل بالحالات غير مجديًا ولكنه يعطي طريقة لتمثيل تصرفات نظام ما وفي حالتنا هنا النظام هو (اللاعب ذاتي التحكم)
في البداية نقوم بملاحظة الشخصية وكل الحالات التي يمكن أن تكون عليها ونقوم بملاحظة كيف يمكن للشخصية أن تنتقل من حالة إلى أخرى مع مرور الوقت. ومن ثم نقوم بتمثيلها رسوميًا باستخدام مثال مشابه لما في الصورة:
مخطط مبسط يظهر مثال لآلة تحتوي حالتين (حالة أ وحالة ب) وحدثين (حدث س وحدث ص) عند حدوث س تنتقل الآلة من حالة أ إلى حالة ب وعند حدوث حدث ص تنتقل الآلة من حالة ب إلى حالة أ
عند صنع آلة حالات للعبة ما ستحدد الحالة ماذا ستفعل الشخصيات في أي وقت كان. وبينما يظهر وضوح تطبيق ذاك على حالات مثل التحرك أو الهجوم يبقى الأمر مبهما لحالات مثل حالة الخمود "Idle" لأن الشخصية في حالة الخمود عليه أن يغير بين مرسومياته بسلاسة وهذا كي يظهر للاعب أن الشخصية لا تقوم بفعل شيء ذو أهمية في ذلك الوقت ولكن مع ذلك فهو مازال نشطًا يتحرك ويتفاعل مع العالم من حوله. حيث إن كان الشخصية في حالة الخمود بدون حراك سيبدو ذلك للاعب غير طبيعي وقد يؤدي إلى إضعاف انغماس اللاعب في عالم اللعبة من حوله. ولذا يجب على حالة الخمود أن تحدد تحركات ومرسوميات وتفاعلات مع العالم من حوله.
مثال على حالة خمود سلسة الصورة التي بالأعلى فنلاحظ أن ماريو لا يفعل شيء ذو أهمية ولكنه في حالة حراك مستمر ومازال العالم من حوله نابضًا!
أما بالنسبة للإنتقال بين الحالات فهذا قد يكون نتيجة لأي شيء يحدث في العالم وأبسط مثال على ذلك مرور عدد من الفريمات
(Frames) أو توليد رقم عشوائي يجعل اللاعب يتحرك في اتجاه ما وغيرها من الأمور البسيطة. وقد يكون الحدث معقدًا أيضًا، مثل مشاهدة الـ NPC لحدث يحد أمامه في العالم كرؤيته لشخصية أخرى مصابة أو حتى حدوث مجموعة من الأحداث في ترتيب معين! وغيرها من الأحداث المعقدة الأخرى. إذا الشيء المهم تذكره الآن هو أن التنقل من حالة إلى حالة أخرى يعتمد على الحدث الذي سيحدث حيث سنجد أن الشخصية تتفاعل مع بعض المؤثرات وتعرض عن أخرى.
مثال - الأشباح في لعبة باك مان Pac Man
لكي تتضح الصورة دعنا نأخذ نظرة على بطل من ألعاب طفولتنا ألا وهو السيد باك مان. سنجد أنه بإمكاننا نمذجة كل شبح من الأشباح الأربعة التي تلاحق السيد باك مان إلى آلة حالات محدودة كما يظهر في الصورة أسفل:
في هذا النموذج قمنا بتقسيم التصرفات إلى حالتين فريدتين ألا وهما:
- حالة الملاحقة: حيث تقوم الأشباح بملاحقة باك مان حتى تقضي عليه
- حالة الهرب: حيث تقوم الأشباح بالهرب من باك مان بعد حصوله على كبسولة طاقة! مما يجعل الأشباح عرضة للخطر من قبل السيد باك مان
كل الأشباح من لعبة باكمان يتبعون هذا النموذج حيث إنهم سيحاولون تقليل المسافة بينهم وبين باكمان بدائيًا حتى يقوم باكمان بالحصول على كبسولة طاقة حينها سيحرصوت على زيادة المسافة بينهم وبين باكمان. وكما تم ذكر ذلك في مقال آخر كل من هذه الأشباح يتصرف بطريقة مختلفة (أي يلاحق باك مان بطريقة فريدة) ولكن بنظرة تجريدية لهم يمكننا ملاحظة أن كل مايقومون به هو إما الهروب أو الملاحقة. كيف يتصرف كل شبح في حالة الملاحقة مثلًا هذه فيها اختلاف ولكنها في النهاية ملاحقة.
من المنظور التطبيقي هذا أمر في غاية الأهمية حيث بإمكاننا صنع شخصيات مختلفة التصرف (داخل الحالة الواحدة) ولكن ذات آلة حالات معدودة واحدة لذا من الحكيم جعل آلة الحالات المعدودة ذات مستوى عال (مجردة قدر الإمكان) كي لا تختلط ابالتفاصيل فتبعد عن غرضها.
ذكاء أركهام
كما ذكرنا سابقا معظم الذكاء الصناعي المطبق في سلسة ألعاب باتمان هو مبني على تقنية الحالات المحدودة. وهذا ليس مستغربًا كون تقنية الحالات المحدودة تم استخدامها على مدى سنوات عديدة في تطبيق الذكاء الصناعي للعديد من الألعاب. إذا السؤال هنا كيف تم تطبيق تقنية الحالات على سلسلة ألعاب باتمان. في الواقع عن طريق الملاحظة فقط لايمكن لي أن أعطيكم جوابًا محددا ولكن بإمكاني النظر إلى الحالات المتفرقة ومحاولة استنتاج التطبيق.
ذكاء التسلل
بالنظر إلى مراحل التسلل في اللعبة نجد أن باتمان يحاول أن يبقى بعيدًا عن نظر أعدائه الذين يتراوح أعدادهم مابين الأربعة إلى الثمانية. ويقوم أعداءه بالتجول في المنطقة لتشديد الحراسة. عن طريق ملاحظة تصرفات الأعداء نجدهم إما يجوبون المرحلة بحرية مرورًا بأماكن تسهل للرجل الوطواط الإنقضاض فيها عليهم دون أن يراه الباقون أو يبقون في مكان لا يتحركون وبقاء الأعداء في مكان واحد هو أمر نادر وعادة مايكون من أجل تعليم اللاعب تنفيذ حركة ما أو استخدام أداة معينة.
دعنا نحلل الحالة التالية، عادة بعد أن تقضي على أحدهم تحدث بعضًا من الضجيج فيقوم الأعداء بالبحث عن مصدره وبعد ذلك يتبعون نمطًا محددا من التصرفات كالتالي:
- يقوم العدو بالتجول في الخريطة.
- عندما يصبح جسد العدو المجهز عليه سابقًا في مجال نظر العدو المتجول يقوم العدو المتجول بإخبار باقي الأعداء بالأمر ومن ثم يقوم بالاتجاه نحو العدو الملقى على الأرض.
- بينما يتفحص العدو المتجول العدو الملقى على الأرض يقوم بإعطاء التعليمات للباقين بالإنتشار والبحث عن المعتدي ألا وهو اللاعب (باتمان).
- يقوم العدو المتجول بتفقد المنطقة حول العدو المجهز عليه.
الآن إذا أردنا تحويل تلك الملاحظات إلى آلة حالات معدوة سنحصل على النموذج التالي:
نموذج آلة حالات محدوة يبين رد فعل عدو عند رؤيته عدوًا آخر مجهز عليه
إذا نظرنا إلى نموذج آلة الحالات السابق سنجد بعضًا من الملاحظات التي يجب إعادة النظر فيها:
النموذج محدود جدًا ويتعرض فقط لحالة واحدة ألا وهي رد فعل عدو ما عندما يجد عدوًا آخر مجهز عليه كثير من الانتقالات تحدث عند انتهاء مرسومية محددة حيث تكون المرسومية ذات دور فعال في إبراز الحالة بينما تعتمد الكثير من الحالات على المرسوميات تعنمد الحالات الباقية على خوارزمية إيجاد الطريق حيث يقوم الشخصية باتباع خوارزمية محددة للتجول في البيئة من حوله.
ما أحاول الوصول إليه هو أننا يمكننا تقليص النموذج السابق والذي ليس كبيرًا إلى نموذج أصغر كما يظهر بالأسفل!
نموذج مصغر للنموذج السابق يظهر نتيجة كون جميع الحالات في النموذج السابق إما تعتمد على المرسوميات أو الحركة.
قد يبدو النموذج صغيرًا لدرجة السخف ولكننه منطقي وقابل للتطبيق فكل مانراه في نمط التسلل لا يكاد يكون سوى أمرين : مرسوميات و تحركات. حتى هجوم الأعداء عليك ماهو إلا مرسومية يتم تشغيلها بناء على نوح السلاح الذي يتم مهاجمتك به. حتى المرسوميات التي تعتمد على البيئة من حول الشخصية : كالقفز فوق حاجز أو صعود سلم يمكن تضمينها في هذا النموذج المصغر كونها تعتمد في الأساس على أن هذه المناطق هي مناطق ذات أهمية للعدو في تفحصها مما يجعلها تتميز بمرسومية خاصة.
هذه طريقة رائعة في صنع ألعاب ذات شخصيات تخدع اللاعب فتجعله يعتقد أنها أذكى مما هي في الواقع. ويتم إنجاز ذلك عن طريق المحادثات التي تحدث بين الأعداء والتي تعطي شعورًا للاعب بأن الأعداء يتآمرون عليه مما يجعله يعتقد بذكائهم وماهم في الواقع إلا متبعين لنموذج محدد من الحالات ويغيرون من مرسومياتهم بانسيابية. والتفوق في هذه الطريقة أيضًا أنها تسمح للاعب بفهم الأعداء دون الشعور بغباء تصرفاتهم!
ذكاء القتال
ننتقل الآن إلى الذكاء الصناعي وراء طور القتال في سلسلة باتمان والذي يبدو غير مثيرًا للاهتمام مقارنة بطور التسلل وذلك لأنه ليس نتيجة بحث أو تقنية ذكاء محددة. فالشخصيات هنا ليست ذكية ولكنها تتبع خليط من التصرفات تحت نظام يحكمها، فلا يتم مهاجمتك إلا من شخصية واحدة في نفس الوقت.
في اللعبة الأولى من سلسلة باتمان (Arkham Asylum) كانت صارمة أكثر في تطبيق ذلك النظام (فقط عدو واحد يمكنه مهاجمتك في نفس الوقت) فيتم مهاجمتك من عدو واحد فقط ولمدة محددة. أما في لعبة (Arkham City) نظرًا لقدرة باتمان على التصدي لثلاث أعداء في نفس الوقت فإن النظام لا يطبق دائمًا. المهم ملاحظته هنا أن نمط القتال صمم لكي يكون عادلًا فالتحدي ليس في العدد الذي تواجهه إنما في تحصيل أكبر عدد من النقاط حيث أنك تحصل على مزيد من النقاط إذا استطعت الاستمرار في سلسلة الضربات أو قمت بنفيذ ضربات قاضية وكلتا التصرفين يجعلاك معرضًا لهجوم أي من الأعداء. إذا الضرر الأكبر يأتي من الطمع في مزيد من النقاط وليس في ذكاء الأعداء نفسهم.
يمكن للأعداء أيضًا غير الهجوم والتحرك باتجاهك التقاط أسلحة الأعداء الذين سقطوا أرضًا نتيجة قضائك عليهم أو بإمكانهم التوجه إلى خزانات الأسلحة المنتشرة حولهم في المرحلة ولكن كل ذلك في النهاية يمكن النظر إليه كمرسوميات وتحركات كما ذكر سابقًا.
ليست مجرد آلة حالات معدودة
من المهم الإشارة إلى مهارة فريق (Rocksteady) في تطبيق نموذج آلة الحالات المعدودة على ذكاء اللاعبين ولكن لا يظن القراء أن هذه المقالة تسعى إلى إيصال فكرة "سلسلة ألعاب باتمان فقط مبنية باستخدام آلة الحالات المعدودة ..". ولكنها تسعى إلى إظهار قدرة الفريق على صنع نظام متناغم ذا تصميم ذكي. وكما ذكرت سابقًا فريق (Rocksteady) يأخذ طريقة التطوير الحلقي والنماذج السريعة على محمل الجد فيكثر من استخدامهم للتأكد من الوصول إلى تقديم تجر��ة رائعة للاعب. ومع أن ذلك يظهر بكثرة في نمط التسلل يبقى ذلك ليس نتيجة فقط لنظام آلة الحالات المعدودة إنما للطريقة والمنهج الذي اتبعه الاستوديو في التطوير حيث أكثروا من اختبارات الجودة ونتيجة لكل ذلك ظهرت العديد من القرارت الذكية والتي تم إعلانها في مؤتمر الذكاء الصناعي للألعاب عام 2012 وأهمها:
- خوارزمية إيجاد الطريق لا تسمح بالتتبع الرجعي : فالشخصيات نادرًا ماتقوم بالاتفاف لتعاود إيجاد الطريق من نقطة زارتها سابقًا، مما يسهل على اللاعب التسلل خلف الشخصيات دون أن تلتفت له وتقضي عليه.
- تقليص ميكانيكا طور التسلل : تقليل عدد المهارات التي يجب على اللاعب تعلمها يساهم في تحسين تجربة اللعبة.
- منظور المحقق مقتبس من طور اكتشاف الأخطاء البرمجية : عندما كان الفريق يقومون باختبار اللعبة كان يتم ذلك واللعبة في طور اكتشاف الأخطاء البرمجية وذلك لتسهيل عملية إصلاح الأخطاء البرمجية ولكن عندما قام الفريق بإطفاء اكتشاف الأخطاء لاحظوا أن اللعبة أصبحت أقل متعة، لذا قاموا بإضافة ميكانيكا جديدة ألا وهي طور التحقيق.
طور التحقيق تم استلهامه من طور اكتشاف الأخطاء البرمجية أثناء اختبار ذكاء طور التسلل ويتم في طور التحقيق إعطاء معلومات عن حالة الأعداء.
الخاتمة
سلسلة ألعاب باتمان وأعمال فريق Rocksteady لهي مثال قوي على كيفية تحقيق ذكاء اصطناعي باستخدام آلة الحالات المحدودة.
وتعد السلسلة مثالًا رائعًا على كيفية تحقيق ذكاء صناعي ذكي التصميم و يحمل المستوى المناسب من التحدي عن طريق التطوير الحلقي و التعديل المستمر على اللعبة مما ينتج عن منتج ممتع للاعب وقابل للتحقيق من المطور.
ترجم بتصرف في دار المأمون الافتراضية للترجمة
هذا والحمدلله رب العالمين ...
ملاحق
ملحق أ - تفاصيل المقال
- اسم المقال الأصلي: Arkham Intelligence
-
مصدر المقال الأصلي
- اسم كاتب المقال: تومي ثومسون
- اسم مترجم المقال: أسامة السلمان
ملحق ب - جدول اصطلاحات الترجمة في هذا المقال
الكلمة الإنجليزية |
الترجمة الاصطلاحية |
Animation |
مرسومية وتجمع على مرسوميات وتم استخدام مرسومية بدلا من رسومية لأن مرسومية أبلغ حيث أنها تدل على استمرار الرسم أما رسومية فتصلح لترجمة Graphic |
Iterative Development |
التطوير الحلقي |
Prototype |
نماذج التطوير السريعة/الأولية |
Mechanics (Game) |
ميكانيكا الألعاب |
Behaviours tree |
شجرة التصرفات |
Finite States Machine |
آلة الحالات المعدودة |
NPCs |
الشخصيات ذاتية التحكم |
Idle state |
حالة الخمود |
Frames |
الفريمات |