آژانس هواپیماییexchanging

هوش مصنوعي در بازيهاي كامپيوتري

شروع موضوع توسط Ostadb ‏6 جولای 2007 در انجمن بازیهای کامپیوتری

  1. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    يه سري مقاله در مورد هوش مصنوعي در بازيهاي كامپيوتري پيدا كردم كه تو اين تاپيك ميزارم تا بقيه دوستان هم بخونن.واسه من كه خيلي جالب بود.
    *************************************************************************************
    قسمت اول:
    در دنياي امروز يكي از مهم‌ترين قسمت‌هاي علم پزشكي، طراحي و بازسازي اجزاي مختلف بدن است. حال اين سؤال مطرح است كه در دنيايي كه ديگر، مواردي مانند نقص عضو و از بين رفتن حالت هدايتي- الكتريكي قلب، فشار بالاي جمجمه و حتي انواع مختلف فلج‌هاي دست و پا، براي بيمار، كمتر محدودكننده است و تا حدودي ديگر يك نقيصه محسوب نمي‌شود، بازسازيِ احساسات، عواطف و تفكرات چه جايي دارد؟ بشر تا چه ميزان توانسته است مسائل روحي خود را در نمونه‌اي آزمايشگاهي توليدكند؟ آيا مي‌توان اميدوار بود كه در آينده گوشه‌اي از عواطف آدمي در يك ماشين، جمع‌آوري شود؟

    شايد جواب اين سؤالات با پيشرفت‌هايي كه در بازسازيِ هوش در كامپيوتر شده‌است، در آينده تا حدودي دور از دسترس نباشد. هوش‌مصنوعي، به‌ويژه آن‌چه كه در بازي‌هاي كامپيوتري شاهد آن هستيم، روز به روز در حال نزديك شدن به مدل واقعي خود است. يك بازي‌ كامپيوتري خوب، بازي‌اي ‌است كه هر نكته‌اي را در اين دنياي مجازي بهتر و واقعي‌تر به دنياي حقيقي ربط دهد. به همين منظور داشتن حريفي قدرتمند و انسان‌نما لازمه بازسازي هوش و تفكرات انساني است.

    اين سؤال كه <حريف كامپيوتري شما چه قدر مي‌فهمد؟> امروزه قبل از انجام هر بازي به فكر بازي‌كننده‌ها ميآيد؛ زيرا قرار است قسمتي از وقت و زندگي او معطوف اين بازي شود و اگر حريفش قدرتمند نباشد، عملاً اين وقت هدر رفته ‌است. درست ‌مانند اين است كه يك قهرمان شطرنج با كسي كه اولين بار است اين بازي را انجام مي‌دهد روبه‌رو شود. پس در كنار داشتن گرافيك، صدا و محيط بازي خوب، داشتن هوش‌مصنوعي مناسب نيز براي يك بازي كامپيوتري از محاسن آن بازي به‌حساب مي‌آيد.

    عناصر هوش‌مصنوعي به كاررفته در بازي‌هاي كامپيوتري براي رسيدن به جايگاهي كه در حال حاضر در آن قرار دارند، راه زيادي را طي كرده‌اند. در ابتدا، سيستم‌هاي پيشرفته برپايه مجموعه‌اي از قوانين عمل مي‌كردند كه مستقيماً در كدهاي بازي نوشته‌شده بودند يا به‌ صورت متن‌هايي رفتاري كه توسط كدهايي خاص ترجمه مي‌شدند. تمام اين اعمال به‌صورت مشترك برمبناي انتخاب متناسبي از فاكتور‌هاي تصادفي، صورت مي‌گرفت. اين زمان درست همزمان با تولد بازي‌هايي به‌يادماندني و بي‌نظير مانند River Raid ،Donkey Kong ،Boulder-Dash و بسياري از بازي‌هاي جذاب براي كاربران ماشين‌هاي هشت‌بيتي در دهه 1970 بود.


    قدم ديگر در پروسه توسعه هوش‌مصنوعي، معرفي روش‌هاي ساده علوم كامپيوتري بود كه از ميان اين روش‌ها مي‌توان به روش Finite State Machine اشاره كرد كه هنوز محبوب است و به ‌صورت محدود كماكان مورد استفاده قرار مي‌گيرد. اساس اين روش، برپايه توصيفِ رفتاريِ دشمناني بود كه در بازي‌ها توسط كامپيوتر و عليه بازي‌كننده كنترل مي‌شدند. با توجه به نياز روزافزون بازي‌كننده‌ها، روند رشد بازي‌ها نيز پيچيده‌تر مي‌شد، و اين به لطف استفاده بيشتر از الگوريتم‌هاي پيشرفته كامپيوتري است. ظهور قلمرو بازي‌هاي ‌RTS (استراتژي‌هاي بي‌درنگ) موجب استفاده گسترده از الگوريتم‌هايي شد كه بهترين مسير را بين دو نقطه از نقشه اين نوع بازي‌ها تعيين مي‌كردند.

    از سوي ديگر، پيشرفت‌هاي فني سريع و افزايش استفاده از پردازشگر‌هاي قوي‌تر در كامپيوتر‌هاي خانگي نيز امكان استفاده گسترده‌تر از نرم‌افزارها براي استفاده از هوش‌مصنوعي در بازي‌ها را فراهم مي‌كرد.

    اولين مجموعه بازي‌هاي كامپيوتري و هوش‌مصنوعي به كاررفته در آن‌ها بايد طوري طراحي مي‌شدند كه روي ماشين‌هاي ساده آن زمان قابل اجرا باشند: ماشين‌هايي كه اكثراً فركانسِ پردازشگرهايشان بيشتر از دومگاهرتز نبود. با آمدن كامپيوتر‌هاي شخصي اوليه امكان استفاده از برنامه‌ها و امكانات بهتر، ميسر شد.

    بعد از اين‌كه پي‌سي‌هاي مجهز به پردازشگر‌هاي 386 و 486 به عنوان كامپيوتر‌هاي استاندارد خانگي مورد استفاده قرار گرفتند، براي نويسندگان برنامه‌ها هم امكانات گسترده‌تري فراهم شد و اين آغاز مسابقه‌اي بود براي سازندگان بازي‌هاي كامپيوتري. براي مدتي طولاني بهترين مقياس براي خوب بودن كيفيت يك بازيِ كامپيوتري، خوب بودن كيفيت گرافيكيِ‌ آن بازي محسوب مي‌شد؛ گرچه بعد‌ها اين مقياس تغيير كرد و تنها خوب بودن گرافيك، طراحي انيميشني كاراكتر‌ها و صداي بازي، نمايانگر بالابودن‌ كيفيت بازي نبود. امروزه يكي از مهم‌ترين عناصر بازي‌هاي كامپيوتري، بدون ترديد، <هوش‌مصنوعي> آن بازي شناخته مي‌ شود.
    **************
    پايان قسمت اول.

    دوستان نظر بدين.:)
     
  2. ppn

    ppn کاربر فعال بازیهای کامپیوتری کاربر فعال

    تاریخ عضویت:
    ‏8 دسامبر 2006
    نوشته ها:
    1,273
    تشکر شده:
    5
    محل سکونت:
    Hell
    با هوش ترین بازی ها :
    FEAR
    و S.C double agent
    اینا به نظر من هوش مصنوعی بالایی داشتند
    Harvestmoon هم هوش مصنوعی وسیعی داره توی تمام ورژن هاش .
     
  3. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    قسمت دوم:

    جريان و پروسه ساخت يك بازي‌ كامپيوتري نيز در طول اين سال‌ها دستخوش تغييرات فراواني شده ‌است. به‌طور مثال، در گذشته طراحي هوش‌مصنوعي يك بازي تقريباً يك امر بي‌اهميت انگاشته مي‌شد و طراحان بازي‌ها ترجيح مي‌دادند مرحله وارد كردن هوش‌مصنوعيِ ناقص بازي را در مراحل پاياني تهيه بازي انجام دهند، ولي امروزه طراحي مدل‌هاي هوش‌مصنوعي و ارتباطي كه اين قسمت با ديگر اجزاي بازي خواهد داشت، يكي از مهم‌ترين مراحل طراحي بازي به شمار مي‌رود. به طوري كه از ابتداي توليد بازي به آن فكر مي‌شود.

    در واقع اهميت اين قسمت به قدري زياد است كه حداقل يكي از اعضاي برنامه‌نويسي از ابتداي توليد يك بازي به صورت تمام وقت استخدام مي‌شود تا بر مراحل توسعه و ساخت هوش‌مصنوعي بازي و ارتباط آن با ديگر قسمت‌ها نظارت كامل داشته باشد.

    در حال حاضر، با توجه به اين‌كه در هر خانه‌اي مي‌توان يك كامپيوتر پنتيوم چهار با پردازشگري حدود سه تا چهارگيگاهرتز پيدا كرد، انتظار مي‌رود بازي‌هاي كامپيوتري از پيشرفته‌ترين و عظيم‌ترين سيستم‌هاي هوش‌مصنوعي بهره بگيرند. سيستم‌هايي مانند شبكه‌هاي عصبي، الگوريتم‌هاي ژنتيك‌ و منطق فازي.

    در عصرِ بازي‌هاي اينترنتي و شبكه‌اي، هوش‌مصنوعي در بازي‌هاي كامپيوتري هم وظايف جديد پيدا كرده است. يكي از اين وظايف اين است كه يك حريف كامپيوتري،‌ با سبك و استراتژيِ بازي منحصر به خود، بايد از يك بازي‌كننده انساني كه در آن سوي ارتباط اينترنتي در حال بازي كردن است، قابل تمايز نباشد.

    بازي‌هاي تأثيرگذار در هوش‌مصنوعي
    هنگامي كه در مورد انقلاب هوش‌مصنوعي صحبت مي‌شود، بايد به بازي‌هاي مهمي كه در تاريخچه اين انقلاب سهم بسزايي داشته‌اند نيز اشاره شود.

    يكي از مهم‌ترين اين بازي‌ها كه هوش‌مصنوعي را در دهه 1990 ميلادي دگرگون ساخت، بي‌شك سري بازي‌هايWarCraft بود كه توسط شركت Blizzard ساخته شد. اين بازي اولين بازي‌اي بود كه الگوريتم‌هاي مسيريابي ‌را در هوش‌مصنوعي به كار مي‌برد. يكي از اين الگوها مقياس‌هاي عالي‌اي بود كه براي صدها واحد مشغول در صحنه‌هاي عظيم جنگي اين بازي طراحي شده‌بود. بازيِ SimCity كه توسط Maxis ساخته شد، اولين بازي‌اي بود كه ثابت كرد كه مي‌شود در يك بازيِ كامپيوتري از فناوري‌هاي حيات مصنوعي استفاده كرد.

    يكي ديگر از پيشرفت‌هاي هوش‌مصنوعي در بازي‌هاي كامپيوتري با بازي Black and White به وجود آمد كه توسطLionhead Studios در سال 2001 ساخته شد و در آن براي اولين بار، فناوريِ يادگيريِ شخصيت‌‌هاي هدايت شونده توسط كامپيوتر مورد استفاده قرار مي‌گرفت.

    هوش‌مصنوعي در بازي‌هاي تيراندازيِ اول شخص
    بازي‌هاي تيراندازيِ اول شخص يا First Person Shooters معمولاً از سيستم هوش‌مصنوعي با ساختار لايه‌لايه استفاده مي‌كنند. لايه‌هايي كه در قسمت زيرين قرار دارند، وظايف ابتدايي را به ‌عهده دارند.

    از اين وظايف ابتدايي مي‌توان به تعيين بهترين مسير تا هدف (كه خود توسط لايه‌هاي بالايي‌تر تعيين مي‌شود) و اجراي متناسب سكانس‌هاي انيميشنِ كاراكتر، اشاره كرد.

    لايه‌هاي بالايي‌تر مسئولِ اجرايِ برهان‌هاي تاكتيكي و انتخاب رفتاري است كه عنصر استفاده‌كننده از هوش‌مصنوعي (به طور مثال شخصيت‌هاي دشمن در بازي‌ها) برطبق اين تاكتيك و استراتژي عمل مي‌كند.

    سيستم مسيريابي معمولاً برپايه نمايش‌هاي هندسي‌اي است كه دنياي بازي را شرح مي‌دهد. هر راس اين نمودار‌ها نمايانگر محلي منطقي از بازي (مانند اتاقي از يك ساختمان يا قطعه‌اي از ميدان جنگ) محسوب مي‌شود. وقتي به شخصيتي دستور داده مي‌شود كه به نقطه‌اي از نقشه بازي برود، عوامل هوش‌مصنوعي با استفاده از نمودار‌ها، نقاط ثانويه هدايتي ‌‌(Subsequent Navigation Points) را به‌ دست مي‌آورند و با هدايت پي‌درپي اين شخصيت به طرف اين نقاط، نهايتاً آن را به نقطه هدف مشخص مي‌رسانند. در حين عبور از اين نقاط هدايتي، هوش‌مصنوعي همچنان وظيفه دارد از مسير‌هاي منطقي براي رسيدن به نقطه بعدي استفاده كند و كاراكتر را از موانع متحرك يا ثابتي كه در مسير بين دو نقطه در سر راهش ظاهر مي شوند نيز عبور دهد. در شكل 1، نمايش مسيريابي را در بازي‌هاي RTS در تصويري ساده مي‌بينيد.

    سپس سيستم گرافيكي وظيفه دارد اجراي مناسبي از سكانس‌هاي اجرا شده در سرعت معيني از انيميشن را با توجه به دستورات ارائه‌شده توسط هوش‌مصنوعي نمايش ‌دهد. اين سيستم همچنين بايد بتواند سكانس‌هاي متحركِ مختلفي را براي اجزاي مختلف بدن شخصيت‌ها اجرا كند. نمونه‌اي از اين سيستم را مي‌توانيد در صحنه‌اي از يك بازي جنگي فرض كنيد كه در آن سربازي همزمان مي‌دود و به طرف دشمن نشانه مي‌گيرد، تيراندازي مي‌كند و اسلحه خود را در حين دويدن پر مي‌كند.

    بازي‌هايي از اين دست اغلب از سيستم كينماتيك معكوس ‌(Inverted Kinematics System) استفاده مي‌كنند. يك سيستم انيميشنيِ IK مي‌تواند به طور مناسب پارامتر‌هاي موقعيت‌يابي محوري يك انيميشن را محاسبه كند. درنتيجه با وجود اين سيستم، دست يك شخصيت مي‌تواند جسمي را كه در درون آن است نگه‌دارد يا ميز، قفسه، شيئي‌ را در بر مي‌گيرد كه روي آن‌ها قرار دارد. وظايف لايه‌هاي بالايي به كاررفته در هوش‌مصنوعي، استفاده مناسب از نوع رفتاري ا‌ست كه براي هر موقعيت توسط كامپيوتر استفاده مي‌شود. به‌طور مثال، در همان بازيِ جنگي اين لايه‌ها، انتخاب مي‌كنند كه سرباز‌ي از سرباز‌هاي دشمن در يك جا نگهباني كند، وارد نبرد شود، فرار كند يا به نقطه‌اي ديگر از نقشه برود تا دشمنش را پيدا كند.

    هنگامي كه هوش‌مصنوعي تصميم گرفت كدام رفتار براي موقعيت ايجاد‌شده بهتر است، يك لايه‌ زيرين انتخاب مي‌شود كه بهترين تاكتيك را براي انجام اين تصميم انتخاب كند. به‌طور نمونه، در مثال قبلي اگر هوش‌مصنوعي تصميم بگيرد كه سرباز وارد نبرد شود، اين لايه زيرين بهترين شيوه مبارزه را براي او تعيين مي‌كند. مثلاً تصميم مي‌گيرد كه او آرام آرام به شخصيت بازي‌كننده نزديك شود و به او تيراندازي كند، يا در گوشه‌اي پنهان شود و منتظر شود كه شخصيت بازي‌كننده به حوزه ديدش برسد و سپس به‌طرفش تيراندازي كند يا اين‌كه به طرف او بدود و تيراندازي كند.

    هوش‌مصنوعي در بازي‌هاي استراتژيِ بي‌درنگ
    در بازي‌هاي استراتژيِ بي‌درنگ ‌(Real Time Strategy) امكان تشخيص مدل‌ها و لايه‌هاي متعددِ هوش‌مصنوعي وجود دارد. يكي از اساسي‌ترين اين مدل‌ها يك سيستم مؤثرِ راهيابي براي كاراكتر‌ است كه بعضي وقت‌ها، در كسري از زمان، اين سيستم ‌بايد جوابگوي مشكل حركت صدها كاراكتر روي نقشه اين‌گونه بازي‌ها باشد. بايد توجه داشت كه مسير‌يابي اين سيستم چيزي فراتر از مسيريابي ساده‌اي است كه تنها كاراكتري را از نقطه A به Bمي‌رساند؛ زيرا در ازدحامِ نقشه، مهم‌ترين نكته در حركت، تشخيص مواجهاتِ اين واحد‌هاي كوچك در حين عبور بين دو نقطه با هم و متعاقب آن اداره آن‌ها است به نحوي كه به هم برخورد نداشته باشند.

    اين الگوريتم‌ها معمولاً بر پايه نقشه بازي استوار است كه اين مسئله خود توسط عناصري گرافيكيِ رشته‌مانند و چهارگوش معرفي مي‌شوند. اين رشته‌هاي مستطيل‌شكل توسط تور‌هايي شبكه‌اي، عوامل تصحيح شده از لحاظ اندازه را در محيط تعيين و معرفي مي‌كنند. در سطوح بالاتر سلسله ‌مراتب هوش‌مصنوعي اين بازي‌ها، ماژول‌هايي طراحي شده است كه وظيفه آن‌ها تعيين مسائل اقتصاديِ بازي، توسعه و از همه مهم‌تر، مدلي براي آناليز نقشه بازي، است. اين همان ماجولي است كه نوع زمين هر ناحيه از نقشه و عناصري كه روي آن ساخته مي‌شوند را آناليز مي‌كند. به‌طور مثال، در محلي از نقشه كه دريا قرار دارد، اين ماجول اجازه مي‌دهد ناوگان دريايي ساخته شود. اين ماجول زمان انجام ساختن يك شهر يا ديوار‌هاي حفاظتي و باروها را نيز تعيين مي‌كند.
     
  4. Don Thomas

    Don Thomas کاربر تازه وارد

    تاریخ عضویت:
    ‏25 ژوئن 2007
    نوشته ها:
    530
    تشکر شده:
    1
    محل سکونت:
    Lost Heaven
    سلام
    و تشکر از مطالب جالبی که در این مکان قرار داده اید

    بی صبرانه منتظر مطالب بیشتری از شما هستم [​IMG]
     
  5. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    از اينكه مطالب مورد توجه شما قرار گرفته خوشحالم توماس جون:happy:
     
  6. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    قسمت سوم:

    هوش‌مصنوعي در بازي‌هاي ورزشي
    اساساً، در اكثر بازي‌هاي ورزشي، ما با مقدار زيادي تقلب از جانب هوش‌مصنوعي روبه‌رو هستيم! به‌طور مثال بازي‌هاي ماشين‌سواري را در نظر بگيريد. هوش مصنوعي، از كل اشكال هندسي نقشه بازي، فقط چند‌ضلعي‌هايي را شناسايي مي‌كند كه متعلق به جاده‌اي است كه حريف كامپيوتري در آن مشغول راندن است، و كاري به ديگر جاهاي نقشه بازي (كه همان جاده ‌باشد) ندارد. در نظر بگيريد كه كامپيوتر توانايي انجام دو نوع رانندگي در پيچ‌هاي تعبيه شده در بازي را دارد: نوع اول كه در غياب حريف ديگر رخ مي‌دهد، نمايانگر بهترين رانندگي در اين پيچ‌ها است و نوع دوم زماني است كه او مي‌خواهد در اين پيچ، همزمان از حريفش سبقت بگيرد.

    در اين مثال كل جاده به سكتور‌هاي متناسب كوچكي تقسيم‌بندي مي‌شود و پارامتر‌هاي سطح جاده به مقادير عدديِ قابل ترجمه تبديل مي‌شوند و مسير هر جزء كوچك جاده محاسبه مي‌شود. سپس با تركيب اين اجزاي، به‌صورت بصري، كل جاده بازسازي مي‌شود و مجاورت ماشين‌ها روي آن با هم نيز در اين تركيب نمايش‌داده مي‌شود.

    شكل 2
    عملاً كامپيوتر مي‌داند كه در پيچ بايد سرعتش را كم كند؛ زيرا در حال پيچيدن اگر سرعتش از حدي بيشتر باشد، كنترل ماشين را از دست خواهد داد. حال بسته به اين‌كه كامپيوتر از حريف انسانيش عقب‌تر است يا جلوتر، در نوع پيچيدن در اين گونه صحنه‌ها تصميم‌گيري مي‌كند.

    اگر او عقب‌تر باشد، سعي مي‌كند با روش بهينه‌سازيِ پيچيدن كه شامل بريدن پيچ‌ها و حركت از داخلي‌ترين مسير است، كمي مسافت عقب‌افتاده را جبران كند.

    در غير‌اين صورت، به روش عادي مي‌پيچد. نوع تقسيم‌بندي مسير جاده توسط هوش‌مصنوعي و دو نوع پيچيدن اتومبيل كامپيوتر در پيچ‌ها را در شكل شماره2 مي‌بينيد.

    شكل 3
    نوع ديگر تقلب كامپيوتر در اين بازي‌ها هم در استفاده از راه‌هاي ميانبر ديده مي‌شود.

    هنگامي كه كامپيوتر از حريف انساني خود عقب مي‌افتد، بيشترين استفاده را از اين گونه راه‌ها كه مسير را برايش كوتاه‌تر مي‌كند، خواهد داشت. در شكل 3 نمونه‌اي از اين شيوه را مي‌بينيد.

    با توضيحاتي كه داده شد، تجاربي كه از بازي‌هاي ماشين‌سواري تا به حال كسب كرده‌ايد، كمي ملموس‌تر مي‌شود.

    به طور مثال، در بازي‌اي مانند Need For Speed كمتر پيش مي‌آيد كه مسافت زيادي از بهترين حريف خود جلوتر باشيد.

    زمان‌هايي پيش مي‌آيد كه اين حريف شما به علت تصادف يا منحرف شدن از جاده، مسافت زيادي از شما عقب مي‌ماند، ولي با پيگيري او روي نقشه كوچك بازي مي‌بينيد كه با سرعتي غيرمنطقي به شما نزديك و نزديك‌تر مي‌شود. در واقع چيزي كه فاصله او را با شما كم مي‌كند سرعت زياد او نيست، بلكه نوع بهينه‌سازي رانندگي او است.

    دو خصيصه مهم ديگر هوش‌مصنوعي در اين نوع بازي‌ها عبارتند از:

    ●‌‌ توانايي آناليز سطوح جاده براي شناسايي موانعي كه روي آن قرار دارند.

    ‌● هماهنگيِ محكمي كه نوع رانندگي كامپيوتر را با مدل فيزيكي طراحي شده بازي تنظيم مي‌كند.

    مدل فيزيكي اين امكان را فراهم مي‌كند كه هنگامي كه اتومبيل كامپيوتر بنا به هر دليلي، از جاده منحرف شد، هوش‌مصنوعي به طرز مناسب و منطقي‌اي كنترل آن را مجدداً به ‌دست بگيرد تا او از كورس رقابت بيشتر عقب نماند.

    تقلب‌هاي مشابه موارد ذكرشده در ديگر بازي‌هاي ورزشي نيز ديده‌ مي‌شود. براي همين، در بازي‌‌هاي FIFAمي‌بينيد كه هنگامي كه كامپيوتر از شما عقب است، بهتر بازي‌ مي‌كند. در اكثر مواقع يك بازيكن كامپيوتري در اين نوع بازي‌ها، قبل از اين كه حركت ورزشي خود را انجام دهد، نقشه‌اي از حركت خود را به‌صورت آماده و تعيين شده در اختيار دارد. اين حركت بسته به اين‌كه از حريف انسانيش جلو است يا عقب تعيين شده ‌است.

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

    هوش‌مصنوعي در بازي‌هايي كه برد و باخت آن توسط داوري انجام مي‌شود (مانند بوكس در صورتي كه حريف ناك‌اوت نشود) نيز توسط قوانيني كه از قبل براي اعمال آن ورزش در هوش‌مصنوعي تعبيه مي‌شود، محاسبه مي‌شود و برنده را مشخص مي‌كند.

    بعد از انجام تمام مراحل گفته شده، سناريوي از قبل تعيين‌شدهِ يك بازيكنِ كنترل‌شده توسط كامپيوتر، به وسيله سيستم انيميشن شخصيت‌ها بازسازي مي‌شود.

    محبوب‌ترين الگوريتم‌هاي هوش‌مصنوعي به كار رفته در بازي‌هاي كامپيوتري
    در ادامه اين مقاله دو نمونه از محبوب‌ترين الگوريتم‌هاي هوش‌مصنوعي معرفي مي‌شود كه به وفور از آن‌ها در طراحي هوش‌مصنوعي بازي‌هاي كامپيوتري استفاده مي‌شود. با دانستن مطالبي در مورد اين الگوريتم‌ها، شايد شما هم ترغيب شويد با طراحي يكي از آن‌ها، يك بازيِ FPS و RTS ساده بسازيد. اولين الگوريتم‌ از اين دست،
    *A نام دارد كه سلسله جست‌وجوهاي سريعي را براي پيدا كردن بهترين مسير بين دو نقطه انجام مي‌دهد. الگوي ديگر ماشين با حالات محدود ‌(Finite State Machine) نام دارد كه بسيار مورد استفاده قرار مي‌گيرد و وظيفه‌اش آماده‌كردن سناريو‌هاي رفتاري براي حريفاني‌ است كه توسط كامپيوتر در بازي كنترل مي‌شوند. در مرحله بعدي اين رفتارها توسط ماژول‌هاي سطوح پايين، مانند ماجول رهيابي، پردازش مي‌شوند.

    الگوريتمِ*A
    موضوع پيداكردن راه بين دو نقطه A و B در اكثر بازي‌هاي كامپيوتري، غير از بازي‌هاي ورزشي و تعداد انگشت‌شماري از بازي‌ها، مشكل كليدي‌اي محسوب مي‌شود. الگوريتم‌هاي اين گروه، در آن واحد جزئي از سطوح پايين‌تر هوش‌مصنوعي بازي هستند. همچنين به عنوان پايه‌اي براي ساختار رفتار‌هاي پيچيده‌تر و هوشمند‌تر، مانند تصميم‌هاي استراتژيك، حركت در آرايش‌هاي جنگي و گروهي و بسياري ديگر از رفتار‌هاي سطح بالاتر، مورد استفاده قرار مي‌گيرد. اين الگوريتم امروزه به طور چشمگيري پيشرفت كرده‌است. به طوري كه در بازي‌هاي كامپيوتري كنوني، الگوريتم*A جايگاه ويژه‌اي دارد.

    اساس اين الگوريتم برپايه <جست‌وجوي گرافيكي بين‌گرهي> استوار است. اين سيستم از يك ارزيابي غيرمستدل(Heuristic Estimate) بهره گيري مي‌كند. اين الگوريتم اولين بار در سال 1968 همزمان توسط سه رياضيدان به نام‌هاي Peter Hart ،Nils Nilsson و Bertram Raphael شرح داده شد.

    دنياي واقعي، تقريباً در تمامي بازي‌هاي كامپيوتري، بسته به نوع بازي، مي‌تواند با خطوطي گرافيكي بازسازي شود. در بازي‌هاي RTS، دنياي بازي معمولاً از آرايشي دو بعدي تشكيل شده‌است و نقشه بازي شامل مربع‌هاي فراواني مي‌شود كه هر يك از آن‌ها مطابق ‌است با نقشه چهارگوش بازي. هر عنصر اين سيستم (جز عناصر مرزي) هشت عنصر همسايه دارند. با استفاده از اين‌گونه مدل نمايشي در بازي‌هاي RTS، مي‌توانيم گرافيكي ايجاد كنيم كه در آن هر يك از اين عناصر به راس گرافيك كل نقشه مربوط باشد. لبه‌هاي هر يك از عناصر گرافيكي (كه هريك با عنصر همسايه خود مجاورت دارد) امكان يا عدم امكان حركت يكي از اجراي نقشه را به عنصر همسايه نمايش مي‌دهد. در استراتژي‌هاي بي‌درنگ ما معمولاً يكي از رئوس اين عناصر گرافيكي را به عنوان محلي كه كوچك‌ترين واحد بازي در آن جاي مي‌گيرد، قلمداد مي‌كنيم.

    در بازي‌هاي FPS رئوس عناصر گرافيكي معمولاً محل‌ها يا اتاق‌ها هستند و توسط اين رئوس است كه اين محل‌ها/ اتاق‌ها با هم ارتباط پيدا مي‌كنند.

    الگوريتم‌هايي فراواني براي پيدا كردن بهترين مسير‌يابي در اين عناصر گرافيكي وجود دارد. يكي از ساده‌ترين اين الگوريتم‌ها كه آتش در چمنزار ‌(Fire on the Prairie) ناميده مي‌شود، به اين صورت كار مي‌كند كه چندين دايره متوالي را در نقطه شروع مي‌سازد و در هر مرحله دايره‌هاي ديگري مي‌سازد كه قطر آن‌ها بزرگ‌تر از دايره‌هاي قبلي است. اين دواير متوالي و عناصر مربوط به هر يك، به‌تدريج بزرگ‌تر مي‌شوند و داراي شاخص‌هاي بزرگ‌تري نيز مي‌شوند.

    حال، با حركت به سوي طرف مقابل و با پيروي از اين قانون كه در هر قدم ما به نقطه‌اي نزديك‌تر از نقشه حركت مي‌كنيم و شاخص اين نقطه كوچك‌تر است، ما به نقطه شروع مي‌رسيم. در نتيجه توسط عناصري كه توسط آن‌ها ما نقشه‌ را طي كرده‌ايم و بار ديگر از آن مسير بازگشته‌ايم، كوتاه‌ترين مسير بين نقطه شروع و نقطه هدف به وجود مي‌آيد.

    شكل 4
    با آزمايش روشي كه اين الگوريتم كار مي‌كند، متوجه خواهيم شد كه گرچه اين روش داراي برتري سادگي است، مشكل جدي‌اي هم دارد. مسيري كه اين الگوريتم در مثال ذكر‌شده پيدا كرده‌است تنها از پنج خانه نقشه بازي تشكيل شده‌ و اين سيستم براي اين كار 81 خانه را مورد آزمايش قرار داده ‌است.

    حال فرض كنيد كه در نقشه‌اي كه متشكل از 256 خانه عرضي و طولي است، ‌بايد 65536 خانه مورد آزمايش قرار گيرد تا مسير مشخص گردد! در شكل 4 مي‌بينيد كه دايره شاخص شماره 4 توسط يك الگوريتم مسير‌يابي ساده به هدف مورد نظر رسيده‌است.

    بايد توجه داشت در اين الگوريتم بهترين راه الزاماً نزديك‌ترين راه نيست. اين الگوريتم غير از مسير‌يابي، مي‌تواند فاكتور‌هاي ديگري همانند نوع زمين بازي را نيز مشخص كند. (به طور مثال، يك تانك در بازي‌هاي استراتژي در زمين معمولي تندتر از زمين گل‌آلود حركت مي‌كند).


    از ديگر استفاده‌هاي اين الگوريتم، مي‌توان به تغيير محدوديت زاويه‌هاي دوربين و نمايش تعداد بيشتري از واحد‌ها در يك زمان، اشاره كرد. همچنين اين الگوريتم شرايطي را فراهم مي‌كند كه واحد‌ها نتوانند از نقاط غيرقابل عبور نقشه عبور كنند. البته نبايد فراموش كرد كه بهترين استفاده از اين الگوريتم همان راهيابي بين دو نقطه است. در زير شبه‌كد‌ها يا Psudocodeهاي الگوريتم *A را مشاهده مي‌كنيد:

    به علت مشكل محاسباتي كه در بالا براي اين الگوريتم توضيح داده شد، روش‌هاي ويژه‌اي مدنظر قرار گرفته‌ شده است كه يكي از آن‌ها روش بهينه‌سازي است. در واقع تمام تلاش‌هاي يك سيستم هوش‌مصنوعي كه از اين الگوريتم استفاده مي‌كند، بدون روش بهينه‌سازي به علت عمليات‌هاي ناكارآمدي‌ كه براي تعيين مسير مي‌شود، از بين مي‌رود. به همين منظور از مدت‌ها پيش، متد‌هاي برنامه‌نويسي متعددي براي رفع اين نقيصه طراحي شد كه يكي از آن‌ها همين روش بهينه‌سازي بود. اين روش به دو صورت اين نقيصه را رفع مي‌كند:

    ●‌ بهينه سازي خودِ عمليات جست‌وجوي الگوريتم‌

    ●‌ بهينه سازي ساختار اطلاعاتي‌

    در مورد اول، تمام نقشه بازي به نواحي كوچك‌تري تقسيم مي‌شود و الگوريتم نيز به دو بخش مجزا تقسيم مي‌شود. قسمت اول دنبال مسيري مي‌گردد كه بايد از آن ناحيه عبور كند. سپس قسمت دوم حركت را براي هر منطقه از نقطه ورود به نقطه هدايت مي‌كند. در نتيجه در هر ناحيه، با استفاده از الگوريتم *A مسير مطلوبي به ‌دست مي‌آيد. با اين روش به ‌طور عمده ميدان جست‌وجو را محدودتر و منابع محاسباتي را كمتر مي‌كنيم.

    در واقع استفاده از اين روش درست مانند دنياي واقعي، هنگام رفتن فردي از يك جاي شهر به جاي ديگر است. در واقع كسي كه مي‌خواهد از نقطه‌اي از شهر به جاي ديگر آن برود، تمام مسير را با دقت مساوي طي نمي‌كند، بلكه به جاي آن به جاهاي شناسايي مشخصي مي‌رسد و از آنجا براي ادامه مسير خود و ميزان راه باقيمانده تا نقطه بعدي تصميم‌گيري مي‌كند.

    فاكتور مطلوب‌سازيِ ديگر انتخاب مناسب عمليات و پارامتر‌هاي جست‌وجوگر است كه تعيين مي‌كند جست‌وجو تا چه محدوده‌اي از نقشه بازي صورت گيرد.

    پايان قسمت سوم.
     

    فایل های ضمیمه:

    • 2.jpg
      2.jpg
      اندازه فایل:
      8.3 KB
      نمایش ها:
      4
    • 3.jpg
      3.jpg
      اندازه فایل:
      14.5 KB
      نمایش ها:
      3
    • A.jpg
      A.jpg
      اندازه فایل:
      55.7 KB
      نمایش ها:
      4
    • 4.jpg
      4.jpg
      اندازه فایل:
      25.7 KB
      نمایش ها:
      3
  7. appbannerkhuniresbanner
  8. Don Thomas

    Don Thomas کاربر تازه وارد

    تاریخ عضویت:
    ‏25 ژوئن 2007
    نوشته ها:
    530
    تشکر شده:
    1
    محل سکونت:
    Lost Heaven
    خواهش می کنم
    دوست عزیزم , مطالب شما همیشه مورد توجه من و دیگر دوستان واقع شده است .:cool:

    موفق باشید :happy:

    ;)
     
  9. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    الگوريتم ماشين با حالات محدود
    الگوريتم‌هاي ماشين با حالات محدود ‌(Finite State Machines) مدل‌هاي رفتاري‌اي هستند كه از موقعيت ‌‌(State)، انتقال اين موقعيت ‌‌(Transition) و ايجاد يك عمل ‌(Action) تشكيل مي‌شود. در يك موقعيت، اطلاعاتي قبلي ذخيره مي‌شود.

    به طور مثال، اطلاعات ورودي از شروع سيستم تا زمان حال در اين بخش قرار مي‌گيرد. در مرحله انتقال، اين موقعيت تغيير مي‌كند و بسته به شرايط، انتقال مي‌يابد و در مرحله آخر اين موقعيتِ منتقل‌شده كه خود نماينده يك حالت بوده ‌است، يك عمل متناسب با آن موقعيت را ايجاد مي‌كند. در شكل 5، نمودار حالتي اين الگوريتم را در باز و بسته كردن يك در مشاهده مي‌كنيد.

    دليل نامگذاري اين الگوريتم نيز مقايسه‌اي‌ است كه آن را از مغز انسان متمايز مي‌كند. همان طور كه مي‌دانيد مغز انسان در هر لحظه مي‌تواند عمليات ذكر شده در بالا را در تعداد نامتناهي انجام دهد. اما كامپيوتر و هوش‌مصنوعي، هرچند هم كه پيشرفته باشد، تنها قادر است تعداد معيني از اين عمليات را انجام دهد.

    با اين‌كه الگوريتم‌هاي ساده‌اي هستند، در عين حال يكي از پركاربرد‌ترين و مؤثر‌ترين روش برنامه‌ريزي هوش‌مصنوعي مي‌باشند. براي هر موقعيت در يك بازي كامپيوتري مي‌توان مجموعه اعدادي از چگونگي آن لحظه قائل شد.

    براي مثال، يك شواليه را در نظر بگيريد. او در بازي مي‌تواند زره بپوشد، به عنوان نگهباني عمل كند، حمله كند يا در حال استراحت باشد.
    يا در يك بازي RTS يكي از مردم عادي شما مي‌تواند چوب جمع كند، خانه‌اي بسازد يا در برابر حمله دشمن از خود دفاع كند. بسته به موقعيت هر يك از اين دو شخصيت، اشيا و اجزاي بازي مي‌توانند عكس‌العمل‌هاي متفاوت، اما محدودي داشته باشند.

    در واقع روش FSM به ما امكان مي‌دهد رفتار اين اجزا را در بازي به قسمت‌هاي كوچك‌تري مجزا كنيم و سپس با سهولت بيشتري اين قسمت‌ها را Debug و Extend كنيم. براي موقعيت هر شيء در لحظه آغازين و لحظه بعد از انجام عمل مورد نظر، كدي در نظر گرفته مي‌شود. براي انتقال موقعيت‌ها نيز كد‌هايي در نظر گرفته مي‌شود. اين كد‌ها در هر فريم از بازي مورد استفاده هوش‌مصنوعي قرار مي‌گيرد و با كد‌هاي آمده از محيط بازي نيز خود را تطبيق مي‌دهد.

    شبكه عصبي مصنوعي و الگوريتم‌هاي پيشرفته در بازي‌هاي كامپيوتري
    همان‌طور كه مي‌دانيد سيستم عصبي بدن انسان از دو قسمت مركزي ‌(CNS) و محيطي ‌(PNS) تشكيل شده ‌است. سيستم عصبي مركزي شامل مغز و نخاع و سيستم عصبي محيطي شامل رشته‌هاي عصبي و گيرنده‌هاي آن در اعضاي مختلف بدن است. وظيفه سيستم عصبي محيطي، جمع‌آوري اطلاعاتي است كه در نهايت بايد توسط مغز و نخاع پردازش شود. اخيراً با معرفي شبكه عصبي مصنوعي در مبحث هوش‌مصنوعي، درست ‌مانند سيستم عصبي بدن انسان، جزء محيطي نيز براي اين سيستم تعريف شده ‌است. در واقع اطلاعاتي كه قبلاً براي پردازش به هوش‌مصنوعي سپرده مي‌شد، با معرفي اين سيستم به نحو كامل‌تر و طبقه‌بندي‌تري در اختيار آن قرار مي‌گيرد.

    بحث شبكه‌هاي عصبي مصنوعي و موارد استفاده آن‌ها در بازي‌هاي كامپيوتري، اخيراً به يكي از بحث‌هاي داغ در صنعت بازي‌سازي تبديل شده‌ است. در بسياري از مجلات و سايت‌هاي بازي به اين بحث و توانايي‌هاي الگوريتم‌هاي امروزي ساخت بازي‌ها اشاره شده‌ است. مشكلات مربوط به شبكه عصبي مصنوعي نيز بارها در اجلاس سازندگان بازي‌ها ‌(GDC) كه سالانه در شهر لندن برگزار مي‌شود مطرح شده ‌است.

    بازي ماشين‌سواريِ Collin McRae Rally2 يكي از اولين بازي‌هايي است كه از اين سيستم در هوش‌مصنوعي خود استفاده كرده‌ است و اتفاقاً بسيار هم موفق بوده ‌است. در اين بازي در حين اين‌كه كامپيوتر سعي دارد ماشين‌هاي خود را به بهترين نحو در جاده كنترل كند، همزمان توسط كمك‌راننده ماشين‌ها، بنا به شيوه مسابقات رالي، توضيحاتي در مورد آينده جاده و نحوه پيچ‌ها مي‌دهد. در اين بازي‌ هم، درست مانند توضيحي كه در قسمت هوش‌مصنوعيِ بازي‌هاي ورزشي گفته ‌شد، هر جاده توسط خطوطي شكسته كه طرح خطي‌اي را براي هوش‌مصنوعي تشكيل مي‌دهند، شناخته مي‌شود.

    اگر بخواهيم شبكه عصبي مصنوعي را براي اين بازي توضيح دهيم، بايد به اطلاعاتي اشاره كنيم كه اين سيستم آن‌ها را براي هوش‌مصنوعي جمعآوري مي‌كند. در واقع اطلاعات وروديِ شبكه عصبي مصنوعي اطلاعاتي است مانند: ميزان انحناي هر پيچ، فاصله اتومبيل تا ابتداي پيچ، نوع سطح جاده، سرعت و اجزاي سوارشده روي هر اتومبيل از قبيل توربو و فلاپ‌ها و كيت‌ها.

    سپس اين شبكه وظيفه دارد اين اطلاعات ورودي را با عبور از لايه‌هاي مختلف به هسته اصلي هوش‌مصنوعيِ بازي (كه با موتور ساخت بازي نيز ارتباط تنگاتنگ دارد) برساند. سپس در آنجا پردازش‌هاي نهايي صورت مي‌گيرد و اطلاعات خروجي به‌ دست مي‌آيد. وظيفه پيرايش و نمايش اين اطلاعات خروجي باز هم به عهده شبكه عصبي مصنوعي است. بدين ترتيب در مثال بالا حركت و كنترل اتومبيل در جاده، بنا به موقعيت، به‌ درستي و به بهترين شكل ممكن صورت مي‌گيرد و قسمت معرفي جاده توسط كمك‌راننده نيز در كنار هدايت اتومبيل به طبيعي‌ترين حالت ممكن، انجام مي‌شود.

    در كنترل اتومبيل به اين شيوه،‌ كامپيوتر مي‌داند كه مي‌تواند از روي موانع كوچك‌تر عبور كند؛ بدون آن‌كه مشكلي در هدايت داشته باشد يا مي‌داند كه در حالات برفي و باراني كه جاده لغزنده است، بايد زودتر از حالت طبيعي تصميم به پيچيدن داشته باشد. اين بازي از مدلي چند لايه به نام Perceptron Model استفاده مي‌كند. در علم پزشكي اين مدل عصبي-هدايتي كه نورون ‌McCulloch-Pitts هم ناميده مي‌شود، عبارت است شبكه‌اي از نورون‌ها كه ارتباطات سنگين و مهمي بين ورودي عده‌اي از نورون‌هاي با خروجي عده ديگر از نورون‌ها، برقرار مي‌كنند.

    در واقع اين ارتباطات مانند سيناپس‌هاي پيشرفته‌اي هستند كه بر اساس تجربيات بسيار كوچك، تصميم‌هاي مؤثر و مهمي را اتخاذ مي‌كنند. تصميماتي مانند يادگيري‌هاي پيشرفته. با توضيحي كه در مورد شبكه عصبي مصنوعي در بازيِ فوق داده شد، مي‌بينيم كه شباهت‌هاي بسياري بين اين سيستم و سيستم به كاررفته در بازي‌ ديده مي‌شود. در شكل 6 يك نمونه ساده مدل Perceptron را مي‌بينيم.

    شبكه عصبي مصنوعي، به صورت تئوري، مي‌تواند بسياري از وظايف كنوني هوش‌مصنوعي را انجام دهد و زمان و سرعت بيشتري را براي اعمال مهم‌تر در اختيار آن قرار دهد. ولي عملاً مسائلي، فعاليت اين شبكه عصبي را محدود مي‌كنند كه در ادامه به چند مورد از آن‌ها اشاره مي‌كنيم:

    ●‌ مشكلاتي در انتخاب اطلاعات ورودي مناسب براي اين شبكه‌

    ‌‌● عدم حساسيت اين شبكه به تغييرات منطقي كنش‌هاي بازي و دوباره سازيِ هر شبكه با تغيير هر حالت در بازي.

    ‌● ساختار مشكل و پيچيده آن و مشكلاتي كه در Debug كردن هر موقعيت به وجود مي‌آورد.

    ● زمان زيادي كه براي طراحيِ چنين شبكه‌اي احتياج است.

    حال براي مقابله با مشكلات فوق، چه كاري بايد انجام داد تا بتوان در بازي‌هاي كامپيوتري امروزي، با اين سيستم حداكثر بهره را برد؟

    در ابتدا بايد نوع اطلاعاتي را مشخص كنيم كه مي‌خواهيم توسط اين سيستم پردازش شود. به‌طور مثال بازي‌اي را در نظر بگيريد كه سيستم عصبي هوشمند در آن قرار است هدايت هواپيماي مقابل ما را داشته باشد. اطلاعاتي كه اين سيستم قرار است آن‌ها را پردازش كند، عبارتند از: مسير‌هاي مطلوب راندن هواپيما و سرعت، شتاب و ارتفاعي كه هواپيماي او را به هواپيماي ما خواهد رساند.

    در مثال ديگر، مي‌توان به يك بازي RTS اشاره كرد. بسته به تحليل هر موقعيت، اين شبكه تصميم به گسترش شهر و فتوحات، توسعه ارتش يا تعميرات بعد از جنگ، خواهد گرفت. تمام پارامتر‌هايي كه بازي بايد آن‌ها را به‌صورت بصري و صوتي در اختيار بازي‌كننده بگذارد، بايد از فيلتر اين سيستم گذشته باشد و به صورت خروجي در اختيار ما قرار گيرد. با اين‌كه مرحله خروجي اين سيستم ساده به‌نظر مي‌آيد، مشكل اصلي انتخاب پارامتر‌هاي ورودي براي اين سيستم است.

    پارامتر‌هاي پيچيده بايد طوري انتخاب شوند كه امكان ساده‌تر شدن توسط اين سيستم را در مدت زمان كمي داشته باشند. يك قانون كلي در اين بحث مي‌گويد: <اطلاعات ورودي بايد تا جايي كه امكان دارد بيشترين اطلاعات را در مورد دنياي بازي بدهد> اين قانون در مثال بازيِ هواپيمايي اينگونه است كه اطلاعات ورودي هر زمان براي يك حريف كامپيوتري بايد شامل ارتفاع و موقعيت هواپيماي ما، وضعيت جو و آب و هوا، ميزان خسارت هواپيماي ما و كامپيوتر، سرعت و شتاب هواپيماي خود و ما و موارد باشد؟!

    قدم بعدي در تسهيل كار اين سيستم، اين است كه تا جايي كه مي‌شود براي هر موقعيت موارد مشابه از قبل تعريف شده باشد و هوش‌مصنوعي اين امكان را داشته باشد كه اطلاعات به دست آمده از تجربيات سپري شده‌اش را حفظ كند. به طور مثال نوع پرواز و حمله قبلي هواپيماي ما را بداند و آن را در خاطره خود ثبت كند و در موارد بعدي از آن استفاده نمايد.

    به كارگيري شبكه عصبي مصنوعي در عمل كار ساده‌اي نيست. طراحي آن به زمان، تجربه و صبر زيادي احتياج دارد. منطق عملياتي اين شبكه برخلاف تجربيات صفر و يكي كامپيوتر و مانند مغز انسان،‌ گسترده‌تر است. اين منطق نشان مي‌دهد كه آيا موقعيت ظاهري در هر لحظه از بازي واقعي است يا خير و اگر واقعي است تا چه حدي مهم و قابل اعتنا است. گرچه طراحي چنين شبكه‌هايي كاري سخت و طاقت‌فرسا است، بازي‌ها و نتايجي كه از طراحي آن‌ها گرفته مي‌شود، اكثراً حيرت‌انگيز و تماشايي هستند. در آينده استفاده از اين شبكه‌هاي عصبي هوش‌مصنوعي را در اكثر بازي‌هايي كه دوستشان داريد، خواهيد ديد.

    شكل 6
    كتابخانه‌هاي هوش‌مصنوعي
    طراحي يك سيستم قويِ هوش‌مصنوعي در يك بازيِ كامپيوتري كاري است كه نيازمند وقت و تجربه زيادي است. اگر يك شركت طراح بازي نتواند تيم طراحي قوي‌اي براي اين‌كار داشته باشد، مي‌تواند يك سيستمِ از قبل طراحي شده را كه در بازار نرم‌افزاري وجود دارد، از شركت ديگر خريداري كند.

    در اين قسمت اشاره‌اي خواهيم داشت به دو نمونه از معروف‌ترين و بهترين نمونه‌هاي هوش‌هاي مصنوعي ساخته شده.


    هوش مصنوعيِِ Renderware
    اين سيستم در واقع يك موتورِ بازي است كه در بسياري از كنسول‌هاي بازي قابل استفاده است. اين موتور شامل بخش‌هاي مختلف صوتي، گرافيكي، محيط بازي و... مي‌شود كه يكي از اين بخش‌ها به هوش‌مصنوعي اختصاص دارد.

    هوش‌مصنوعي Renderware هم مي‌تواند در بازي‌هايي كه از اين موتور استفاده مي‌كنند قرار گيرد و هم مي‌تواند در بازي‌هاي ساخته شده براساس موتور‌هاي ديگر كه مي‌خواهند از اين هوش‌مصنوعي بهره ببرند، به كار رود.

    از خصوصيات اين سيستم به‌كارگيري فلسفهِ لايه‌اي است. در زير سه لايه اصلي اين هوش‌مصنوعي معرفي مي‌شود:

    ● ‌لايه ادراك:‌(Perception Layer) مسئول آناليز موقعيت‌ها است. به طور مثال در يك بازي RTS دو جزء استاتيك (مثل نوع زمين و قلمرو‌ها) و ديناميك (سپاهيان و كاراكتر‌ها) توسط اين لايه تحليل مي‌شود.

    ‌‌● لايه تصميم‌گيرنده: ‌(Decision Layer) مسئول تصميم‌گيري‌هاي استراتژيك در مورد موقعيت‌هايي‌ است كه توسط لايه ادراكي دريافت كرده‌است. تصميم‌گيري‌هايي مانند مسير‌يابي، انجام يا عدم انجام جنگ و دفاع كردن.

    ●‌ لايه عملياتي:(Action Layer) وظيفه انجام كار مناسب را دارد.

    از لايه‌هاي فوق شايد بتوان گفت لايه اول مهم‌ترين است؛ زيرا اگر كامپيوتر نتواند درك صحيحي از موقعيت‌هاي يك زمان خاص بازي داشته باشد، ديگر لايه‌ها تصميم‌ها و اعمال نادرستي خواهند داشت. اين لايه در هوش‌مصنوعيِRenderware با نام PathData شناخته مي‌شود. (كه نامي به‌ظاهر اشتباه جلوه مي‌كند؛ زيرا وظايف لايه ادراكي را فقط معطوف به مسير‌يابي مي‌داند).

    سيستم PathData سيستمي قوي است كه به‌راحتي مي‌تواند از خواص توپولوژيك و مسير‌هاي بازي اطلاعات تحليلي خوبي را در اختيار لايه تصميم‌گيري بگذارد. از برتري‌هاي اين سيستم، تحليل خوب اطلاعات در مورد خواص توپولوژيك هر منطقه و واحد‌هاي نزديك به آن است. به عنوان مثال، با اين سيستم كامپيوتر قادر خواهد بود كه بداند در كدام منطقه نقشه نقطه‌اي كور براي پنهان شدن وجود دارد، چه‌چيز‌هاي پراهميتي در نقشه بايد به چشم او بيايد و به چه چيزهايي نبايد اعتنا كند، كدام مسير بهترين راه براي نزديك شدن به دشمن است و ... همچنين با اين سيستم محل ديوار‌ها، موانعي كه نمي‌توان از روي آن‌ها پريد يا عبور كرد و ديگر عناصر محيطي به خوبي تحليل مي‌شوند.

    از ديگر مزيت‌هاي اين سيستم هوش‌مصنوعي، عملياتي است كه بعد از شناسايي، درك و تصميم‌گيري توسط آن، به‌ويژه در مورد حركت واحد‌ها، انجام مي‌شود. بعد از مرحله درك، توسط اين هوش‌مصنوعي و با استفاده از اطلاعات به دست آمده، نمودار‌هاي خطي‌ مناسبي ساخته مي‌شود و سپس با استفاده از الگوريتم *A مسير ابتدايي حركت بين دو نقطه ترسيم مي‌شود و سپس با جزئيات دقيق، حركت هر واحد اعمال مي‌شود.

    موتور بازي Renderware براي دستگاه‌هاي PC ،Playstation و PS2 ،Nintendo و Xbox قابل استفاده است. البته براي هر يك از اين دستگاه‌ها بهينه سازي شده‌است و امكان بهره‌گيري از يك هوش‌مصنوعي بي‌نقص را براي بازي‌هاي آن‌ها فراهم مي‌كند.

    هوش مصنوعيِ Implant
    اين موتور اولين بار در سال 2002 در كنفرانس طراحان بازي‌هاي كامپيوتري ارائه شد و فوراً به يكي از محبوب‌ترين موتور‌هاي بازي‌سازي براي طراحان تبديل شد. بهترين و مهم‌ترين خصوصيت منحصر‌به‌فرد اين هوش‌مصنوعي، به كارگيري يك سيستم پيشرفته با استفاده از الگوريتم‌هاي سلسله‌اي است كه در مسير‌يابي بسيار موفق عمل مي‌كند. در اين سيستم نحوه تصميم‌گيري براي يك عمليات خاص پيرو درختچه‌هاي دودويي است. رابط كاربرپسند اين هوش‌مصنوعي، ميزان استفاده‌ از آن را براي برنامه‌نويسان زياد كرده‌است. به‌عبارت ديگر، ارتباط ساده و مؤثري كه اين هوش‌مصنوعي با برنامه‌هايي مانند 3DStudio Max و Maya برقرار مي‌كند، باعث مي‌شود عمليات اجرايي بازي همزمان با مراحل توليد گرافيكي آن قابل ديدن و تصحيح باشد.

    از ديگر مزيت‌هاي اين هوش‌مصنوعي مي‌توان به هدايت مناسب واحد‌هاي عظيم از لحاظ تعداد، به طور مثال در بازي‌هاي استراتژي، اشاره كرد. اين هوش‌مصنوعي هم براي دستگاه‌هاي پي‌سي، GameCube ،Xbox، وPlaystiation قابل استفاده است.

    سخن آخر
    هوش مصنوعي يكي از پهناورترين، جذاب‌ترين و مهم‌ترين قسمت‌هاي علوم كامپيوتري است. در اين مقاله سعي شد مفاهيم اوليه اين علم در ساخت بازي‌هاي كامپيوتري توضيح داده شود. البته بايد بدانيد هوش‌مصنوعي در اين بازي‌ها مبحث مفصل و گسترده‌اي است كه در بسياري از دانشگاه‌هاي معتبر دنيا براي آن رشته‌هاي تا حد كارداني در نظر گرفته ‌شده است. در معدود بازي‌هاي توليدشده در كشورمان مي‌بينيم كه قسمت هوش‌مصنوعي بازي بسيار ايراد دارد. علت هم مشخص است.

    ساخت هوش‌مصنوعي (و همچنين موتور‌هاي ساخت بازي) يا بايد توسط طراحان كشورمان صورت گيرد كه متأسفانه علم آن وجود ندارد يا از مدل‌هاي خارجي استفاده شود كه آن هم به ‌علت هزينه‌هاي زياد خريد آن‌ها عملاً غيرممكن است. اميدواريم در آينده با پيشرفت برنامه‌نويسان كشورمان در اين حوزه، بتوانيم بازي‌هاي كامپيوتري ساخت كشورمان را با لذت و بدون احساس تفاوت‌هاي آشكار با نمونه‌هاي خارجي‌شان، بازي كنيم.
    پايان.
     

    فایل های ضمیمه:

    • ??? 5.jpg
      ??? 5.jpg
      اندازه فایل:
      20.5 KB
      نمایش ها:
      3
    • ???6.jpg
      ???6.jpg
      اندازه فایل:
      28.9 KB
      نمایش ها:
      4
  10. Benyaminj

    Benyaminj کاربر فعال بازیهای کامپیوتری کاربر فعال

    تاریخ عضویت:
    ‏24 آگوست 2005
    نوشته ها:
    4,197
    تشکر شده:
    1,243
    محل سکونت:
    Tehran
    در حالت هارد اين هوش 2 چندان میشه
     
  11. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    در بسياري از ژانرهاي بازي‌هاي كامپيوتري، نزديك‌تر بودن به واقعيت، هم براي سازندگان و هم براي دوستداران بازي جايگاه ويژه‌اي دارد. گرافيك بازي‌ها در طبيعي‌تر جلوه دادن محيط و چهره‌ها، و استفاده از صدا و افكت‌هاي صوتي پيشرفته در واقعيت بخشيدن به اتفاقاتي كه در بازي‌ها با آن روبه‌رو مي‌شويم، مؤثرند. انيميشن نيز هر چه با دقت و جزئيات بيشتري طراحي شود، باورپذيرتر به نظر مي‌آيد. ولي آنچه دوستداران بازي را در ژانرهاي ويژه‌اي از بازي‌ها به وجد مي‌آورد، هوشمندي شخصيت‌هاي بازي است. حوصله همه از اين‌كه هم‌تيمي‌هاي مجازيشان در بازي‌هاي كامپيوتري نسنجيده عمل‌كنند، سر مي‌رود. گاه آن‌ها نمي‌توانند از خودشان هم محافظت كنند؛ چه برسد به آن‌كه بخواهند در طول بازي به شما كمك كنند. مبارزه با دشمناني كه دست كمي از افرادتان ندارند نيز جذابيتي ندارد. همان‌گونه كه گرافيك خوب به مدل‌ها، صداي خوب به رويدادها و انيميشن خوب به حركت‌هاي موجود در بازي واقعيت مي‌بخشد، استفاده از روش‌هاي مختلف هوش مصنوعي نيز رفتار شخصيت‌هاي بازي را طبيعي‌تر مي‌كند. در بازي‌هاي كامپيوتري، هوش مصنوعي بيشتر براي شخصيت‌هاي مجازي مقابل شما به كار مي‌رود و اگر در بازي، هم‌تيمي‌هايي نيز داشته باشيد كه خودِ بازي، آن‌ها را كنترل مي‌كند، براي آن‌ها نيز به كار مي‌رود. براي ملموس‌تر بودن توضيحاتي كه در ادامه پيش‌رو خواهد بود، از رفتار شخصيت‌هاي مجازي بازي Counter - 1.7 Strike در حالتي كه دست‌كم كنترل يك طرف بازي با كامپيوتر است و بازي‌هاي Quake استفاده خواهد شد. هوش مصنوعي در بازي Counter - Strike به خوبي پياده‌سازي شده است و بسياري از دوستداران بازي نيز با آن آشنا هستند. وقتي در هر مرحله، شخصيت‌ مجازي شما كشته مي‌شود و چند دقيقه‌اي از بازي بيرون هستيد، زمان خوبي است كه رفتار هم تيمي‌ها و دشمنانتان را بررسي كنيد و به عملكرد هوش مصنوعي آن‌ها پي ببريد. پنهان‌شدن، آهسته حركت كردن و همكاري آن‌ها با هم، بسيار ديدني است و در كمتر بازي‌اي چنين رفتارهايي ديده مي‌شود.


    كاربرد هوش مصنوعي
    هدف هوش مصنوعي نزديك نمودن رفتار و پاسخ يك سيستم كامپيوتري به الگوهايي است كه انسان براساس آن‌ها رفتار مي‌كند و پاسخ مي‌دهد. گاه سيستم‌هايي طراحي مي‌شوند كه قدرت تجزيه و تحليل آن‌ها از انسان بيشتر است. ولي باز از الگوهاي ما استفاده مي‌كنند. هوش مصنوعي با سيستم فازي يا سيستمي كه انسان برطبق آن تصميم مي‌گيرد، رابطه تنگاتنگي در اين سيستم برخلا‌ف سيستم صفر و يك ديجيتال، مي‌توان به يك متغير مقداري كمتر از يك و بيشتر از صفر نيز داد.

    براي نمونه مي‌خواهيد يك بازي كامپيوتري را از ميان چندين بازي مورد علا‌قه خود بخريد و از آنجا كه مقدار پول شما مشخص است، مي‌خواهيد فقط يك بازي را برگزينيد. پس شما به بازي‌هاي مورد علا‌قه‌ خود، امتيازي بين صفر و يك مي‌دهيد. ارزش صفر براي بازي‌هايي است كه كمتر آن‌ها را دوست داريد و هر چه مقدار عدديِ بيشتري به آن بازي بدهيد، بيشتر آن را دوست داريد و از ميان آن‌ها بازي‌اي كه بيشترين ارزش را براي شما دارد، انتخاب مي‌كنيد.

    از ديد فروشنده، شما با سيستم صفر و يك پاسخ داده‌ايد و بازي‌هاي ديگر را انتخاب نكرده‌ايد. هرچند در واقع شما فازي فكر كرده‌ايد، ولي با منطق صفر و يك پاسخ داده‌ايد. اگر كامپيوترها فازي‌تر تحليل كنند، هوشمندتر مي‌شوند. ولي پاسخ آن‌ها بايد براساس همين صفر و يك باشد؛ چرا كه هيچ كس نمي‌خواهد يك پاسخ غيرقطعي از كامپيوتر دريافت كند. هر چه رفتارهاي شخصيت‌هاي بازي بيشتر براساس سيستم فازي باشد، پيش‌بيني‌ناپذيرتر و هوشمندانه‌تر خواهند بود. يعني مي‌توانند در مقابل رفتارهاي مختلف شما و موقعيت محيط، رفتارهايي متفاوت نشان دهند.

    انواع هوش مصنوعي
    در بازي‌هاي كامپيوتري سه نوع هوش بيشتر از همه استفاده مي‌شوند كه به صورت خلا‌صه عبارتند از:

    ‌‌هوش مصنوعي رويدادگرا: اين هوش معمول‌ترين نوع هوش مصنوعي است. رويداد مي‌تواند شامل هر چيزي اعم از اتفاقات بازي تا دستوراتي باشد كه كاربر به شخصيت مجازي خود مي‌دهد. براساس هر رويدادي كه در بازي انجام مي‌شود، يك واكنش هوشمندانه نيز روي مي‌دهد. در بازي كانتراسترايك دشمن شما نسبت به صدا حساس است و صداي دويدن شما را هم مي‌شنود. از اين‌رو بسته به موقعيت خود، يا به آهستگي پنهان مي‌شود، يا برمي‌گردد و از راه ديگري به سوي شما مي‌آيد يا به سوي شما مي‌آيد و شليك مي‌كند.

    هوش مصنوعي هدف‌گرا: اين نوع هوش مصنوعي از هوش مصنوعي رويدادگرا مستقل است. ولي هوش مصنوعي رويدادگرا مي‌تواند در طراحي يك بازي، هدف‌هاي موتور هوش مصنوعي هدف‌گرا را تامين كند. اين نوع هوش مصنوعي، هدفِ با ارزش بيشتر را برمي‌گزيند و آن را با تقسيم به زيرهدف‌هاي كوچك‌تر، پردازش مي‌كند.

    شايد در بازي كانتراسترايك زماني كه كامپيوتر هم كنترل هم تيمي‌ها و هم كنترل دشمنان شما را به عهده دارد، ديده باشيد كه وقتي با هم تيمي‌هايتان به سوي دشمنان خود تيراندازي مي‌كنيد، آن‌ها هم بيشتر به سوي شما شليك مي‌كنند تا ديگر هم‌تيمي‌هايتان؛ چرا كه شما بايد هدف‌هاي خواسته‌شده در بازي (مانند آزاد كردن گروگان‌ها يا خنثي كردن بمب) را انجام دهيد. براي همين ارزش شما براي آن‌ها بيشتر است.

    تصوير 1 - يك كاراكتر در بازي Counter 1.7 - Strike در حال دويدن به سوي يكي از دو محل مبارزه است. او مي‌داند اسلحه و هم تيمي‌هايش كجا هستند.
    محفظه‌هاي سوراخ: اين روش تركيبي از دو روش گفته شده است. روش كار ساده است. دو محفظه داريد و چند نوع كار: فرار (flee)، مبارزه (fight) و پركردن تفنگ (restock) را در نظر مي‌گيريم. محفظه‌ها مقداري از محتواي خود را با گذشت زمان از دست مي‌دهند.

    شما اسكريپتي را در ارتباط با محفظه‌اي كه بيشتر پر است، به اجرا در ميآوريد. رويدادهايي كه اتفاق مي‌افتند، اين محفظه‌ها را با ارزش‌هاي مختلفي پر مي‌كنند و اين محفظه‌ها پر و خالي مي‌شوند. براي نمونه دشمن مجازي را در موقعيت‌هاي زير در نظر بگيريد كه مي‌توان بسته به طراحي بازي عددهاي زير را كم و زياد كرد:‌

    - شما دشمن را ببينيد، پنج درصد به ارزش فرار و ده ‌درصد به ارزش مبارزه او افزوده مي‌شود. چون در بازي اولين هدف مبارزه است نه فرار. فرار كاري است كه هنگام رويا‌رويي با دشمن زماني كه دشمن شما موقعيت مناسبي ندارد، انجام مي‌دهد. پس ارزش مبارزه در اينجا از فرار بيشتر است.

    - گلوله او كم باشد، بيست درصد به ارزش ريستوك يا پر كردن تفنگ افزوده مي‌شود. چون شايد به زودي به آن نياز داشته باشد.

    - اگر آسيب‌ديدگي او كم باشد، بيست‌درصد به ارزش فرار و ده‌درصد به ارزش ريستوك افزوده مي‌شود. چون اگر شخصيت مجازي آسيب كمي ديده باشد، با ماندن در يك‌جا و پركردن تفنگ خود چنانچه در تيررس شما باشد، آسيب بيشتري مي‌بيند.

    پس در حالي كه جاي خود را عوض مي‌كند، بايد تفنگ خود را نيز پركند. چون اگر باز در تيررس قرار بگيرد و گلوله‌هاي او رو به پايان باشد، هنگام پركردن، آسيب بيشتري مي‌بيند. دشمنان شما در كانتراسترايك نيز اين كار را مي‌كنند. اگر شما پشت سر هم به آن‌ها شليك كنيد، در پشت ديوار پنهان مي‌شوند يا به جايي فرار مي‌كنند و تفنگ خود را در صورت رو به پايان بودن گلوله‌ها پرمي‌كنند. پس اولويت در فرار و قرار گرفتن در يك جاي خوب و سپس پر كردن تفنگ است.

    - شليك به سوي او و آسيب‌ديدگي زياد باشد، پنجاه درصد به ارزش مبارزه افزوده مي‌شود و بيست‌درصد از ارزش فرار و ريستوك كم مي‌شود. چون وقتي به سوي او شليك مي‌كنيد، هنگام فرار اگر در جاي مناسبي نباشد، آسيب‌پذيرتر مي‌شود و زماني كه تفنگ خود را پر مي‌كند، شما آسان‌تر مي‌توانيد به سوي او شليك كنيد.

    - اگر در يك‌بار شليك پنجاه‌درصد آسيب ببيند، پنجاه‌درصد به ارزش فرار و بيست‌درصد به ارزش ريستوك افزوده مي‌شود و پنجاه‌درصد از ارزش مبارزه كم مي‌شود. گاهي با يك سلا‌ح قوي مي‌توانيد آسيب بيشتري به دشمنتان برسانيد. اگر در بازي كانتراسترايك، يك نارنجك به سمت دشمن پرتاب كنيد، بيش از نيمي از نيروي او كم مي‌شود. اگر او در جاي مناسبي نباشد، چون بيش از نيمي از نيروي خود را از دست داده‌است، بايد فرار كند و تنها زماني كه موقعيت او از موقعيت شما بهتر است، شليك مي‌كند. در اينجا فرار ارزش بيشتري دارد.
     

    فایل های ضمیمه:

    • ?????1.jpg
      ?????1.jpg
      اندازه فایل:
      12.5 KB
      نمایش ها:
      2
  12. ppn

    ppn کاربر فعال بازیهای کامپیوتری کاربر فعال

    تاریخ عضویت:
    ‏8 دسامبر 2006
    نوشته ها:
    1,273
    تشکر شده:
    5
    محل سکونت:
    Hell
    امیر من دوتا رو خواندم .
    لطفا از این به بعد Mp3 بنویس آدم حوصله اش سر می ره .
     
  13. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    مطالب واسه خود من خيلي جالب بود حالا اگه دوس ندارين كه بقيه شو نميزارم.
     
  14. avajang.com .leftavajang.com.right
  15. ppn

    ppn کاربر فعال بازیهای کامپیوتری کاربر فعال

    تاریخ عضویت:
    ‏8 دسامبر 2006
    نوشته ها:
    1,273
    تشکر شده:
    5
    محل سکونت:
    Hell
    نه ! بنویس خلاصه تر بنویس !
     
  16. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    بازي‌هاي كامپيوتري اكشن، ماجرايي - اكشن و تيراندازي، بيش از بازي‌هاي ژانرهاي ديگر از هوش مصنوعي استفاده مي‌برند. بازي‌هاي مسابقه‌اي و استراتژيك نيز مي‌توانند از هوش مصنوعي براي قوي‌تر كردن رقيبانشان استفاده كنند. نمونه خوب بازي‌هاي مسابقه‌اي، Need For Speed UnderGround2 است. در اين بازي، هنگامي كه در شهر مشغول رانندگي هستيد، مي‌توانيد با اتومبيل‌هاي مسابقه‌اي ديگر كه مانند شما در شهر حركت مي‌كنند مسابقه دهيد. براي اين‌كار بايد به آن اتومبيل نزديك شويد و هنگامي كه منوي پرسش براي پذيرش مسابقه را ديديد، كليد Enter را فشار دهيد.

    هنگامي كه جلو هستيد بايد فاصله شما از آن اتومبيل بيش از يك مقدار خاص باشد تا برنده شويد و زماني كه پشت سر او هستيد، نبايد فاصله‌ شما از اين مقدار بيشتر باشد. اگر همزمان با مسابقه به نقشه كوچك گوشه مانيتور نگاه كنيد، مي‌بينيد زماني كه راننده رقيب از شما عقب‌تر است، كوتاه‌ترين مسير را براي رسيدن به شما از ميان خيابان‌هاي مختلف كه به هم راه دارند انتخاب مي‌كند و زماني كه از شما جلوتر است، هنگام رسيدن به تقاطع‌ها ناگهان تغيير مسير مي‌دهد تا شما را سردرگم كند.

    در بازي Need For Most Wanted، به نظر مي‌آيد پليس‌ها در تعقيب و گريز شما و يافتن مسير، ضعيف‌تر عمل مي‌كنند. البته شايد شركت EA، خود اين‌گونه خواسته است. به غير از اين، بازي‌هاي ماجرايي معمولا‌ً نيازي به هوش مصنوعي ندارند؛ چرا كه كنترل شخصيت بازي به عهده شماست و آنچه بايد از پيش روبرداريد، پازل‌هاي طراحي شده است نه دشمنان يا هيولا‌هايي كه به هوشمند‌سازي نياز داشته باشند؛ مانند بازي سايبريا.
    هوش مصنوعي، بيشتر در بازي‌هاي تيراندازي اول شخص (FPS) گسترش يافت. يك بازي تيراندازي اول شخص بيشتر از يك موتور براساس هوش مصنوعي رويدادگر استفاده مي‌كند كه رويدادها و واكنش‌ها مي‌توانند مانند الگوي زير باشند:

    - هنگام ديده شدن: يورش با مناسب‌ترين سلا‌ح

    - هنگام آسيب‌ديدگي زياد: فرار و بازگرداندن نيرو. مانند استفاده از كيت‌هاي سلا‌متي در برخي بازي‌ها.

    - نبود گلوله: پيدا كردن گلوله

    شايان ذكر است كه استفاده از روش محفظه‌هاي سوراخ مي‌تواند هوش مصنوعي در اين بازي‌ها را انعطاف‌پذيرتر كند.

    پيدايش و پيشرفت هوش مصنوعي
    در اواسط دهه 1990، يك بازي تيراندازي اول شخص منتشر شد كه به كاربر امكان مي‌داد بازي را براي خود سفارشي (Customize) كند. اين بازي، Quake بود كه در فناوري ساخت بازي‌هاي كامپيوتري يك نوآوري محسوب مي‌شد. Quake اولين بازي سه‌بعدي واقعي است. به اين معني كه به‌صورت بلا‌درنگ در سه بعد رندر مي‌شود. (پيش از آن spiritها يا گرافيك‌هاي دوبعدي به صورت سه‌بعدي شبيه‌سازي مي‌شدند). چيزهاي ديگري نيز در اين بازي وجود داشت كه موردتوجه قرار گرفت؛ مانند نشانه گرفتن سلا‌ح به بالا يا پايين. زيرا حركت‌دادن سلا‌ح به بالا‌ يا پايين نيازمند پردازش در بعد سوم، يعني عمق يا ارتفاع در يك محيط سه‌بعدي است.

    بازي Quake از موجودات مجازي هوشمند (bot) هر چند با هوش مصنوعي كم، بهره برده بود. هوش مصنوعي يكbot در بازي‌هاي تيراندازي اول شخص، مي‌تواند در دو بخش بررسي شود: يكي ناوبري و حركت، و ديگري مبارزه. اگر بخواهيم رفتار bot نزديك به رفتار يك انسان باشد، پياده‌سازي آن بسيار پيچيده‌تر از هوش‌مصنوعي در مبارزه است. هر چند پياده‌سازي هوش مصنوعي در مبارزه نيز با هر استاندارد و روشي آسان نيست.

    براي اين‌كه بات‌ها بتوانند حركت كنند، بايد بتوانند درباره اشيا و موجودات پيرامون خود ياد بگيرند. اين ايده بسيار اساسي، مي‌تواند به بخش‌هاي بيش‌تري مانند قابليت آناليز هنگام حركت در يك جهت خاص و سپس قابليت پيدا كردن اشيا و شخصيت‌هاي مجازيِ مقابل در يك مرحله بازي گسترش يابد. اين ايده‌ها شايد ساده به نظر برسند، ولي واقعاً اين‌گونه نيست؛ چرا كه يك bot بايد بتواند در برابر دو چيز واكنش درستي داشته باشد: ديوارها و فضاهاي خالي.

    ديوارها شامل همه چيزهايي است كه نمي‌توان از آن عبور كرد؛ مانند خود يك ديوار، نرده، شخصيت‌هاي مجازي، جعبه‌ها، پله‌هاي رو به بالا‌ و ... فضاهاي خالي نيز هر جايي است كه زمين همواره نيست يا دچار شكستگي است؛ مانند يك چاله، پله‌هاي رو به پايين و ... . براي رويارويي با اين دو مانع، يك روش خوب، افزايش كارايي تابع جستجو است. اين تابع كه در بازي Quake معرفي شد، به بات امكان مي‌دهد يك خط را از يكي از بُعدهاي X-Y-Z تا بُعد بعدي جستجو كند و اطلا‌عاتي مانند اين‌كه <اين خط به كجا مي‌رود، چه چيزي آن را قطع مي‌كند و ...> را دريافت كند.

    دو روش براي گذشتن يكبات از يك مرحله، بيشتر مورد استفاده قرار مي‌گيرد: روش نخست از گره‌هاي گراف وضعيت و روش دوم از مسيرهاي (path) آن استفاده مي‌كند. در يك محيط براساس روش گره، گره‌ها در قسمت قوانين بهينه‌سازي مرحله (level) كه به وسيله سازنده يك bot تعريف شده است قرار دارند. هر گره مي‌تواند اطلا‌عات بات درباره قسمت خاصي از محيط را بدهد. وضعيت مبارزه، كاربردهاي زيادي براي تعدادي از الگوريتم‌هاي جستجو يا پروسه تصميم‌گيري دارد. در يك مبارزه، بايد براي تشخيص اين‌كه كدام كار براي بات بهتر است حركت‌هاي رقيب پيش‌بيني شود.

    روش Minimax، در مواقعي كه يك تابع هيورستيك خوب (يك هيورستيك برخلا‌ف الگوريتم، ممكن است به يك پاسخ قطعي نرسد) در دست باشد، مي‌تواند يك حركت خوب را انجام دهد. از آنجا كه minimax روش كندي است، مي‌توان از Partial Minimax استفاده كرد كه در الگوريتم‌هاي تصميم‌گيري به كار مي‌رود؛ هر چند اين روش هنوز چندان پذيرفته نشده است.

    پژوهشگران هوش مصنوعي پيشنهاد مي‌كنند، تنها زماني از Partial Minimax استفاده كنيد كه يك گزينه بديهي در دست داشته باشيد (زماني كه متغير minimax با ارزش بيشتر كاملا‌ بهتر از متغير ديگر باشد). در غير اين‌صورت اگر ارزش همه متغيرها نزديك به هم است، از استراتژي ديگري استفاده كنيد. حال آن‌كه در يك بازي بلا‌درنگ براي يكbot معمولا‌ً گزينه بديهي وجود ندارد تا آن را برگزينيد. هر گزينه به يك استراتژي متفاوت وابسته است كه bot مي‌تواند آن را انتخاب كند.

    شايد بسياري از طرفداران روش minimax به ارزش سرعت، هنگام بررسي كارايي يك بات در بازي بلا‌درنگ واقف نيستند؛ مانند كمترين زماني كه يك بات نياز دارد تا درباره يك تصميم بينديشد، گزينه‌هاي بيشتري كه براي تصميم‌گيري ايجاد مي‌كند، كيفيت واكنش بهتر و سطح خبرگي. به ياد داشته باشيد كه يك بات در برابر مغز يك انسان كه مي‌تواند دنياي سه‌بعدي را با كمك حس و تخيل خود تفسير كند، قرار مي‌گيرد. براي نمونه در يك مبارزه، يك بات نياز به نشانه‌گيري به سوي دشمن خود، پيش‌بيني حركت آن‌ و... دارد كه همه، بدون داشتن درك واقعي از محيطي كه در آن قراردارد انجام مي‌شود.

    براي دستيابي به بيشترين سرعت، بيشتر از الگوريتم *A استفاده مي‌شود. هر چند اين الگوريتم پيشرفته نيست، ولي سرعت بالا‌يي دارد. پيچيدگي زماني اين الگوريتم ((O(log h(n است كه (h(n پيچيدگي تابع هيورستيك است. *A يك الگوريتم جستجوي "اول عمق" است كه هيورستيك آن را كنترل مي‌كند و مي‌تواند مناسب‌ترين شاخه بعدي گراف را حدس بزند و در هر عمق، تنها شاخه‌اي كه ارزش هيورستيك بهتري دارد، گسترش مي‌يابد.

    نظريه‌ها و روش‌هاي رايج
    در ابتدا كمي از بازي‌ها از روش‌‌هاي استاندارد هوش‌مصنوعي استفاده مي‌كردند. يكي از آن بات‌ها براي بازي Quake II ساخته شده بود كه براساس شبكه‌هاي عصبي مي‌توانست محيط اطراف خود را بشناسد.

    اين موجود، Neuralbot نام گرفت كه موردتوجه پژوهشگران هوش مصنوعي و بازي‌هاي كامپيوتري واقع شد. آقاي Elusive طراح و سازنده چندين بات است كه مشهورترين آن‌ها را در بازي Quake III Arena كه شركت id Software ساخته است مي‌بينيم. او درباره Neuralbot مي‌گويد:

    برخي از طرفداران اين بات بر اين عقيده‌اند كه دوستداران بازي‌ها به دنبال موجودي كاملا‌ هوشمند و شبيه انسان نيستند و تنها مي‌خواهند مبارزه خوب و سختي با آن‌ها داشته باشند. آنان مي‌گويند يك هوش مصنوعي خوب نبايد يك شبيه‌سازي از هوش واقعي باشد. بلكه بايد اشتباه در آن كمتر باشد؛ به گونه‌اي كه بازي را جذاب وسخت كند.

    اما بسياري از برنامه‌نويسان بازي‌هاي كامپيوتري، با پژوهشگران هوش مصنوعي بازي‌هاي كامپيوتري همسو نيستند. آن‌ها موجودات هوشمند مجازي خود را تا آنجا كه مي‌توانند، شبيه انسان مي‌سازند و سپس آن‌ها را در مقابل انسان آزمايش مي‌كنند. براي نمونه Elusive مي‌گويد:

    يكي از چيزهايي كه در هوش مصنوعي بازي‌هاي كامپيوتري هنوز مورد پژوهش و بررسي قرار مي‌گيرد، ساختن يكbot است كه هرگز <تقلب> نمي‌كند! بيشتر بات‌ها تابع‌هايي دارند كه براي هرچه بهتر بازي كردن، داده‌ها را از بازيكنان ديگر (انسان يا bot) استخراج مي‌كنند؛ كه اين كار يك تقلب محسوب مي‌شود. در روش آزمون و خطا، موجودات هوشمند مجازي نبايد وابسته به دانش خاص بازيكنان ديگر باشند. براي آن‌كه اين بات‌ها وابسته به داده‌هاي شخصيت‌هاي مجازي ديگر نباشند، بايد توانايي تشخيص و سرعت آن‌ها افزايش يابد. نتيجه كار، باتي خواهد بود كه هر چند نسبت به بات‌هاي ديگر ويژگي‌هاي غيرانساني بيشتري دارد، هنوز هم رقيب سرسخت و خوبي است.

    Elusive بات‌هايي براي بازي Quake III ساخت، كه هرگز تقلب نمي‌كنند. براي هر چه شبيه‌تر كردن بات‌ها به انسان، آن‌ها به گونه‌اي طراحي شده‌اند كه نياز به پيش تعريف مسيرها در هر مرحله دارند. سپس دستورهاي نوشته شده به بات مي‌گويد چگونه مسيرها را زماني كه مبارزه‌اي درجريان نيست ناوبري كند. برخي براين باورند كه اين روش نيز براي بات‌ها نوعي تقلب است. چون آن‌ها قبلا‌ محيط را شناخته‌اند و همزمان با رويارويي با محيط، تصميم نمي‌گيرند.

    ولي در مقابل، اگر يك بازيكن واقعي هم چندبار يك مرحله از بازي را تجربه كند، با محيط آشنا مي‌شود و هر چه را كه در پيرامونش قرار دارد مي‌شناسد. پس چرا يك بات بايد هر بار كه وارد محيطي مي‌شود كه قبلا‌ هم در آنجا بوده است، همه اطلا‌عات آنجا را دوباره ياد بگيرد؟ با توجه به اين مسئله مي‌توان موجودات هوشمند مجازي‌اي ساخت كه فهم انساني از يك مرحله دارند و مي‌توانند زمان بيشتر پردازنده را به كارهاي ديگر اختصاص دهند تا دوباره كاري.
    بات‌هاي امروزي، بيشتر مانند انسان رفتار مي‌كنند. در اين بازي‌ها هوش مصنوعي، متفاوت از هوش مصنوعي دانشگاهي است. يك بات واقعاً چيزي ياد نمي‌گيرد. ولي مي‌كوشد وانمود كند كه يك انسان واقعي است.

    پژوهشگران هوش مصنوعي، از صنعت ‌بازي‌سازي دل خوشي ندارند. چون شركت‌هاي بازي‌سازي از بسياري از روش‌هاي ساده استفاده مي‌نمايند و روش‌هاي پيشرفته را رها مي‌كنند. ولي هنوز هم چيزهايي درباره بات‌ها وجود دارد كه مي‌توان از سازندگان بازي‌هاي كامپيوتري ياد گرفت.
     
  17. Ostadb

    Ostadb Registered User

    تاریخ عضویت:
    ‏5 ژوئن 2005
    نوشته ها:
    870
    تشکر شده:
    61
    Render Ware AI) RWAI) ميان‌افزاري براي توسعه‌دهندگان هوش مصنوعي در بازي‌هاي كامپيوتري است كه شركت فرانسوي Kynogon ساخته و بخشي از بسته نرم‌افزاري پلتفرم RenderWare، محصول اين شركت است كه شامل ابزارهاي گرافيكي، صوتي و ... براي ايجاد محتوا در بازي‌هاي كامپيوتري است.

    كيت توسعه نرم‌افزاري (SDK) اين نرم‌افزار متمركز بر كمك به توسعه‌دهندگان بازي‌هاي كامپيوتري براي طراحي و پياده‌سازي رفتار كاراكترها در بازي است. براي اين منظور، RWAI SDK سرويس‌هايي براي مدل‌سازي محيط، اشياي موجود در محيط و سرانجام كاراكترها و رفتارهايشان در اختيار برنامه‌نويسان مي‌گذارند.

    RWAI اشيا را در يك دنياي مجازي، يك موجوديت (entity) در دو فرم اصلي در نظر مي‌گيرد:
    Thinking entity و Passive entity

    Thinking entity يا موجوديت متفكر بيشتر در بازي‌هاي Non-Player Character) NPC) استفاده مي‌شود. موجوديت متفكر يك آبجكت با نام brain (مغز) دارد كه قابليت تصميم‌گيري كاراكتر را فعال مي‌كند و موجب بروز رفتار در آن‌ها مي‌شود.

    موجوديت‌هاي منفعل، آبجكت‌هايي در دنياي مجازي هستند كه با موجوديت‌هاي متفكر ايجاد مي‌شوند و با آن‌ها در تعاملند، ولي تحت كنترل RWAI نيستند. RWAI SDK سرويس‌هاي زير را در يك محيط چند لا‌يه‌اي فراهم مي‌كند:

    §‌‌‌ لا‌يه تصميم (Decision): اين لايه از شي مغز كه پيشتر گفته شد، پشتيباني مي‌كند. زماني كه يك موجوديت متفكر ايجاد مي‌شود، يك شي مغز نيز براي آن موجوديت ساخته مي‌شود. شي مغز، كار تصميم‌گيري را انجام مي‌دهد.

    §لا‌يه عامل(Agent): اين لايه از رفتارهايي كه از موجوديت‌ها سر مي‌زند پشتيباني مي‌كند. منظور از agent در ميان‌افزار RWAI مجموعه‌اي از كارها است كه بازتاب‌دهنده رفتاري سطح بالا‌ است.

    مي‌توان از Go To (رفتن به جايي ...)، دنبال‌كننده (Follower)، دنبال كردن مسير (Follow Path)، حركت در جهت‌هاي مختلف (Wanderer)، گريختن (Runaway)، پنهان‌كننده (Hider) و ... به عنوان نمونه‌هايي از agentهاي اين ميان‌افزار نام برد.

    §لا‌يه خدمات (Service): اين لا‌يه تعدادي اشياي مديريت‌كننده را دربردارد. براي نمونه، مديريت‌كننده NextMove Manager براي يافتن مسير حركت كاراكترها در دنياي مجازي،Graph Manager براي مديريت داده‌هاي يك مسير كه منعكس‌كننده ويژگي‌هاي دنياي مجازي در هر مسير هستند و NeuralNet Manager براي مديريت داده‌هاي شبكه‌هاي عصبي استفاده شده در RWAI.


    §لا‌يه معماري (Architecture): كار معرفي، بروز كردن و پايان دادن به لا‌يه‌هاي تحت كنترل موتور بازي در RWAI را انجام مي‌دهد و مسئوليت تبادل اطلا‌عات ميان موتور بازي و ديگر لا‌يه‌هاي ميان‌افزار را نيز برعهده دارد.
    در تصوير 3 چگونگي ارتباط لا‌يه‌ها با موتور بازي نشان داده شده است.


    موتور بازي، داده‌هاي وضعيت كاراكتر و محيط مجازي را فراهم مي‌كند و RWAI ورودي را در لا‌يه‌هاي متناسب با آن منتشر مي‌سازد و درخواست‌ها را براي داده‌هاي بيشتر يا كنترل كاراكترها استخراج مي‌كند. RWAI سرويس‌ها و امكاناتي براي هوش مصنوعي فراهم مي‌آورد. يكي از اين سرويس‌ها، مسيريابي در محيط سه بعدي است كه به وسيله تعامل اشياي موجود در لا‌يه‌هاي سرويس‌هايي كه گفته شد پشتيباني مي‌شود. يكي از اشياي موجود در اين ميان‌افزار، شي CNextMoveManager است كه سرويس اصلي مسيريابي در طول گرافي كه از الگوريتم A استفاده كرده است را برعهده دارد. با در دسترس‌بودن سورس‌كد شي CNextMoveManager، مي‌توان اين پردازنده را چنان كه موردنياز است، در بازي تغيير داد.

    مديريت موجوديت مي‌تواند با استفاده از Entity API انجام شود. هم موجوديت متفكر و هم موجوديت منفعل بايد در دنياي مجازي قابل شناسايي با RWAI ايجاد شوند تا بر چگونگي تصميم‌گيري و سرويس‌هاي قابل ارائه تاثير بگذارند.

    ميان‌افزار RWAI يك كيت توسعه نرم‌افزاري قدرتمند است و زماني كه همراه با ديگر كامپوننت‌هاي سكويRenderWare استفاده شود، راهبردي قابل اعتماد و قوي فراهم مي‌كند. حتي زماني كه از RWAI به تنهايي استفاده مي‌شود و موتور بازي سرويس‌هاي پلتفرم RenderWare را ايجاد مي‌كند، (SDK) نرم‌افزار، قابليت پياده‌سازي رفتار كاراكتري پيچيده و پيشرفته را دارد.
    ***********
    منابع
    Anders Petersson:Artificial Intelligence in games
    www.worldforge.com
    Chris Moyer: Bot, Anyway? How Intelligent is a Game
    www.tcnj.com
    www.gamasutra.com
     

    فایل های ضمیمه:

    • ?????3.jpg
      ?????3.jpg
      اندازه فایل:
      9.1 KB
      نمایش ها:
      2