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

خبير مدير وسام البهنسي مشاركة 1

السلام عليكم ورحمة الله وبركاته،
 
سنشرح أكثر عن المطلوب في المسابقة في هذا الموضوع.
 
كما رأينا، المطلوب هو فهم كيفية تفكير المومياء في لعبة وادي الملوك، ومن ثم إنشاء مخطط يشرح كيفية التفكير هذه. هناك أساليب عدة لشرح منطق الذكاء الصناعي في الألعاب، وهذه المسابقة تطلب أحد نوعين:
 
* مخطط آلة حالة شجري (hierarchical state machine graph).
* مخطط تدفق (flowchart).
 
كما أنك تستطيع استخدام كلا الأسلوبين لشرح جوانب مختلفة من المنطق محل الدراسة. في مثل هذه المخططات لا يتم الدخول في التفاصيل الدقيقة كالمتغيرات وبنى البيانات، وإنما يـُـكتفى بالشروط (conditions) ونتائجها والحالة التي يتوقف بها منطق الشخصية (مثلاً، يركض، يبحث، يقفز، يسقط).
 
تستطيعون حل المسابقة بأي من الأسلوبين، كما ندعوكم لاستخدام الأسلوبين معاً إن احتجتم. فمخطط التدفق قادر على التعبير عن سلاسل اتخاذ القرار بسهولة أكثر من مخطط آلة الحالة. وفي المقابل، فإن مخطط آلة الحالة يستطيع التعبير عن مجمل الحالات التي قد تتخذها الشخصية بشكل أقل تعقيداً من مخطط التدفق.
 
الصورة الآتية هي مثال على ذكاء صناعي بسيط لوحش، معبّر عنه باستخدام مخطط آلة حالة شجري:
 




 أما الصورة أدناه فهي لذكاء صناعي لوحش آخر، معبر عنه باستخدام مخطط تدفق:
 





 
تعتبر آلات الحالة (state machines) من أكثر الأدوات شيوعاً في تصميم الذكاء الصناعي للألعاب، لذلك لا غرابة في كونها استخدمت لبناء شخصية الأعداء في لعبة وادي الملوك التي تم تطويرها في هذه الشبكة. ومن خلال هذه المسابقة نرجو أن يتعلم الجميع كيفية التفكير بهذه الطريقة واستخدامها في ألعابكم الخاصة...
 
 
حسناً، الآن نقترح عليكم الخطوات العملية التالية للبدء:
 
1. تحميل لعبة وادي الملوك، ولعبها ومراقبة حركة الأعداء ومحاولة فهمها وإيجاد نسق متبعة في حركتها. رابط التحميل المباشر:
http://www.agdn-online.com/games/kvalley_2.zip
 
2. تحميل كود اللعبة الكامل، وفتحه والاطلاع عليه ومحاولة التعرف على ملفات الكود المسؤولة عن الأعداء وحركتها. رابط التحميل المباشر:
http://www.agdn-online.com/source/kvalley2_src.zip
 
3. تحديد الأصناف المسؤولة عن منطق الأعداء، ودراستها وفهم كيفية عملها (مثلاً، متى يتم نداء كل من إجراءاتها؟)، وإسقاط ذلك على حركة الأعداء كما رأيتموها أثناء اللعب في الخطوة الأولى.
 
4. استخراج وتسجيل كل من الحالات التي يمكن أن يكون فيها العدو أثناء اللعبة.
 
5. استخراج وتسجيل القرارات المنطقية التي يتخذها العدو.
 
6. إنشاء المخطط وإدراج ما تم تسجيله من حالات وقرارات منطقية وربطها وترتيبها.
 
 
ملاحظات وتوجيهات:
* عند التحليل، لستَ بحاجة للدخول في التفاصيل على مستوى المتغيرات والحسابات منخفضة المستوى. عوضاً عن ذلك، عبّر عنها بعبارة صغيرة تظهر فحوى العملية أو الحسبة، مثل: (كشف التصادم مع اللاعب) وذلك بدلاً من شرح أن التصادم يتم عبر اختبار تقاطع مربعين مع بعضهما... الخ.
 
* الكود يحمل تعليقات تشرح بعض من أجزائه. لكن يرجى الانتباه، فالبعض القليل من التعليقات في الكود قد يكون غير دقيق. تحرى الكود واستوضح ما يفعله قبل الأخذ بما تقوله التعليقات الموجودة على الكود.
 
* كود تصرفات الأعداء يتركز في صنفين رئيسين لا غير.
 
* لا تهمنا العمليات المتعلقة بالرسم وتخريج الأصوات. تجاهل مثل هذه التفاصيل، وركز على جوانب الحركة والمطاردة والقفز وما إلى ذلك...
 
* تستطيع استخدام الألوان للتوضيح وتقسيم المخطط إلى أجزاء منطقية.
 
* لتعرف مدى وضوح مخططك، اعرض المخطط على أصدقائك المقربين (الغير مشاركين بالمسابقة طبعاً) وأنصت لما يقولون.
 
* تذكر: الكتابة بالعربية، وإن احتجت للترجمة فاطرح سؤالك في هذا الموضوع:
http://www.agdn-online.com/communities.aspx?view=posts&threadid=1089
 
 
إن كانت لديكم أية أسئلة عن المسابقة فيمكنكم طرحها هنا، وسنجيبكم بأسرع وقت ممكن إن شاء الله.
 
بالتوفيق...

وسام البهنسي
مبرمج في يونيتي وإنفريمز