موجودی به اسم “هوش مصنوعی”
هوش مصنوعی
پدیده ای در دنیای Gaming
یک بازی رایانه ای شامل بخش های مختلفی می شود و بازی ساز ها برای اینکه بتوانند یک بازی رایانه ای موفق تولید کنند، نیاز به یک تیم قوی در شاخه های مختلفی هم چون : طراحی شخصیت، طراحی محیط، کار با نرم افزار های گرافیکی، تیم برنامه نویسی حرفه ای و از جمله بک الگوریتم مناسب برای طراحی “هوش مصنوعی” که به نظر من از اساسی ترین بخش ها برای ساخت یک اثر رایانه ای است، دارند.
برای اندکی تصور کنید که یک اثر رایانه ای بسیار موفق فاقد هوش مصنوعی باشد. به طور مثال یک بازی دارای یک گرافیک بی نظیر، گیم پلی منحصر به فرد و یک گیم پلی فوق العاده است، اما در این بازی هوش مصنوعی دیده نمی شود و یا به قدری ضعیف است که بازیکن را پس از مدتی از انجام بازی دلسرد می کند. تصور کنید با یک بازی اکشن اول شخص روبرو هستید که دشمنان فقط در جای خود ثابت ایستاده اند و شما با هر درجه از سختی، بازی را بدون کوچکترین زحمتی به پایان برسانید.
دشمنان در جای خود ثابت ایستاده اند و شما فقط هدف را ایستا می بینید و در ظاهر فقط رو به جلو می روید تا مراحل مختلف یا دیگر قسمت های جدید در این بازی خیالی را مشاهده کنید. اینجاست که هوش مصنوعی به یک نیاز اساسی تبدیل می شود و بس.
در این مقاله سعی دارم، دیده گاه کلی از مبحث هوش مصنوعی را برای شما بیان کنم و نیم نگاهی به این مهم در دنیای بازی های رایانه ای بیندازم. اول از همه می خواهم یک تعریف کلی از “هوش مصنوعی” داشته باشید.
هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته میشود. بیشتر نوشتهها و مقالههای مربوط به هوش مصنوعی آن را «دانش شناخت و طراحی عاملهای هوشمند تعریف کردهاند. یک عامل هوشمند سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را بالا میبرد (ویکی پدیا)
این بود یک تعریف عام از هوش مصنوعی. حال ما می خواهیم این بحث را باز کنیم و آن را به بازی های رایانه ای نسبت دهیم. بحث هوش مصنوعی در دنیای بازی های رایانه ای برای اولین بار در سال ۱۹۴۱ مطرح شد و در سال ۱۹۴۲ مورد استفاده قرار گرفت. سیستم هوش مصنوعی در یک بازی رایانه ای، به صورت کاملا فیزیکی بود. به این منظور که بازی های آرکید قدیمی که توسط سکه کار می کردند، مجهز به یک برد مخصوصی بودند که می توانست تا حدی حرکت های بازیکن را تخمین بزند و عکس العمل نشان دهد.
در سال ۱۹۵۱ بود که در دانشگاه منچستر یک سیستمی ایجاد شد و فردی به نام Dietrich Prinz با یک برنامه یا به عبارتی بهتر یک بازی “شطرنج”، توانست به دستاوردی فوق العاده در زمینه ی هوش مصنوعی بازی های رایانه ای برسد. این الگوریتم ساده در واقع پایه ی اکثر الگوریتم ها در علم هوش مصنوعی امروز است.
با سپری شدن سال های متوالی و ورود به سال ۱۹۷۰، اولین بازی کامپیوتری بوجود آمد. این بازی شامل یک جنگنده ی فضایی و تعدادی هدف می شد که باید توسط این جنگنده از بین می رفتند. سپس بازی های دیگری در این سبک معرفی شدند که از نمونه های اولیه بهتر و پیشرفته تر بودند. بازی هایی هم چون Star Trek از جمله ی این بازی هاست.
سال ۱۹۷۲، سال طلایی در دنیای بازی های رایانه ای آرکید نام گرفت و شرکت های بازی سازی تازه وارد هم چون Atari و Taito برای ساخت بازی های خود از تجربه های قبل و الگوریتم های هوش مصنوعی ابتدایی استفاده می کردند. بالاخره با آغاز سال ۱۹۷۸ و انتشار بازی محبوب و فوق العاده Space Invaders بازی های رایانه ای آرکید به اوج محبوبیت خود رسیدند. این بازی شامل مراحل بسیار سختی بود که همه ی آنها از هوش مصنوعی قابل تحسین بازی نشات می گرفت.
شما با هوش مصنوعی یک دستگاه، سیستم و ماشینی خلق می کنید که قدرت “درک” و “فهم” دارد. در بازی های رایانه ای نیز به همین ترتیبی است که گفته شد. در ایجاد یک هوش مصنوعی بی نقص، باید احتمال ها در نظر گرفته شود و شخصیت مقابل شما در یک بازی رایانه ای باید بتواند بین ۵۰ تا ۷۰ درصد، همانند شما هم فکر کند و هم تصمیم بگیرند.
در کتاب معروفی از ایلین ریچ که در رابطه با هوش مصنوعی نوشته شده است، اطلاعات جالبی دیده می شود. الگوریتم های خاص و زبان های معروفی که با آنها هوش مصنوعی بازی های امروزی معنایی واقعی پیدا می کنند. به برخی از این الگوریتم ها نگاهی می اندازیم :
یکی از فرمول های ساده در خصوص هوش مصنوعی(در دنیای روبوتیک و هم چنین بازی های رایانه ای) عمل و عکس العمل است. در کتاب ریچ، واکنش ها و اکشن ها به دو قسمت تقسیم بندی شده اند.
Single- Action- Problem
مسائلی که عامل با انجام دادن یک عمل از بین عملهای ممکن بتواند به هدف برسد.
Multiple- Action- Problem
مسائلی که در آن ها عامل برای رسیدن به هدف نیاز به انجام چند عمل پی در پی داشته باشد که این مسائل سخت تر هستند
مثلاً در عامل راننده تاکسی: قبل از شروع حرکت، عامل یک درخت از مسیرها می سازد و سپس مسیری را
که مسافر را از مقصد به هدف می رساند انتخاب می کند. در این بین عامل حرکت با موانع برخورد می کند و باید بتواند حدس بزند که پس از برخورد به مانع از کدام جهت حرکت کند که در مسیرش مانعی دیده نشود. این یکی از ابتدایی ترین و ساده ترین مثال هاست که می توان از آن نتایج زیادی را گرفت. تصور کنید که در یک روز بارانی قرار است این ماشین مسافری را به مقصد برساند(با در نظر گرفتن موانع).
اگر باران شروع شود، عامل میتواند دانش خود را در مورد چگونگی کیفیت ترمز به هنگام سازد. این فرآیند به طور خودکار باعث می گردد که تمامی رفتارهای مربوط برای وفق دادن با شرایط جدید تغییر پیدا کنند.
برای عامل واکنشی، ما مجبور به دوباره نویسی تعداد زیادی قوانین شرط- عمل خواهیم بود
پس ببینید، چند درصد احتمالش وجود دارد که اتفاق های غیز قابل پیش بینی رخ دهد. شما پس از هر بار آزمایش و تحلیل ها، باید خط های جدیدی را به لیست الگوریتم و برنامه ی خود اضافه کنید.
این مثال کمرنگ ترین نقطه در دنیای هوش مصنوعی که صرفا جهت یک آشنایی مقدماتی با این قضیه بود. هوش مصنوعی در یک دیدگاه کلی به سه بخش نرم افزای، سخت افزاری و ترکیبی از این دو، تقسیم بندی شده است. در علم روبوتیک می توان یک دیدگاه کلی از این موضوع را بدست آورد، اما هدف اصلی من در این مقاله نشان دادن اهمیت هوش مصنوعی در بازی های رایانه ای و دنیای برنامه نویسی است.
در سبک های مختلف بازی های رایانه ای هوش مصنوعی درجه ی پیچیدگی مختلفی دارد. بازی هایی در سبک استراتژیک، از سخت ترین الگوریتم در هوش مصنوعی استفاده می کنند و بازی های شبیه سازی شده نیز از یک ماژول آماده. از بهترین نمونه های هوش مصنوعی در بین بازی های رایانه ای می توان به بازی Red Alert اشاره کرد. بازی هایی هم چون Call of Duty Modern Warfare 3 و Bioshock نیز دارای یک هوش مصنوعی قابل تحسین هستند.
هیچ وقت فراموش نمی کنم لحظه هایی را که با یک Big Daddy در بازی Bioshock درگیر می شدم و به جای ادامه ی بازی، نظاره گر عکس العمل های هوشمندانه ی او در بازی بودم.
.