بازیهای تأثیرگذار در هوشمصنوعی
هوشمصنوعی در بازیهای تیراندازیِ اول شخص
هوشمصنوعی در بازیهای استراتژیِ بیدرنگ
هوشمصنوعی در بازیهای ورزشی
بازیهای تأثیرگذار در هوشمصنوعی
هنگامی که در مورد انقلاب هوشمصنوعی صحبت میشود، باید به بازیهای مهمی
که در تاریخچه این انقلاب سهم بسزایی داشتهاند نیز اشاره شود.
یکی از مهمترین این بازیها که هوشمصنوعی را در دهه 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میرساند؛ زیرا در ازدحامِ
نقشه، مهمترین نکته در حرکت، تشخیص مواجهاتِ این واحدهای کوچک در حین
عبور بین دو نقطه با هم و متعاقب آن اداره آنها است به نحوی که به هم
برخورد نداشته باشند.
این الگوریتمها معمولاً بر پایه نقشه بازی استوار است که این مسئله خود
توسط عناصری گرافیکیِ رشتهمانند و چهارگوش معرفی میشوند. این رشتههای
مستطیلشکل توسط تورهایی شبکهای، عوامل تصحیح شده از لحاظ اندازه را در
محیط تعیین و معرفی میکنند. در سطوح بالاتر سلسله مراتب هوشمصنوعی این
بازیها، ماژولهایی طراحی شده است که وظیفه آنها تعیین مسائل اقتصادیِ
بازی، توسعه و از همه مهمتر، مدلی برای آنالیز نقشه بازی، است. این همان
ماجولی است که نوع زمین هر ناحیه از نقشه و عناصری که روی آن ساخته میشوند
را آنالیز میکند. بهطور مثال، در محلی از نقشه که دریا قرار دارد، این
ماجول اجازه میدهد ناوگان دریایی ساخته شود. این ماجول زمان انجام ساختن
یک شهر یا دیوارهای حفاظتی و باروها را نیز تعیین میکند.
هوشمصنوعی در بازیهای ورزشی
اساساً، در اکثر بازیهای ورزشی، ما با مقدار زیادی تقلب از جانب
هوشمصنوعی روبهرو هستیم! بهطور مثال بازیهای ماشینسواری را در نظر
بگیرید. هوش مصنوعی، از کل اشکال هندسی نقشه بازی، فقط چندضلعیهایی را
شناسایی میکند که متعلق به جادهای است که حریف کامپیوتری در آن مشغول
راندن است، و کاری به دیگر جاهای نقشه بازی (که همان جاده باشد) ندارد. در
نظر بگیرید که کامپیوتر توانایی انجام دو نوع رانندگی در پیچهای تعبیه
شده در بازی را دارد: نوع اول که در غیاب حریف دیگر رخ میدهد، نمایانگر
بهترین رانندگی در این پیچها است و نوع دوم زمانی است که او میخواهد در
این پیچ، همزمان از حریفش سبقت بگیرد.
در این مثال کل جاده به سکتورهای متناسب کوچکی تقسیمبندی میشود و
پارامترهای سطح جاده به مقادیر عددیِ قابل ترجمه تبدیل میشوند و مسیر هر
جزء کوچک جاده محاسبه میشود. سپس با ترکیب این اجزای، بهصورت بصری، کل
جاده بازسازی میشود و مجاورت ماشینها روی آن با هم نیز در این ترکیب
نمایشداده میشود.
محبوبترین الگوریتمهای هوشمصنوعی به کار رفته در بازیهای کامپیوتری
در ادامه این مقاله دو نمونه از محبوبترین الگوریتمهای هوشمصنوعی معرفی
میشود که به وفور از آنها در طراحی هوشمصنوعی بازیهای کامپیوتری
استفاده میشود. با دانستن مطالبی در مورد این الگوریتمها، شاید شما هم
ترغیب شوید با طراحی یکی از آنها، یک بازیِ 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) نامیده میشود، به این صورت کار میکند که چندین
دایره متوالی را در نقطه شروع میسازد و در هر مرحله دایرههای دیگری
میسازد که قطر آنها بزرگتر از دایرههای قبلی است. این دوایر متوالی و
عناصر مربوط به هر یک، بهتدریج بزرگتر میشوند و دارای شاخصهای بزرگتری
نیز میشوند.
حال، با حرکت به سوی طرف مقابل و با پیروی از این قانون که در هر قدم ما به
نقطهای نزدیکتر از نقشه حرکت میکنیم و شاخص این نقطه کوچکتر است، ما
به نقطه شروع میرسیم. در نتیجه توسط عناصری که توسط آنها ما نقشه را طی
کردهایم و بار دیگر از آن مسیر بازگشتهایم، کوتاهترین مسیر بین نقطه
شروع و نقطه هدف به وجود میآید.
با آزمایش روشی که این الگوریتم کار میکند، متوجه خواهیم شد که گرچه این
روش دارای برتری سادگی است، مشکل جدیای هم دارد. مسیری که این الگوریتم
در مثال ذکرشده پیدا کردهاست تنها از پنج خانه نقشه بازی تشکیل شده و
این سیستم برای این کار 81 خانه را مورد آزمایش قرار داده است.
حال فرض کنید که در نقشهای که متشکل از 256 خانه عرضی و طولی است، باید
65536 خانه مورد آزمایش قرار گیرد تا مسیر مشخص گردد! در شکل 4 میبینید که
دایره شاخص شماره 4 توسط یک الگوریتم مسیریابی ساده به هدف مورد نظر
رسیدهاست.
باید توجه داشت در این الگوریتم بهترین راه الزاماً نزدیکترین راه نیست.
این الگوریتم غیر از مسیریابی، میتواند فاکتورهای دیگری همانند نوع زمین
بازی را نیز مشخص کند. (به طور مثال، یک تانک در بازیهای استراتژی در
زمین معمولی تندتر از زمین گلآلود حرکت میکند).
از دیگر استفادههای این الگوریتم، میتوان به تغییر محدودیت زاویههای
دوربین و نمایش تعداد بیشتری از واحدها در یک زمان، اشاره کرد. همچنین این
الگوریتم شرایطی را فراهم میکند که واحدها نتوانند از نقاط غیرقابل
عبور نقشه عبور کنند. البته نباید فراموش کرد که بهترین استفاده از این
الگوریتم همان راهیابی بین دو نقطه است. در زیر شبهکدها یا Psudocodeهای
الگوریتم *A را مشاهده میکنید:
به علت مشکل محاسباتی که در بالا برای این الگوریتم توضیح داده شد، روشهای
ویژهای مدنظر قرار گرفته شده است که یکی از آنها روش بهینهسازی است.
در واقع تمام تلاشهای یک سیستم هوشمصنوعی که از این الگوریتم استفاده
میکند، بدون روش بهینهسازی به علت عملیاتهای ناکارآمدی که برای تعیین
مسیر میشود، از بین میرود. به همین منظور از مدتها پیش، متدهای
برنامهنویسی متعددی برای رفع این نقیصه طراحی شد که یکی از آنها همین روش
بهینهسازی بود. این روش به دو صورت این نقیصه را رفع میکند:
● بهینه سازی خودِ عملیات جستوجوی الگوریتم
● بهینه سازی ساختار اطلاعاتی
در مورد اول، تمام نقشه بازی به نواحی کوچکتری تقسیم میشود و الگوریتم
نیز به دو بخش مجزا تقسیم میشود. قسمت اول دنبال مسیری میگردد که باید از
آن ناحیه عبور کند. سپس قسمت دوم حرکت را برای هر منطقه از نقطه ورود به
نقطه هدایت میکند. در نتیجه در هر ناحیه، با استفاده از الگوریتم *A مسیر
مطلوبی به دست میآید. با این روش به طور عمده میدان جستوجو را محدودتر و
منابع محاسباتی را کمتر میکنیم.
در واقع استفاده از این روش درست مانند دنیای واقعی، هنگام رفتن فردی از یک
جای شهر به جای دیگر است. در واقع کسی که میخواهد از نقطهای از شهر به
جای دیگر آن برود، تمام مسیر را با دقت مساوی طی نمیکند، بلکه به جای آن
به جاهای شناسایی مشخصی میرسد و از آنجا برای ادامه مسیر خود و میزان راه
باقیمانده تا نقطه بعدی تصمیمگیری میکند.
فاکتور مطلوبسازیِ دیگر انتخاب مناسب عملیات و پارامترهای جستوجوگر است
که تعیین میکند جستوجو تا چه محدودهای از نقشه بازی صورت گیرد.
الگوریتم ماشین با حالات محدود
الگوریتمهای ماشین با حالات محدود (Finite State Machines) مدلهای
رفتاریای هستند که از موقعیت (State)، انتقال این موقعیت (Transition)
و ایجاد یک عمل (Action) تشکیل میشود. در یک موقعیت، اطلاعاتی قبلی
ذخیره میشود.
به طور مثال، اطلاعات ورودی از شروع سیستم تا زمان حال در این بخش قرار
میگیرد. در مرحله انتقال، این موقعیت تغییر میکند و بسته به شرایط،
انتقال مییابد و در مرحله آخر این موقعیتِ منتقلشده که خود نماینده یک
حالت بوده است، یک عمل متناسب با آن موقعیت را ایجاد میکند. در شکل 5،
نمودار حالتی این الگوریتم را در باز و بسته کردن یک در مشاهده میکنید.
دلیل نامگذاری این الگوریتم نیز مقایسهای است که آن را از مغز انسان
متمایز میکند. همان طور که میدانید مغز انسان در هر لحظه میتواند عملیات
ذکر شده در بالا را در تعداد نامتناهی انجام دهد. اما کامپیوتر و
هوشمصنوعی، هرچند هم که پیشرفته باشد، تنها قادر است تعداد معینی از این
عملیات را انجام دهد.
با اینکه الگوریتمهای سادهای هستند، در عین حال یکی از پرکاربردترین و
مؤثرترین روش برنامهریزی هوشمصنوعی میباشند. برای هر موقعیت در یک بازی
کامپیوتری میتوان مجموعه اعدادی از چگونگی آن لحظه قائل شد.
برای مثال، یک شوالیه را در نظر بگیرید. او در بازی میتواند زره بپوشد، به
عنوان نگهبانی عمل کند، حمله کند یا در حال استراحت باشد.
یا در یک بازی RTS یکی از مردم عادی شما میتواند چوب جمع کند، خانهای
بسازد یا در برابر حمله دشمن از خود دفاع کند. بسته به موقعیت هر یک از این
دو شخصیت، اشیا و اجزای بازی میتوانند عکسالعملهای متفاوت، اما محدودی
داشته باشند.
در واقع روش FSM به ما امکان میدهد رفتار این اجزا را در بازی به قسمتهای
کوچکتری مجزا کنیم و سپس با سهولت بیشتری این قسمتها را Debug و Extend
کنیم. برای موقعیت هر شیء در لحظه آغازین و لحظه بعد از انجام عمل مورد
نظر، کدی در نظر گرفته میشود. برای انتقال موقعیتها نیز کدهایی در نظر
گرفته میشود. این کدها در هر فریم از بازی مورد استفاده هوشمصنوعی قرار
میگیرد و با کدهای آمده از محیط بازی نیز خود را تطبیق میدهد.
جموعه کامل و بی نظیر فیلمهای چارلی چاپلین
?107شاهکار سینمای ایران ?
مجموعه بی نظیر 100 فیلم خارجی
??? مجموعه ی کامل مستند راز 2 ???
100 فیلم برتر تاریخ سینمای جهان (با دوبله فارسی)
??? مجموعه کامل و بی نظیر فیلمهای چارلی چاپلین ???
??? فروش پک آموزش بدنسازی P90X منو اورجینال برای اولین بار در ایران ???
????? کاملترین سری فیلم های لورل و هاردی در 42 دی وی دی با منو اصلی ?????
فروش ویژه و استثنایی آموزش های شعبده بازی و تردستی بالغ بر 140 آموزش فوق العاده برای اولین بار در ایران
توضیحات خلاصه محصول:
» محتوی 13 DVD
» مجموعه شامل کلیه فیلمهای چارلی چاپلین (87 فیلم) به صورت کامل بوده و برای اولین بار توسط فروشگاه ما ارائه می شود.
http://www.chaplin.ir/
»» دقت داشته باشید برخی از دیسکهای این مجموعه با فرمت Divx ارائه شده ، اگر قصد پخش این مجموعه را در DVD پلیرهای خانگی دارید از پشتیبانی این فرمت توسط دستگاهتان اطمینان حاصل کنید .
شامل :
تمامی فیلمهای از سال : 1914 تا 1954
تا اواخر دوران بازیگری این تک ستاره به یا دماندنی
توضیحات خلاصه محصول:
» محتوی 13 DVD
» مجموعه شامل کلیه فیلمهای چارلی چاپلین (87 فیلم) به صورت کامل بوده و در بسته بندی نفیس ارائه می شود.
http://www.chaplin.ir/
و شما دعوت میکنم که یک سری به سایت های ما بزنید
www.takbuy.net
شما دراین سایت مجموعه کامل از تمامی
فیلم ها سریال های روز دنیا را در اختیار دارید
با بهترین کیفیت و قیمت مطمئنن یک
یک بار بازدید از این سایت شما را مشتری
همیشگی این سایت میکنه
www.takbuy.net
salam doost aziz
mamnoon az inke be blog man sar zadin va mano lik kardin manam link shoma ro dar payvand ham gozashtam.
omidvaram movafagh bashin
سلام کیا
ممنون از این که به وبلاگ من سر زدی.
وبلاگ خیلی خوب و مفیدی داری، تبریک میگم.
من هم لینکت کردم.
موفق و پیروز باشی.