Advertisement
  1. Game Development
  2. Artificial Intelligence
Gamedevelopment

إنشاء لعبة هوكي منظمة العفو الدولية باستخدام توجيه السلوكيات: هجوم

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Create AI for a Hockey Game Using Steering Behaviors.
Create a Hockey Game AI Using Steering Behaviors: Foundation
Create a Hockey Game AI Using Steering Behaviors: Defense

Arabic (العربية/عربي) translation by Luthfiyyah (you can also view the original English article)

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

بضع كلمات عن مهاجمة

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

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

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

هذا هو السبب في أن هجومنا سوف يحاول تقليد نتيجة لعب مجموعة من البشر ، وليس الإدراك البشري نفسه. أن هذا النهج سيؤدي إلى تقديرات تقريبية، ولكن سوف تكون التعليمات البرمجية أسهل للفهم وقرص. والنتيجة جيدة ما يكفي لعدة حالات الاستخدام.

تنظيم الهجوم مع الدول

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

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

جهاز دولة محدودة المستندة إلى المكدس الذي يمثل عملية الهجوم.

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

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

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

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

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

تحديث حالة الخمول

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

وقد حالة الخمول التحولات الثلاثة:

حالة الخمول وعن التحولات في ولايات ميكرونيزيا الموحدة ووصف عملية الهجوم.

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

الإصدار المحدث من الخمول كما يلي (جميع الدول الأخرى ستنفذ في وقت لاحق):

دعونا المضي قدما في تنفيذ الدول الأخرى.

متابعة عفريت

والآن بعد أن اكتسبت بعض التصور حول البيئة الرياضي وهي قادرة على التحول من الخمول إلى أي دولة، دعونا نركز على متابعة عفريت عندما يحتوي على لا مالك.

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

بورسويبوك على الدولة وعلى التحولات في ولايات ميكرونيزيا الموحدة ووصف عملية الهجوم.

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

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

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

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

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

كتعزيز صغير ، يجب أن لا يبقى الرياضيون قريبين من بعضهم البعض خلال فترة المتابعة ، لأن حركة المتابعة "المزدحمة" غير طبيعية. إن إضافة الفصل إلى قوة توجيه الدولة (الخط 6 في الكود أعلاه) يضمن للرياضيين الحفاظ على الحد الأدنى من المسافة فيما بينهم.

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

مهاجمة مع عفريت

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

حالة الهجوم وانتقالاتها في FSM تصف عملية الهجوم.

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

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

يمكن تنفيذ ذلك من خلال التحقق مما إذا كان اللاعب الذي يدير الكود يحتوي على:

إذا قام amIThePuckOwner () بإرجاع true (السطر 10) ، فإن اللاعب الذي يقوم بتشغيل الكود يكون ذا puck. في هذه الحالة ، سوف يبحث فقط عن موقف هدف الخصم. هذا إلى حد كبير نفس المنطق المستخدم في متابعة عفريت في حالة pursPuck.

إذا ظهر amIThePuckOwner () خطأ ، فإن اللاعب لا يمتلك القطة ، لذا يجب عليه مساعدة القائد. مساعدة القائد مهمة معقدة ، لذلك سنقوم بتبسيطها. سوف يساعد الرياضي القائد فقط من خلال السعي للحصول على منصب متقدم أمامه:

زملائه مساعدة القائد.

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

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

يجب أيضًا على الرياضيين الذين يساعدون القائد أن يبقوا مسافة بين بعضهم البعض. يتم تنفيذ ذلك عن طريق إضافة قوة فصل (السطر 19).

والنتيجة هي أن الفريق قادر على التحرك نحو هدف المنافس ، من دون التزاحم أو أثناء محاكاة حركة الهجوم المدعومة:

تحسين دعم الهجوم

إن التنفيذ الحالي لدولة الهجوم جيد بما فيه الكفاية لبعض المواقف ، لكنه يعاني من خلل. عندما يمسك شخص بعصا ، يصبح القائد ويتبعه فورا زملاؤه.

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

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

عندما يكون القائد أخيرا في موقعه ومستعد للتحرك نحو هدف الخصم ، فإن أعضاء الفريق سوف "يناورون" لمتابعة القائد. ثم ينتقل القائد دون دعم زميل طالما أن الآخرين يقومون بتعديل مساراتهم.

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

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

والنتيجة هي أكثر إقناعا من تنفيذ الهجوم الأولي:

تلميح: من التغيير والتبديل بعد العمليات الحسابية والمقارنات في الأسلوب isAheadOfMe()، فمن الممكن تعديل طريقة الرياضيين عقد مواقفها الحالية.

سرقة عفريت

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

حالة stealPuck وتحولاتها في FSM تصف عملية الهجوم.

نظراً لأن الفكرة من وراء هذه الدولة لسرقة عفريت من الخصم، إذا كان يتم استرداد عفريت فريق أو أن يصبح حراً (أي له لا المالك)، ستيلبوك سوف البوب نفسها من الدماغ ودفع الدولة الصحيح للتعامل مع الوضع الجديد :

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

لحسن الحظ ، يمكن تحقيق ذلك بسهولة مع سلوك المتابعة (السطر 19). باستخدام قوة السعي في حالة stealPuck ، سيحاول الرياضيون اعتراض قائد الخصم ، بدلاً من مجرد متابعته:

منع حركة سرقة مزدحمة

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

أنها يمكن أن تكون ثابتة عن طريق إضافة تدقيق مسافة (البند 17) قبل اتباع الزعيم المنافس:

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

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

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

تجنب المعارضين في حين مهاجمة

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

باستخدام سلوك تجنب الاصطدام ، يمكن للرياضيين تفادي المعارضين أثناء حركتهم:

سلوك تجنب الاصطدام يستخدم لتجنب الخصوم.

سوف ينظر إلى المعارضين على أنها عقبات دائرية. نتيجة للطبيعة الديناميكية لسلوكيات القيادة ، والتي يتم تحديثها في كل حلقة لعبة ، فإن نمط التجنب سوف يعمل بأمان وسلاسة لتحريك العوائق (وهو ما يحدث هنا).

من أجل جعل الرياضيين يتجنبون المعارضين (العوائق) ، يجب إضافة سطر واحد إلى حالة الهجوم (السطر 14):

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

أدناه هو مظاهرة للرياضي يدير حالة الهجوم. المعارضين غير قادرين على تسليط الضوء على سلوك تجنب الاصطدام:

استنتاج

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

كما نوقش سابقا، أهداف تنفيذ الهجوم على محاكاة ما تفعله البشر، حيث تكون النتيجة تقريبي للعبة حقيقية. باللف فرادى الدول التي يؤلف الهجوم، يمكنك إنتاج محاكاة أفضل، أو واحد يلائم احتياجاتك.

في البرنامج التعليمي التالي، وسوف تتعلم كيفية جعل الدفاع عن الرياضيين. منظمة العفو الدولية سوف تصبح ميزة كاملة، وقادرة على الهجوم والدفاع، أدى مباراة مع 100 ٪ تسيطر عليها منظمة العفو الدولية فرق اللعب ضد بعضها البعض.

المراجع

  • Sprite: إستاد الهوكي على GraphicRiver
  • Sprites: لاعبو الهوكي التي كتبها تايلور J Glidden
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.