ایرانی توانمند
Business is booming.

مقدمه ای بر نحوه ی کاربرد هوش مصنوعی در بازی

8

مقدمه ای بر نحوه ی کاربرد هوش مصنوعی در بازی

حتما در دوران کودکی بازی O – X را انجام دادید . به طور مثال شما با حرف O و دوستتون با حرف X خونه های یه جدول ۹ خونه ای را پر میکردید. و هرکس که میتونست با حرف مربوط به خودش سه خونه پشت هم رو پر کنه برنده میشد!

حالا حالات ممکن صفحه را در حین اجرای بازی در نظر بگیرید. . این حالات محدود و قابل پیش بینی هستند و تعداد آن ها ۱۹۶۸۳ حالت است (برای محاسبه، برای هر یک از ۹ تا خانه جدول می توان سه حالت خالی، X و O را در نظر گرفت پس تعداد کل حالات ۹^۳ خواهد بود).

میشه برنامه ای نوشت که تمام این حالات را در نظر می گیرد و در ازای هر حالت خاص، رفتاری هوشمندانه را انجام می دهد. شاید عدد ۹ ^۳ به نظرتون بزرگ بیابید. اما حقیقت این است که با در نظر گرفتن قوانین بازی می توان این حالات را خلاصه تر کرد. نکته ی مهم در این برنامه، محدود بودن حالات ممکن است. ببرای همین میشه برنامه ی این بازی را به گونه ای نوشت که هیچگاه بازنده نباشد.

