گاهی اوقات سوال میشود که چطور ممکن است به چیزی جان بخشید! در این مقاله نگاهی کوتاه به دنیای هوش مصنوعی میاندازیم.
به گزارش سرویس اخبار هوش مصنوعی سایت شات ایکس و به نقل از گیمفا
نگاهی گذرا به مغزهای ساخته شده
با توجه به پیشرفت تکنولوژی، ثانیه، دقیقه یا ساعاتی نیست که درباره این پدیده سخنی به گوشمان نرسد. هوش مصنوعی در بازیهای ویدیویی یکی از جذابترین و پرکاربردترین زمینههای این فناوری است که تحولات شگرفی را تجربه کرده. شاید برخی دوستان به خاطر نداشته باشند، اما در گذشته داشتن شخصیت همراه در بازی کابوس بزرگی بود. آنها عملاً اجسامی متحرک بودند که گاهی اوقات برای اعلام حضور خود چند گلوله به دیوار شلیک میکردند. در دهههای ۱۹۷۰ و ۱۹۸۰، بازیهای ویدئویی نخستین قدمهای خود را در استفاده از الگوریتمهای ساده برداشتند. بازیهایی نظیر Pac-Man و Space Invaders از قواعد ابتدایی برای حرکت دشمنان و پاسخ به اقدامات بازیکن بهره میبردند. این الگوریتمها عمدتاً از روشهای ثابت و از پیش تعیینشده برای کنترل رفتار شخصیتهای بازی استفاده میکردند.
در دهه ۱۹۹۰، پیشرفتهای چشمگیری در حوزه هوش مصنوعی در بازیها رخ داد. با ظهور بازیهایی نظیر Chessmaster 2000 و StarCraft، سیستمهای هوش مصنوعی پیچیدهتری به کار گرفته شدند که قادر بودند استراتژیهای پیچیدهتری را به کار برده و به صورت پویا به تصمیمات بازیکنان پاسخ دهند. این بازیها نشان دادند که هوش مصنوعی میتواند تجربه بازی را به طرز چشمگیری بهبود بخشد و چالشهای جدیدی برای بازیکنان ایجاد کند. با ورود به دهه ۲۰۰۰، تحولات بیشتری در زمینه هوش مصنوعی و بازیهای ویدئویی صورت گرفت. توسعهدهندگان موتورهای بازیسازی با ایجاد قابلیتهای جدید و امکانات بیشتر برای تیمهای برنامهنویسی، به این روند کمک شایانی کردند. در این دوره، بازیهایی مانند Halo و Far Cry توانستند دشمنانی با هوش مصنوعی پیشرفته را ارائه دهند که قادر به انجام تاکتیکهای پیچیده و تعامل بیشتر با محیط بودند.
در سال ۲۰۱۰ و با پیشرفتهای جدید در حوزه یادگیری ماشین و شبکههای عصبی، هوش مصنوعی در بازیهای ویدیویی به سطحی جدید رسید. بازیهایی نظیر AlphaGo از تکنیکهای یادگیری عمیق (Deep Learning) برای شکست دادن بازیکنان حرفهای استفاده کردند. این فناوریها توانستند بازیهایی را خلق کنند که نه تنها قادر به یادگیری از تجربیات خود هستند، بلکه میتوانند به صورت خودکار بهبود استراتژیهای خود بپردازند. در سالهای اخیر، هوش مصنوعی به یکی از مهمترین اجزای بازیهای ویدئویی تبدیل شده است. تکنیکهایی مانند هوش مصنوعی مولد (Generative AI) و یادگیری تقویتی (Reinforcement Learning) امکان ایجاد شخصیتهای غیرقابل پیشبینی و داینامیک را فراهم کردهاند.
در ادامه برای درک بهتر باید دو مفهوم ابتدایی را یاد بگیریم.
صفر و یک
اسکریپتها و الگوریتمها دو ابزار اساسی در توسعه هوش مصنوعی برای بازیهای ویدیویی هستند که هر کدام نقش خاصی در ایجاد تجربه بازی دارند. اسکریپتها در بازیهای ویدیویی به مجموعهای از دستورات گفته میشود که رفتارها و واکنشهای شخصیتها و رویدادهای بازی را تعریف میکنند. این دستورات به زبانهای برنامهنویسی خاصی (معمولاً زبان پایتون یا ++C) نوشته میشوند که برای موتور بازیسازی مربوطه قابل فهم باشند. اسکریپتها معمولاً برای تعیین وظایف خاص و تعاملات ساده مورد استفاده قرار میگیرند. به عنوان مثال، یک اسکریپت ساده میتواند حرکت یک شخصیت بازی را از نقطه A به نقطه B هدایت کند یا پاسخ یک دشمن به حضور بازیکن را مشخص کند. برای نمونه، اسکریپت سادهای برای حرکت یک دشمن در یک بازی میتواند به این صورت باشد که اگر بازیکن در محدوده دید دشمن قرار گیرد، دشمن به سمت بازیکن حرکت کند و در غیر این صورت به مسیر گشتزنی خود ادامه دهد. این کار توسط یک سیگنال (ساخته شده توسط برنامهنویس یا موتور بازیسازی) انجام میشود.
الگوریتمها به مجموعهای از قوانین و دستورالعملهای منطقی گفته میشود که برای حل یک مسئله یا انجام یک وظیفه خاص به کار میروند. در بازیهای ویدئویی، الگوریتمها میتوانند برای کنترل پیچیدهتر رفتارهای شخصیتها، پیدا کردن بهترین مسیر در نقشهها و تصمیمگیریهای استراتژیک مورد استفاده قرار گیرند. الگوریتمها از ساختارهای ریاضی و منطقی پیچیدهتری نسبت به اسکریپتها برخوردارند و میتوانند برای پردازش حجم زیادی از دادهها به کار روند.
دو سبک متفاوت
دو ژانر محبوب بازیهای اکشن و مخفیکاری هر کدام نیازمند نوع خاصی از هوش مصنوعی هستند که تفاوتهای قابل توجهی با یکدیگر دارند. بازیهای اکشن معمولاً بر روی سرعت، واکنش سریع و درگیریهای مستقیم متمرکز هستند. در این نوع بازیها، هوش مصنوعی باید توانایی پاسخ سریع به اقدامات بازیکن را داشته باشد و اغلب شامل الگوهای رفتاری سادهتر اما سریعتر است. دشمنان در بازیهای اکشن معمولاً از الگوریتمهای حمله و دفاع ساده استفاده میکنند که شامل موارد زیر است:
- حمله و دفاع به صورت ساده: دشمنان در بازیهای اکشن معمولاً از مجموعهای از حرکات و حملات از پیش تعیینشده استفاده میکنند. این الگوها به صورت متناوب تکرار میشوند تا چالش ایجاد کنند.
- واکنش سریع: هوش مصنوعی در اثار اکشن به دلیل عیان بودن بازیکن باید بسیار سریع عمل کنند. این اعمال شامل حملات فوری، سنگر گرفتن، یا جابجایی سریع برای جلوگیری از ضربه بازیکن است.
- تاکتیکهای تهاجمی: در این حالت این نوع هوش مصنوعی کمتر به پنهان شدن و بیشتر به درگیری مستقیم میپردازد.
بازیهای مخفیکاری، بر خلاف بازیهای اکشن، بیشتر بر روی پیشروی مخفیانه و اجتناب از درگیری مستقیم تمرکز دارند. هوش مصنوعی در این بازیها پیچیدهتر و دارای لایههای مختلفی از رفتارها است تا تجربهای واقعگرایانهتر و چالشبرانگیزتر ایجاد کند. ویژگیهای اصلی هوش مصنوعی در بازیهای مخفیکاری شامل موارد زیر است:
- پیشبینی و پاسخ به رفتار بازیکن: دشمنان در بازیهای مخفیکاری معمولاً توانایی پیشبینی و پاسخ به رفتار بازیکن را دارند. آنها میتوانند صداهای مشکوک را بررسی، آثار بازیکن را دنبال و به تغییرات محیطی واکنش نشان دهند.
- مسیرهای گشتزنی پیچیده: دشمنان در بازیهای مخفیکاری معمولاً دارای مسیرهای گشتزنی پیچیده و غیرقابل پیشبینی هستند. این مسیرها به گونهای طراحی شدهاند که بازیکن برای گذر از آنها نیاز به برنامهریزی دقیق و صبر داشته باشد.
- استفاده از محیط: هوش مصنوعی در بازیهای مخفیکاری اغلب از محیط برای پنهان شدن و جستجوی بازیکن استفاده میکند. دشمنان میتوانند از درها، پنجرهها، و سایهها برای پنهان شدن و غافلگیر کردن بازیکن بهره ببرند.
- هماهنگی گروهی: دشمنان به دلیل طراحی مراحل متفاوت و چینش دشمنان، به محض رویت بازیکن باید با یکدیگر خیلی سریع ارتباط برقرار کنند.
بد نیست با دو هوش مصنوعی کارآمد آشنا شویم.
GOAP
بازی F.E.A.R (First Encounter Assault Recon) توسط Monolith Productions در سال ۲۰۰۵ منتشر شد. الگوریتم GOAP (Goal-Oriented Action Planning) یکی از تکنیکهای پیشرفتهای است که در این بازی به کار گرفته شده تا هوش مصنوعی دشمنان را زنده جلوه دهد. این الگوریتم به دشمنان اجازه میدهد تا با تعیین اهداف مشخص و برنامهریزی برای رسیدن به آنها، رفتارهایی منطقی و پویا از خود نشان دهند. GOAP با ارزیابی وضعیت فعلی دشمن و محیط اطراف، اهدافی را تعیین میکند که ممکن است شامل حمله به بازیکن، پناه گرفتن یا درخواست پشتیبانی باشد. این اهداف براساس اولویتهای خاصی که به شرایط بستگی دارند، انتخاب میشوند. سپس دشمنان با استفاده از این الگوریتم، برنامهریزی میکنند که چگونه به بهترین نحو به این اهداف برسند. این برنامهریزی شامل انتخاب مجموعهای از اقدامات پیوسته است که دشمن را به هدف نزدیکتر میکند. فرضاً، اگر هدف دشمن یافتن پوشش باشد، مجموعهای از اقدامات مانند دویدن به سمت مکان امن و استفاده از موانع برای پنهان شدن را شامل میشود. یکی از نقاط قوت GOAP، توانایی آن در واکنش به تغییرات دینامیک محیط است. اگر شرایط تغییر کند، بازیکن موقعیت خود را تغییر دهد یا دشمن جدیدی وارد صحنه شود، الگوریتم مجدداً برنامهریزی میکند تا اقدامات بهینه برای رسیدن به هدف جدید انتخاب شوند. این انعطافپذیری باعث میشود که دشمنان رفتارهایی غیرقابل پیشبینی و طبیعی از خود نشان دهند.
در بازی “.F.E.A.R”، هوش مصنوعی از الگوریتمهای جستجو برای بهبود تعاملات و تصمیمگیریهای دشمنان استفاده میکند. یکی از الگوریتمهای اصلی به کار گرفته شده در این بازی، الگوریتم جستجوی A* (A-star) است که برای پیدا کردن کوتاهترین مسیر بین دو نقطه مورد استفاده قرار میگیرد.تاثیر GOAP بر صنعت بازیهای ویدئویی بسیار گسترده بود. این الگوریتم به عنوان یک نوآوری در هوش مصنوعی بازیها، به ایجاد دشمنانی هوشمندتر کمک کرده است. بازی “F.E.A.R” با استفاده از این الگوریتم توانست تجربهای واقعگرایانه و پویا برای بازیکنان فراهم کند که تا آن زمان در صنعت بازیهای ویدئویی بیسابقه بود. دشمنان در این بازی قادر هستند به طور مستقل تصمیمگیری کنند و با توجه به شرایط موجود، بهترین استراتژیها را برای مقابله با بازیکن انتخاب کنند. تفاوت اصلی هوش مصنوعی بازی “F.E.A.R” با دیگر رقبای خود، در توانایی دشمنان برای تطبیق با رفتار بازیکن و محیط است. این هوش مصنوعی نه تنها توانست رفتارهایی متنوع و واقعگرایانه از خود نشان دهد، بلکه به دلیل استفاده از GOAP ، قابلیت یادگیری و تطبیق با استراتژیهای بازیکن را نیز داشت. این ویژگی باعث شد که هر بار بازی کردن، تجربهای متفاوت و منحصربهفرد برای بازیکنان ایجاد شود و چالشهای جدیدی پیش روی آنها قرار گیرد.
به طور کلی، استفاده از الگوریتم GOAP در بازی “F.E.A.R” معیاری جدید برای هوش مصنوعی در بازیهای ویدئویی تعیین کرد.
ایجاد تعادل در هوش مصنوعی
در بازیهای Splinter Cell، طراحی و پیادهسازی هوش مصنوعی برای کاراکترهای غیرقابل بازی (NPCها) همچون دیگر اثار مخفی کاری نقش بسیار مهمی دارد. یکی از سیستمهای کلیدی که در این بازیها به کار گرفته شده، سیستم آگاهی محیطی تاکتیکی (TEAS) است. این سیستم به NPCها کمک میکند تا به شکل هوشمندانهتری با محیط اطراف خود تعامل داشته باشند و بدانند کدام مناطق به کدام مناطق دیگر متصل هستند. سیستم TEAS محیط بازی را به مناطق کوچکتری تقسیم میکند که هر کدام به وسیله نقاط خاصی مانند درها و پنجرهها به هم متصل میشوند. این نقاط اتصال (Choke Nodes) نشاندهنده راههای باریکی هستند که دو زیرمجموعه (Sub Navmeshes) را به هم وصل میکنند.
Navmesh (Navigation Mesh) یک ابزار کلیدی در طراحی بازیها و برنامههای شبیهسازی است که برای مدیریت حرکت و جابهجایی کاراکترها و اشیاء در یک محیط مجازی استفاده میشود. این نمودار به شکل مجموعهای از چندضلعیها یا مثلثها طراحی میشود که مناطق قابل دسترسی و قابل حرکت را در محیط نشان میدهند. Navmesh به دشمنان کمک میکند تا مسیریابی کنند و بدانند کدام قسمتها از محیط قابل دسترسی و کدام قسمتها غیر قابل دسترسی هستند.برای هر نقطه اتصال، یک نقطه موقعیتیابی (Position Node) در دو طرف قرار داده میشود که نشان میدهد این دو زیرمجموعه به هم متصل هستند. طراح مراحل (Level Designer) نیز ویژگیهایی مانند اندازه منطقه، تعداد دشمنانی که میتوانند وارد آن شوند و نوع منطقه (مانند بالکن باز یا اتاق بسته) را برای هر منطقه مشخص میکند. این اطلاعات به NPCها کمک میکند تا بفهمند چگونه باید در هر منطقه عمل کنند. اگر یک NPC نتواند بازیکن را مستقیماً ببیند، سیستم TEAS به او می فهماند تا نقاط اتصال (مثل درها یا پنجرهها) را بپوشاند و به طور هوشمندانهای رفتار کند.
سیستم TEAS همچنین به دشمنان امکان میدهد تا بدانند بازیکن در کدام منطقه پنهان شده و به طور هوشمندانهای تنها راههای ورود به آن منطقه را پوشش دهند، به جای اینکه بدون فکر به سمت بازیکن حمله کنند! این سیستم در نسخههای بعدی بازی، مانند Blacklist، با اضافه شدن ویژگیهایی مانند تولید خودکار نقاط اتصال و بررسیهای خطا در ویرایشگر بهبود یافته است. همچنین، یکی دیگر از مشکلاتی که تیم توسعهدهنده با آن روبهرو بود، یعنی عدم تعادل در تشخیص صدای NPC. در بسیاری از موارد، بازیکنان احساس میکردند که بهطور ناعادلانهای توسط دشمنان که نمیتوانستند ببینند، شناسایی میشدند. برای حل این مشکل، توسعهدهندگان تصمیم گرفتند که قدرت شنوایی دشمنانی که خارج از دید بازیکن هستند و در فاصله دوری قرار دارند را برای برخی از رویدادهای خاص کاهش دهند. این تغییر باعث شد که بازی به شکل قابل توجهی جذابتر شود و بازخوردهای مثبتی از سوی بازیکنان دریافت کند. علاوه بر این، برای ارائه بازخورد بهتر به بازیکنان، سیستم بروز رسانی شد تا NPC با جملات خاصی (بیرون از صحنه و یا درون صحنه) واکنش نشان دهند که به بازیکن نشان میدهد چرا و چگونه شناسایی شده. این جملات در سه سطح مختلف قرار داشتند تا بازیکن به تدریج یاد بگیرد که صدای پای او قابل شنیدن است و بتواند از این بازخوردها برای بهبود استراتژی خود استفاده کند! در نهایت، توسعهدهندگان به مشکلی به نام “مشکل ناپدید شدن NPCها” نیز پرداختهاند. در این مشکل، بازیکن ممکن است بهطور پنهانی NPC را یکییکی حذف کند و در نهایت، تعداد کمی از NPCها باقی بمانند که از ناپدید شدن همکارانشان بیاطلاع باشند. برای حل این مشکل، توسعهدهندگان روشی را طراحی کردند که دشمنان باید به حضور دیگر دوستان خود آگاه باشند و اگر دیگر آنها را نبینند یا نشنوند، مشکوک و تحقیق کنند.
در بازیهایی که بازیکن میتواند مخفی شود یا خط دید را بشکند، مدل درک بصری اهمیت زیادی دارد. به طور معمول از دید مخروطی برای مدلسازی میدان دید دشمنان استفاده میشود. اگرچه Conical vision میتواند میدان دید مستقیم را به خوبی شبیهسازی کند، اما در مدلسازی برخی جنبههای دیگر مانند دید محیطی و دید در فواصل دور عملکرد ضعیفی دارد. برای مثال، Conical vision نمیتواند به خوبی دید محیطی را که در اطراف دید مرکزی قرار دارد شبیهسازی و در فواصل دور نیز با گسترش زیاد، دقت خود را از دست میدهد. تیم توسعهدهنده در “Splinter Cell” برای حل این مشکلات به تفاوت بین درک و آگاهی پرداختند. آگاهی به مجموعهای از حالتهای ذهنی اطلاق میشود که به تدریج از طریق ادراک حسی به دست میآید. وقتی NPC چیزی را برای اولین بار میبیند، فقط شروع به آگاه شدن از آن میکند. این فرآیند به عواملی مانند نورپردازی، انتظارات NPC و مدت زمان مشاهده بستگی دارد. در بسیاری از بازیها، این فرآیند به صورت یک نوار پیشرفت مدلسازی شده است که در نهایت دو حالت باینری را برای NPC نشان میدهد: “چیز مشکوکی نمیبینم” یا ” آن دشمن آنجاست!” در Blacklist، تیم توسعهدهنده برای تشخیص بازیکن از هشت نقطه مختلف بر روی بدن بازیکن استفاده کردند. بسته به وضعیت بازیکن، تعداد معینی از این نقاط باید قابل مشاهده باشد تا فرآیند تشخیص آغاز شود. وقتی تعداد کافی از این نقاط قابل مشاهده شود، فرآیند تشخیص شروع شده و یک تایمر فعال میشود. این تایمر به بازیکن فرصت میدهد تا خط دید را بشکند یا NPC را از بین ببرد تا از تشخیص جلوگیری کند. هنگامی که این تایمر به پایان برسد، بازیکن شناسایی میشود. مشکل مدل مخروط دید این است که با افزایش فاصله از NPC، مخروط گستردهتر میشود که نشان میدهد NPCها باید به طور طبیعی چیزهای دورتر را ببینند. اما در فواصل دور، این مدل کارایی لازم را ندارد. برای حل این مشکل، مخروط دید با جعبههای تابوتمانند جایگزین شد که ابتدا مانند مخروط گسترش مییابند و سپس با افزایش فاصله شروع به جمع شدن میکنند. این مدل بهتر توانست دید NPCها در فواصل دور را شبیهسازی کند.
امیدوارم با این اطلاعات به درک درستی از هوش مصنوعی رسیده باشید. از اینکه بنده را تا انتهای این نوشته همراهی کردهاید سپاسگزارم.