(در نظر بگیرید که نوشتن چنین برنامه ای برای بازی شطرنج تقریباً غیرممکن است(

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

پس ما از یک برنامه ی هوشمند و یا به عبارت دیگر هوش مصنوعی، قابلیت های مختلفی مثل استنتاج، حدس، خلاقیت و یادگیری را انتظار داریم. اما آیا بواقعا میشه چنین انتظارهایی را از برنامه های کامپیوتری داشت؟

عده ای از ریاضی دانان و دانشمندان علوم کامپیوتر معتقد بودند چنین کاری غیرممکن است به این علت که کامپیوتر صرفاً می تواند دستورهای برنامه نویس را – که در قالب یک الگوریتم به آن داده می شود -انجام دهد. پس نمی توانیم از یک برنامه، انتظار انجام کاری را داشته باشیم که در قالب الگوریتم به او دستور داده نشده است. در حقیقت برنامه های کامپیوتری نمی توانند کارهایی غیرقابل پیش بینی انجام دهند، پس نمی توانند خلاقیت داشته باشند.

پاسخ این ادعای درست، ادعای درست دیگری است که تمام فعالیت های انجام شده در زمینه ی هوش مصنوعی را توجیه می کند. اگر بتوانیم استنتاج، خلاقیت و یادگیری را در قالب الگوریتم و دستورها به کامپیوتر بدهیم و انتظار داشته باشیم تا با تبعیت از این دستورها، رفتاری هوشمندانه داشته باشد، چیزی خلاف گفته ی بالا انجام نگرفته است.

در حقیقت دستورهایی که کامپیوتر در قالب الگوریتم های هوش انجام می دهد، چنین معنایی خواهند داشت:

– هوشمندانه رفتار کن.

– استنتاج کن.

– یاد بگیر.

– خلاقیت داشته باش.

– یک اشتباه را دوبار تکرار نکن.

– از تجربه هایت درس بگیر.

پس به طور کلی، روند کار، همانندسازی برنامه با مغز انسان است؛ هر چند این کار به طور کامل ممکن نیست. اما نتایج خوبی مثل شبکه های عصبی از محصولات همین فعالیت های نه چندان کامل و دقیق است.

مهم ترین نکته در علم هوش مصنوعی این است که بتوانیم تعریف دقیقی از آن چه دقیقاً در مغز انسان طی یک فعالیت هوشمندانه رخ می دهد ارائه کنیم. به عنوان مثال سعی کنید دقیقاً بیان کنید که در حین اثبات یک قضیه ی ریاضی چه اتفاقی در مغزتان می افتد. کار خیلی سختی به نظر میاد، اما جنبه هایی از هوش هستند که ساده تر قابل بیانند.
بازی با هوش – بررسی هوش مصنوعی در بازی های کامپیوتری
________________________________________
بازی با هوش – بررسی هوش مصنوعی در بازی های کامپیوتری

اشاره :
در دنیای امروز یکی از مهم ترین قسمت های علم پزشکی، طراحی و بازسازی اجزای مختلف بدن است. حال این سؤال مطرح است که در دنیایی که دیگر، مواردی مانند نقص عضو و از بین رفتن حالت هدایتی- الکتریکی قلب، فشار بالای جمجمه و حتی انواع مختلف فلج های دست و پا، برای بیمار، کمتر محدودکننده است و تا حدودی دیگر یک نقیصه محسوب نمی شود، بازسازیِ احساسات، عواطف و تفکرات چه جایی دارد؟ بشر تا چه میزان توانسته است مسائل روحی خود را در نمونه ای آزمایشگاهی تولیدکند؟ آیا می توان امیدوار بود که در آینده گوشه ای از عواطف آدمی در یک ماشین، جمع آوری شود؟

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

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

در این مقاله سعی شده است مفاهیم و کاربرد های ابتدایی هوش مصنوعی در بازی های کامپیوتری شرح داده شود. گفتنی است برای تهیه این مقاله از مطالب سایت های codeproject و gameai نیز استفاده شده است.

عناصر هوش مصنوعی به کاررفته در بازی های کامپیوتری برای رسیدن به جایگاهی که در حال حاضر در آن قرار دارند، راه زیادی را طی کرده اند. در ابتدا، سیستم های پیشرفته برپایه مجموعه ای از قوانین عمل می کردند که مستقیماً در کدهای بازی نوشته شده بودند یا به صورت متن هایی رفتاری که توسط کدهایی خاص ترجمه می شدند. تمام این اعمال به صورت مشترک برمبنای انتخاب متناسبی از فاکتور های تصادفی، صورت می گرفت. این زمان درست همزمان با تولد بازی هایی به یادماندنی و بی نظیر مانند River Raid ،Donkey Kong ،Boulder-Dash و بسیاری از بازی های جذاب برای کاربران ماشین های هشت بیتی در دهه ۱۹۷۰ بود. قدم دیگر در پروسه توسعه هوش مصنوعی، معرفی روش های ساده علوم کامپیوتری بود که از میان این روش ها می توان به روش Finite State Machine اشاره کرد که هنوز محبوب است و به صورت محدود کماکان مورد استفاده قرار می گیرد. اساس این روش، برپایه توصیفِ رفتاریِ دشمنانی بود که در بازی ها توسط کامپیوتر و علیه بازی کننده کنترل می شدند. با توجه به نیاز روزافزون بازی کننده ها، روند رشد بازی ها نیز پیچیده تر می شد، و این به لطف استفاده بیشتر از الگوریتم های پیشرفته کامپیوتری است. ظهور قلمرو بازی های RTS (استراتژی های بی درنگ) موجب استفاده گسترده از الگوریتم هایی شد که بهترین مسیر را بین دو نقطه از نقشه این نوع بازی ها تعیین می کردند.

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

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

بعد از این که پی سی های مجهز به پردازشگر های ۳۸۶ و ۴۸۶ به عنوان کامپیوتر های استاندارد خانگی مورد استفاده قرار گرفتند، برای نویسندگان برنامه ها هم امکانات گسترده تری فراهم شد و این آغاز مسابقه ای بود برای سازندگان بازی های کامپیوتری. برای مدتی طولانی بهترین مقیاس برای خوب بودن کیفیت یک بازیِ کامپیوتری، خوب بودن کیفیت گرافیکیِ آن بازی محسوب می شد؛ گرچه بعد ها این مقیاس تغییر کرد و تنها خوب بودن گرافیک، طراحی انیمیشنی کاراکتر ها و صدای بازی، نمایانگر بالابودن کیفیت بازی نبود. امروزه یکی از مهم ترین عناصر بازی های کامپیوتری، بدون تردید، <هوش مصنوعی> آن بازی شناخته می شود.

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

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

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

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

بازی های تأثیرگذار در هوش مصنوعی

هنگامی که در مورد انقلاب هوش مصنوعی صحبت می شود، باید به بازی های مهمی که در تاریخچه این انقلاب سهم بسزایی داشته اند نیز اشاره شود.

یکی از مهم ترین این بازی ها که هوش مصنوعی را در دهه ۱۹۹۰ میلادی دگرگون ساخت، بی شک سری بازی هایWarCraft بود که توسط شرکت Blizzard ساخته شد. این بازی اولین بازی ای بود که الگوریتم های مسیریابی را در هوش مصنوعی به کار می برد. یکی از این الگوها مقیاس های عالی ای بود که برای صدها واحد مشغول در صحنه های عظیم جنگی این بازی طراحی شده بود. بازیِ SimCity که توسط Maxis ساخته شد، اولین بازی ای بود که ثابت کرد که می شود در یک بازیِ کامپیوتری از فناوری های حیات مصنوعی استفاده کرد

یکی دیگر از پیشرفت های هوش مصنوعی در بازی های کامپیوتری با بازی Black and White به وجود آمد که توسطLionhead Studios در سال ۲۰۰۱ ساخته شد و در آن برای اولین بار، فناوریِ یادگیریِ شخصیت های هدایت شونده توسط کامپیوتر مورد استفاده قرار می گرفت.

هوش مصنوعی در بازی های تیراندازیِ اول شخص

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

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

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

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

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

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

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

هوش مصنوعی در بازی های استراتژیِ بی درنگ

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

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

هوش مصنوعی در بازی های ورزشی

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

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

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

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

در غیر این صورت، به روش عادی می پیچد. نوع تقسیم بندی مسیر جاده توسط هوش مصنوعی و دو نوع پیچیدن اتومبیل کامپیوتر در پیچ ها را در شکل شماره۲ می بینید.

 

نوع دیگر تقلب کامپیوتر در این بازی ها هم در استفاده از راه های میانبر دیده می شود.

هنگامی که کامپیوتر از حریف انسانی خود عقب می افتد، بیشترین استفاده را از این گونه راه ها که مسیر را برایش کوتاه تر می کند، خواهد داشت. در شکل ۳ نمونه ای از این شیوه را می بینید.

با توضیحاتی که داده شد، تجاربی که از بازی های ماشین سواری تا به حال کسب کرده اید، کمی ملموس تر می شود.

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

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

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

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

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

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

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

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

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

اساس این الگوریتم برپایه <جست وجوی گرافیکی بین گرهی> استوار است. این سیستم از یک ارزیابی غیرمستدل(Heuristic Estimate) بهره گیری می کند. این الگوریتم اولین بار در سال ۱۹۶۸ همزمان توسط سه ریاضیدان به نام های Peter Hart ،Nils Nilsson و Bertram Raphael شرح داده شد. دنیای واقعی، تقریباً در تمامی بازی های کامپیوتری، بسته به نوع بازی، می تواند با خطوطی گرافیکی بازسازی شود. در بازی های RTS، دنیای بازی معمولاً از آرایشی دو بعدی تشکیل شده است و نقشه بازی شامل مربع های فراوانی می شود که هر یک از آن ها مطابق است با نقشه چهارگوش بازی. هر عنصر این سیستم (جز عناصر مرزی) هشت عنصر همسایه دارند. با استفاده از این گونه مدل نمایشی در بازی های RTS، می توانیم گرافیکی ایجاد کنیم که در آن هر یک از این عناصر به راس گرافیک کل نقشه مربوط باشد. لبه های هر یک از عناصر گرافیکی (که هریک با عنصر همسایه خود مجاورت دارد) امکان یا عدم امکان حرکت یکی از اجرای نقشه را به عنصر همسایه نمایش می دهد. در استراتژی های بی درنگ ما معمولاً یکی از رئوس این عناصر گرافیکی را به عنوان محلی که کوچک ترین واحد بازی در آن جای می گیرد، قلمداد می کنیم.

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

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

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

با آزمایش روشی که این الگوریتم کار می کند، متوجه خواهیم شد که گرچه این روش دارای برتری سادگی است، مشکل جدی ای هم دارد. مسیری که این الگوریتم در مثال ذکر شده پیدا کرده است تنها از پنج خانه نقشه بازی تشکیل شده و این سیستم برای این کار ۸۱ خانه را مورد آزمایش قرار داده است.

حال فرض کنید که در نقشه ای که متشکل از ۲۵۶ خانه عرضی و طولی است، باید ۶۵۵۳۶ خانه مورد آزمایش قرار گیرد تا مسیر مشخص گردد! در شکل ۴ می بینید که دایره شاخص شماره ۴ توسط یک الگوریتم مسیر یابی ساده به هدف مورد نظر رسیده است.

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

از دیگر استفاده های این الگوریتم، می توان به تغییر محدودیت زاویه های دوربین و نمایش تعداد بیشتری از واحد ها در یک زمان، اشاره کرد. همچنین این الگوریتم شرایطی را فراهم می کند که واحد ها نتوانند از نقاط غیرقابل عبور نقشه عبور کنند. البته نباید فراموش کرد که بهترین استفاده از این الگوریتم همان راهیابی بین دو نقطه است.

در زیر شبه کد ها یا Psudocodeهای الگوریتم *A را مشاهده می کنید:

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

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

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

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

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

الگوریتم ماشین با حالات محدود

الگوریتم های ماشین با حالات محدود (Finite State Machines) مدل های رفتاری ای هستند که از موقعیت (State)، انتقال این موقعیت (Transition) و ایجاد یک عمل (Action) تشکیل می شود. در یک موقعیت، اطلاعاتی قبلی ذخیره می شود.

به طور مثال، اطلاعات ورودی از شروع سیستم تا زمان حال در این بخش قرار می گیرد. در مرحله انتقال، این موقعیت تغییر می کند و بسته به شرایط، انتقال می یابد و در مرحله آخر این موقعیتِ منتقل شده که خود نماینده یک حالت بوده است، یک عمل متناسب با آن موقعیت را ایجاد می کند. در شکل ۵، نمودار حالتی این الگوریتم را در باز و بسته کردن یک در مشاهده می کنید.

دلیل نامگذاری این الگوریتم نیز مقایسه ای است که آن را از مغز انسان متمایز می کند. همان طور که می دانید مغز انسان در هر لحظه می تواند عملیات ذکر شده در بالا را در تعداد نامتناهی انجام دهد. اما کامپیوتر و هوش مصنوعی، هرچند هم که پیشرفته باشد، تنها قادر است تعداد معینی از این عملیات را انجام دهد. با این که الگوریتم های ساده ای هستند، در عین حال یکی از پرکاربرد ترین و مؤثر ترین روش برنامه ریزی هوش مصنوعی می باشند. برای هر موقعیت در یک بازی کامپیوتری می توان مجموعه اعدادی از چگونگی آن لحظه قائل شد.

برای مثال، یک شوالیه را در نظر بگیرید. او در بازی می تواند زره بپوشد، به عنوان نگهبانی عمل کند، حمله کند یا در حال استراحت باشد.

یا در یک بازی RTS یکی از مردم عادی شما می تواند چوب جمع کند، خانه ای بسازد یا در برابر حمله دشمن از خود دفاع کند. بسته به موقعیت هر یک از این دو شخصیت، اشیا و اجزای بازی می توانند عکس العمل های متفاوت، اما محدودی داشته باشند.

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

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

بحث شبکه های عصبی مصنوعی و موارد استفاده آن ها در بازی های کامپیوتری، اخیراً به یکی از بحث های داغ در صنعت بازی سازی تبدیل شده است. در بسیاری از مجلات و سایت های بازی به این بحث و توانایی های الگوریتم های امروزی ساخت بازی ها اشاره شده است. مشکلات مربوط به شبکه عصبی مصنوعی نیز بارها در اجلاس سازندگان بازی ها (GDC) که سالانه در شهر لندن برگزار می شود مطرح شده است.
بازی ماشین سواریِ Collin McRae Rally2 یکی از اولین بازی هایی است که از این سیستم در هوش مصنوعی خود استفاده کرده است و اتفاقاً بسیار هم موفق بوده است. در این بازی در حین این که کامپیوتر سعی دارد ماشین های خود را به بهترین نحو در جاده کنترل کند، همزمان توسط کمک راننده ماشین ها، بنا به شیوه مسابقات رالی، توضیحاتی در مورد آینده جاده و نحوه پیچ ها می دهد. در این بازی هم، درست مانند توضیحی که در قسمت هوش مصنوعیِ بازی های ورزشی گفته شد، هر جاده توسط خطوطی شکسته که طرح خطی ای را برای هوش مصنوعی تشکیل می دهند، شناخته می شود.

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

سپس این شبکه وظیفه دارد این اطلاعات ورودی را با عبور از لایه های مختلف به هسته اصلی هوش مصنوعیِ بازی (که با موتور ساخت بازی نیز ارتباط تنگاتنگ دارد) برساند. سپس در آنجا پردازش های نهایی صورت می گیرد و اطلاعات خروجی به دست می آید. وظیفه پیرایش و نمایش این اطلاعات خروجی باز هم به عهده شبکه عصبی مصنوعی است. بدین ترتیب در مثال بالا حرکت و کنترل اتومبیل در جاده، بنا به موقعیت، به درستی و به بهترین شکل ممکن صورت می گیرد و قسمت معرفی جاده توسط کمک راننده نیز در کنار هدایت اتومبیل به طبیعی ترین حالت ممکن، انجام می شود.
در کنترل اتومبیل به این شیوه، کامپیوتر می داند که می تواند از روی موانع کوچک تر عبور کند؛ بدون آن که مشکلی در هدایت داشته باشد یا می داند که در حالات برفی و بارانی که جاده لغزنده است، باید زودتر از حالت طبیعی تصمیم به پیچیدن داشته باشد. این بازی از مدلی چند لایه به نام Perceptron Model استفاده می کند. در علم پزشکی این مدل عصبی-هدایتی که نورون McCulloch-Pitts هم نامیده می شود، عبارت است شبکه ای از نورون ها که ارتباطات سنگین و مهمی بین ورودی عده ای از نورون های با خروجی عده دیگر از نورون ها، برقرار می کنند.

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

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

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

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

● زمان زیادی که برای طراحیِ چنین شبکه ای احتیاج است.

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

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

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

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

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

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

کتابخانه های هوش مصنوعی

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

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

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

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

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

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

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

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

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

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

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

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

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

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

امتیاز post

نظرات بسته شده است، اما بازتاب و پینگ باز است.