اگر تا به حال یک بازی ویدیویی انجام داده باشید، شما با هوش مصنوعی برخورد داشتهاید. مهم نیست که بازیهای ماشینسواری مانند جنون سرعت را ترجیح میدهید، یا بازیهای استراتژیکی مثل تمدن و یا بازیهای تیراندازی مثل کانتر استریک . در تمام این بازیهای عناصری وجود دارد که توسط هوش مصنوعی کنترل میشود.
به گزارش گرداب - هوش مصنوعی اغلب در کاراکترهایی از بازی استفاده میشود که بازیکنها معمولاً به آن توجه زیادی ندارند؛ مانند سربازان عادی دشمن، شخصیتهای خنثی و یا حتی حیوانات.
در بازیهای ویدیویی، هوش مصنوعی (AI) برای ایجاد رفتارهای سازگارانه و یا هوشمند استفاده میشود که اغلب در کاراکترهای غیر قابل بازی (NPCs) شاهد این رفتار هستیم؛
اینگونه کاراکترها تلاش میکنند تا هوشمندی انسانگونهای را به نمایش بگذارند. از زمان شکلگیری نخستین بازیهای ویدیویی، هوش مصنوعی در بازیها حضور داشته است.
هوش مصنوعی در بازیهای ویدیویی زیرمجموعهای مجزا است از هوش مصنوعی آکادمیک و از آن متمایز است. هدف هوش مصنوعی در بازیهای ویدیویی، بهبود تجربه بازیکن از بازی است و نه یادگیری ماشین و یا تصمیمگیری.
در بازیهای قدیمی دشمنان و رقیبان بازیکن که از هوش مصنوعی بهرهمند بودند، اغلب ویژگیهایی، چون دشوارتر شدن مرحله به مرحله، الگوهای حرکتی قابل تشخیص و انجام امور بازی مبتنی بر حضور و یا عدم حضور بازیکن داشتند.
بازیهای مدرن، اما اغلب از تکنیکهایی، چون پیدا کردن مسیر (Pathfinding) و درخت تصمیم (Tree decision) استفاده میشود تا اقدامات کاراکترهای غیربازیکن (NPCs) هدایت شود.
هدف از به کارگیری هوش مصنوعی در بازی ویدیویی چیست؟
بسیاری از افراد احتمالا گمان میکنند که دراکثریت بازیهایی که در طی سالهای اخیر عرضه شدهاند از هوش مصنوعی پیشرفتهای برای کاراکترهای غیرقابل بازی (NPCs) استفاده شده است.
اما باید گفت بسیاری از سازندگان بازیهای ویدیویی میل زیادی به قرار دادن هوش مصنوعی پیشرفته در بازیهای خود ندارند؛
زیرا که میترسند تجربه بازیکن از بازی را تحتالشعاع خود قرار دهد. هدف از هوش مصنوعی در بازیهای ویدیویی ساخت موجودی غیرقابل شکست نیست که بازیکنان در برابر آن به تقلا بپردازند؛
بلکه هدف سازندگان بازی از قرار دادن الگوریتمهای مبتنی بر هوش مصنوعی به حداکثر رساندن مشارکت بازیکن در بازی و لذتی است که در طول دوره زمانی طولانی برای او حاصل میشود.
استفاده از هوش مصنوعی پیشرفته معمولا در بازیهای تختهای انجام میگیرد، بازیهایی مانند شطرنج، گو، اتلو و غیره.
در اینگونه بازیها ساختن سامانهای کاملتر و هوشمندتر اساساً هدف اصلی بازیسازان است. اما در مورد بازیهای جریان اصلی، عنوانهای محبوب جهانی، مسئله به این شکل نیست.
در بازیهای ویدیویی جدی هدف روایت داستانی به شیوهای جدید است و معمولا بر این تلاش میشود که مخاطب یا بازیکن به تعامل هر چه بیشتری با جهان بازی دست پیدا کند.
در بازیهای ویدیویی جدی این که غول بازی شکستناپذیر باشد و بازیکن به دست او بهطور مکرر نابود شود، معمولاً چندان جذاب نیست. بلکه جذابیت در این است که امکان پیشرفت بازیکن به مرور زمان فراهم باشد و بتواند خود را با دشمن بازی همسطح کند.
بهطور کلی برخلاف تصور اولیهای که درباره حضور هوش مصنوعی در بازیهای ویدیویی به ذهن خطور میکند، باید گفت هدف از آن اغلب نه ساخت موجودی هوشمند، بلکه بالا بردن غوطهوری بازیکن در بازی است. در بازیهای ویدیویی هدف این نیست که بهترین هوش مصنوعی ممکن ساخته شود؛ بلکه به دنبال ساختن لذتبخشترین هوش مصنوعی برای تعامل بازیکن با آن است.
هوش مصنوعی در بازیهای ویدیویی از گذشته تا اکنون
پیشرفتهای اخیر هوش مصنوعی و بیرون آمدن آن از محیط آزمایشگاهی و ورود روزافزون آن به زندگی انسانها، باعث شده است که پرسشهایی پیرامون نسبت میان بازیهای ویدیویی و هوش مصنوعی و لزوم استفاده از الگوریتمهایی با هوشمندی بالاتر در بازیها در میان سازندگان بازیهای ویدیویی مطرح شده است.
پرسش اصلی در این زمینه این است که چه ابزارها و فناوریهایی برای ساختن سطح جدیدی از هوشمندی در بازیها لازم است و در این زمینه کدام رویکردها به هوش مصنوعی میتواند به ما یاری کند؟
برای درک بهتر این که هوش مصنوعی چطور میتواند بر آینده صنعت بازیهای ویدیویی تاثیر بگذارد، آنچه اهمیت دارد این است که تاریخ مشترک این دو حوزه را بدانیم.
تکنیکهای هوش مصنوعی بهکاررفته در بازی ویدیویی در طی دهههای اخیر نسبتاً ثابت باقی مانده است؛ زیرا فناوریهای پایهای تغییر بنیادی نداشتهاند.
از نخستین روزهای آغاز مدیوم بازیهای ویدیویی، سازندگان بازیها به دنبال برنامهنویسی نرمافزارهایی بودند که هم بتواند مانند یک انسان رفتار کند و هم در ساخت جهانهای مجازی به آنها کمک کند؛ بدون این که نیاز باشد طراح بازی (انسان) همه اجزای این جهانها را از کوچک تا بزرگ طراحی کند.
از نخستین بازیها همچون پونگ و یا پکمن تا بازیهای جدیدی که در آن بازیکن به کاوش در فضا میپردازد، مانند بازی جنگ ستارگان، سازندگان از هوش مصنوعی به شیوهای خاص و جالب توجه در بازیها استفاده میکردند. از نظر تاریخی، نخستین نمونه بازی ویدیویی را یکی از پدران بنیانگذار هوش مصنوعی، آلن تورینگ، ساخته است. تورینگ پیش از این که حتی کامپیوتری وجود داشته باشد که الگوریتمها بر روی آن اجرا شود، الگوریتمی برای شطرنج بازی کردن طراحی کرده بود.
اما در دورههای مختلف نیاز و اهداف سازندگان بازی، با هوش مصنوعی موجود در آن زمان برطرف میشد. بسیاری از الگوریتمهای هوش مصنوعی در بازیهای قدیمی برای بازیکنان امروز احتمالا خیلی هوشمند به نظر نخواهند آمد.
بهطور مثال دشمن بازیهای سوپرماریو در برابر دشمنهای بازی ایفای نقش دارک سولز ۳ (Dark Souls ۳) بسیار ابتدایی به نظر میآیند. اما از نظر فناوری تفاوت ماهوی چندانی میان این دو وجود ندارد. ماهیت الگوریتمهای به کار رفته در بازیهای ویدیویی تا حد زیادی ثابت باقی مانده است.
اما چیزی که باعث تفاوت تجربه بازیهای نسل قبل با بازیهای مدرن روز دنیا میشود، پیچیدهتر شدن این الگوریتمها، خلاقانهتر شدنشان و امکان استفاده از پردازشگرهایی سریعتر است.
آنچه بازی دارک سولز را بسیار سخت میکند این است که غولهای بازی (Bosses) میتواند با سرعتی غیرقابل تصور حرکت کنند و دقتی بسیار زیاد دارند و همچنین بهگونهای برنامهنویسی شدهاند که اشتباهات رایج انسان را میتوانند پیشبینی کنند.
اما حرکات دشمنان این بازی، مانند حرکات دشمنان همه بازیهای دیگر را میتوان حفظ کرد، خود را با آن انطباق داد و در نهایت حتی بازیکنهای متوسط نیز با تمرین و دقت میتوانند آن را شکست دهند. تنها در حوزههای بسیار محدودی مانند شطرنج است که هوش مصنوعی میتواند به راحتی بر انسان پیروز شود.
در ادامه بعضی از روشهای رایج مبتنی بر هوش مصنوعی برای کنترل کاراکترهای غیرقابل بازی را معرفی میکنیم. این روشها شامل الگوریتمهای «ماشین حالات متناهی»، «درخت جستجوی مونت کارلو»، الگوریتمهایی برای مسیریابی و «درخت تصمیمگیری» هستند.
ماشین حالات متناهی
بهطور کلی باید در نظر گرفت که هوش مصنوعی واژهای است که دامنهای بسیار وسیع دارد و لزوما به معنی یک سیستم که از اعمال بازیکن الگوهایی را یاد میگیرد، نیست. رایجترین نقش هوش مصنوعی در بازیهای ویدیویی کنترل کردن کاراکترهای غیرقابل بازی، باتها یا NPC هاست. طراحان بازی اغلب از شگردهای مبتنی بر هوش مصنوعی استفاده میکنند تا این باتها هوشمند به نظر برسند.
بازی ولفنشتاین در سال ۱۹۹۲ عرضه شد و در این بازی میتوان یکی از اولین کاربردهای هوش مصنوعی در بازیهای سهبعدی را مشاهده کرد. هوش مصنوعی به کار رفته در این بازی نوعی از مدل «ماشین حالات متناهی» (FSM) است. این مدل نوعی هوش مصنوعی ساده است که در آن سازندگان فهرستی از حالتها و رویدادهای مختلفی که یک بات میتواند تجربه کند، فراهم میکنند.
سازندگان سپس باید در هر موقعیت پاسخی مشخص را برای آن بات تعریف و تعیین کنند. بهطور خلاصه ماشین حالات متناهی سامانهای است که به واسطۀ آن باتها به اقدامات بازیکن با استفاده از رفتارهای از پیش برنامهریزیشده پاسخ میدهد.
بهطور مثال در یک بازی تیراندازی، بات مبتنی بر هوش مصنوعی هنگامی که بازیکن (انسان) در برابرش ظاهر شود، حمله میکند و هنگامی که سطح سلامتیاش بسیار پایین باشد، فرار میکند.
نموداری سادهشده از نحوه کار الگوریتم ماشین حالات متناهی در یک بازی اکشن NPC در چهار مرحله «پرسه»، «حمله»، «فرار» و «کمک گرفتن» تعریف شده است.
اما الگوریتم ماشین حالات متناهی (FSM) برای همه بازیها مناسب نیست. بهطور مثال تصور کنید که در یک بازی استراتژیک، اگر یک بات یا NPC بهگونهای برنامهریزی شده باشد که هربار واکنش یکسانی نشان دهد، بازیکن به سادگی یاد خواهد گرفت که چطور کامپیوتر را شکست دهد و این باعث تکراری شدن بازی خواهد شد و چندان برای بازیکن سرگرمکننده نخواهد بود.
بهطور کلی نقطه ضعف اصلی این الگوریتم پیشبینیپذیری آن است و همۀ رفتارهای باتها از پیش برنامهریزی شدهاند. البته این ایراد را میتوان با وارد کردن حالات و جزئیات بسیار زیاد تا اندازهای برطرف کرد. اما در این صورت بازیساز باید وظیفه دشوار و طاقتفرسای برنامهنویسی برای این جزئیات را برعهده بگیرد و هوش مصنوعی خود قادر به انتخاب و تصمیمگیری نیست.
نموداری از الگوریتم ماشین حالات متناهی در بازی پونگ
درخت جستجو مونت کارلو
یک روش پیشرفتهتر برای بهبود و ارتقای تجربه شخصیشده بازی، الگوریتم درخت جستجوی مونت کارلو (MCST) نام دارد. این الگوریتم راهبردی است برای انتخاب تصادفی از میان راههای آزمایشی برای حل یک مسئله. این همان راهبردی است که در برنامه کامپیوتری دیپ بلو استفاده شد.
این برنامه نخستین برنامه کامپیوتری بود که توانست قهرمان شطرنج جهان را در سال ۱۹۹۷ شکست دهد. در هر لحظه از بازی، دیپ بلو از این الگوریتم استفاده میکند تا نخست همه حرکات ممکنی که میتواند انجام دهد را شناسایی کند. سپس همه پاسخهای بازیکن (انسان) را بررسی میکند و سپس همه واکنشهای ممکن به آن پاسخ را بررسی میکند.
این پاسخها و حرکات محتمل مانند شاخههایی از یک تنه رشد میکند و شاخه شاخه میشود و به همین خاطر «جستجوی درختی» نام دارد. بعد از این که این فرایند چندبار تکرار شد، هوش مصنوعی در نهایت خروجی را محاسبه میکند و بهترین شاخه را برای دنبال کردن انتخاب میکند.
بعد از انجام یک حرکت واقعی در بازی، هوش مصنوعی دوباره این جستجوی درختی را هر بار بر اساس خروجیهایی که هنوز ممکن و محتمل هستند تکرار میکند. در بازیهای ویدیویی، هوش مصنوعی با طراحی جستجوی درختی میتواند هزاران حرکت محتمل را محاسبه کند و شاخهای با بهترین پیامد را انتخاب کند.
عکس: نمونهای ساده از الگوریتم درخت جستجو مونت کارلو
اما اگر در یک بازی مانند مجموعه بازیهای استراتژیک تمدن که در آن کامپیوتر حجم وسیعی از انتخابها را انجام میدهد، بخواهیم از این الگوریتم درخت جستجو برای محاسبه تمام حالتهای ممکن استفاده کنیم، کامپیوتر نیاز به زمانی بسیار طولانی خواهد داشت تا نمودار شاخهای پیچیده برای هر سناریو ممکن برای همه بازی فراهم کند.
به همین خاطر برای اجتناب از این محاسبه انبوه، الگوریتم درخت جستجو (MCST) بهطور تصادفی و قمارگونه تعدادی از گزینههای محتمل را انتخاب میکند و تنها برای گزینههای انتخاب شده، نمودار درختی ترسیم میکند. واژه «مونت کارلو» بهکار رفته در عنوان این الگوریتم نیز اشاره به این قمار دارد.
بدین شیوه محاسبه بسیار سریعتر رخ میدهد و کامپیوتر میتواند تحلیل کند که کدام یک از حالتهای انتخابشده بیشترین بازدهی را به همراه خواهد داشت.
عکس: نحوه عملکرد الگوریتم درخت جستجو مونت کارلو
یافتن مسیر
یکی دیگر از استفادههای رایج از هوش مصنوعی در بازیها، «مسیریابی» است. مسیریابی، روشی است که به وسیله آن مشخص میشود که یک کاراکتر غیرقابل بازی یا بات چطوری از یک نقطۀ نقشه به نقطه دیگر، با در نظر گرفتن موانع، محدودیتهای جغرافیایی و ... حرکت کند.
مسیریابی بهواسطه هوش مصنوعی- که حرکت عاملها در دنیای بازی به روشهای باورپذیر، بهینه و هوشمند است - یکی از پرکاربردترین تکنیکهای هوش مصنوعی دربازیهای ویدیویی است.
وقتی یافتن مسیر منجر به حرکت غیرمنطقی مانند عبور از دیوارهها، موانع زیستمحیطی مانند رودخانهها یا طولانیترین مسیر ممکن شود، تجربه بازی برای کاربر با تقلیل کیفیت مواجه میشود.
در اغلب بازیهای تجاری از مسیریابی ساده و سریع شبکه هاشور استفاده میشود که در آن زمین بازی به مربعهایی ثابت تقسیم میشود و الگوریتمهای مسیریابی بر مبنای رفتن از این مربع به مربع دیگر فعالیت میکنند.
به جای این شبکه سفت و سخت از اشکال هندسی متقارن، بعضی از بازیها از چندضلعیهای نامتقارن (محدب و مقعر) و شبکهای استفاده میکنند و یک مسیریابی شبکهای برای نواحی نقشه که باتها میتوانند در آنها حرکت کنند، تعریف میکند.
این روش که با نام «مسیریابی درهمتنیده» یا Navmesh شناخته میشود، نوعی ساختار داده انتزاعی است که به عاملهای هوش مصنوعی در پیدا کردن مسیر خود از طریق فضای پیچیده کمک میکند. Navmesh شامل (حداقل) دو چندضلعی محدب و مقعر است که نواحی یک محیط که عاملهای هوش مصنوعی قادر به حرکت در آن هستند را مشخص میکند.
روش رایج سوم این است که سازندگان بهطور دستی مسیر حرکت باتها را تعریف کنند. این روش ممکن است باعث شود که حرکت باتها غیر عادی جلو کند. بهطور کلی در بازیهایی که محیط پیچیدهتری دارند، مسیریابی دستی از مسیریابی شبکهای پیامدهای فاجعهبارتری دارد.
عکس:مسیریابی ساده از طریق تبدیل نقشه به مربعها و هاشورها
بهطورکلی مسیریابی یک زیرمجموعه اساسی از هوش مصنوعی بازی است که بر دادن توانایی مسیریابی به باتها در یک محیط پویا و در حال تغییر متمرکز شده است تا بتوانند در حالی که از برخورد با سایر موجودات (باتهای دیگر، بازیکنها و ...) اجتناب کنند و یا با همکاری دیگر باتها (مسیریابی گروهی)، مسیر خود را پیدا کنند.
مسیریابی در بازیهای استراتژیک پویا که واحدهای نیروی بسیار زیادی دارند، مانند مجموعه بازیهای عصر امپراطوریها و تمدن اغلب ضعیف اجرا میشود و واحدها اکثر موارد در مسیر سایر واحدها قرار میگیرند.
از نظر مالی برای سازندگان بازیها اغلب بهصرفهتر است که به جای بهبود و اصلاح هوش مصنوعی بازی برای حل مناسب مشکل در محیط مجازی، سناریو و یا محیط بازی را تغییر دهند تا قابل کنترلتر باشد. یعنی اگر مسیریابی بر سر یک مانع خاص دچار باگ و مشکل شد، سازنده بازی اغلب به جای حل مشکل الگوریتم صرفاً به تغییر دادن مکان و یا حذف آن مانع میپردازد.
بهطور مثال در بازی نیمه عمر (۱۹۹۸) الگوریتم مسیریابی گاهی اوقات در پیدا کردن راهی برای این که باتها از یک نارنجک پرتابشده فرار کنند، دچار مشکل میشد. سازندگان بازی به جای این که الگوریتم را تغییر دهند و به باتها اجازه دهند که از برابر نارنجک فرار کنند، به خاطر ریسک احمقانه رفتار کردن آنها، صرفاً باتها را بهگونهای کدگذاری کردند که در این موقعیت روی زمین دراز بکشند.
هوش مصنوعی در بازیهای تیراندازی
بسیاری از بازیهای کنونی در دستهبندی بازی اکشن، تیراندازی اول شخص یا ماجرایی قرار میگیرند. در بسیاری از این بازیهای سطوحی از نبرد و درگیری رخ میدهد. قادر بودن هوش مصنوعی به کارآمدی در نبردها در این دسته از بازیها بسیار اهمیت دارد.
هدف مشترک بازیها از بهکارگیری هوش مصنوعی این است که شخصیتها و کاراکترهایشان بیشتر انسانگونه باشد و یا حداقل بیشتر شبیه انسان به نظر برسند.
یکی از برجستهترین و مثبتترین خصیصههای هوش مصنوعی در بازیهای ویدیویی، توانایی شکار است. هوش مصنوعی در آغاز تنها به شیوهای صفر و یکی عمل میکرد؛ اگر بازیکن در محدودهای خاص حضور داشت، هوش مصنوعی یا به شیوهای کاملاً هجومی یا کاملاً دفاعی به حضور او واکنش نشان میداد.
اما در سالهای اخیر ایدۀ «شکار» مطرح شده است. در وضعیت شکار هوش مصنوعی به دنبال علائم و نشانههای واقعگرایانهای میگردد؛ بهطور مثال صدایی که از قدم زدن بازیکن ایجاد میشود و یا ردپای او. این پیشرفتها صورت پیچیدهتری از بازی را امکانپذیر کرده است که با این ویژگی بازیکن میتواند بهطور اساسی این که با دشمن روبرو شود یا از آن اجتناب کند را در نظر بگیرد. بهطور کلی چنین پیشرفتی امکان ایجاد شدن ژانر بازیهای «مخفیکاری» را فراهم کرده است.
پیشرفت دیگر در دوره اخیر در حوزه هوش مصنوعی بازی، پدید آمدن «غریزه بقا» است. پردازشگرهای درون بازی میتوانند اشیاء مختلفی در یک محیط را شناسایی کرده و مشخص کنند که آیا میتواند برای بقا مفید یا مضر باشد.
مانند کاربر، هوش مصنوعی نیز در حین درگیری و شلیک گلولهها میتواند به دنبال سرپناهی بگردد و پشت موانع پوشش بگیرد و خود را در حین کارهایی، چون پر کردن خشاب و یا پرتاب کردن نارنجک بیمحافظت قرار ندهد.
بهطور کلی الگوریتم اصلی هوش مصنوعی در این دسته بازیها فرق چندانی نکرده است و همچنان از ماشین حالات متناهی به عنوان روش اصلی استفاده میشود. اما توجه کردن به جزئیات بسیار و نوشتن کدهایی هوشمندانه برای رفتارهای باتها باعث تفاوت کیفیت بازیهای تیراندازی در سالهای اخیر شده است.
درخت تصمیمگیری
یکی از الگوریتمهای مبتنی بر هوش مصنوعی که در بازیهای مدرن و بهخصوص بازیهای تعاملی و روایتمحور مورد استفاده قرار میگیرد، الگوی درخت تصمیمگیری است. در یک درخت تصمیمگیری بیش از یک انتخاب در برابر بازیکن قرار میگیرد و با انتخاب هر گزینه، گزینههای دیگری مبتنی بر گزینۀ انتخابشده در برابر بازیکن قرار میگیرد و بدین شیوه بازی میتواند روایتهای متفاوتی را دنبال کند.
عکس: نمونهای از درخت تصمیمگیری برای مدلسازی رفتار یک کاراکتر غیرقابل بازی
یک مثال برای این الگو، بازی جنگ ستارگان جدای: محفل سقوطکرده است. در طی بازی اشارهها و راهنماهایی پیرامون گذشته بازیکن و آینده در صورت وقوع شرایطی خاص به بازیکن داده میشود.
بازی موفق ویچر ۳ نیز از این الگوریتم استفاده کرده است و در آن پایانهای متفاوتی تعبیه شده و مرگ و زندگی بعضی از کاراکترها به انتخابهای بازیکن وابسته است.
این الگوریتم فیالواقع استفاده از تکنیکهای هوش مصنوعی در روایت داستان و سناریو آن میباشد. امروزه در بازیهای روایتمحور این الگو رایجترین و محبوبترین الگو در میان بازیسازان است.
از درخت تصمیمگیری برای برنامهنویسی پیچیدهتر و روایتمحور باتها نیز میتوان استفاده کرد و در این صورت باتها براساس رویدادها و انتخابها، رفتارهایی متفاوت انجام میدهند.
__________________________________
منابع:
https://www.aberdeen.com/wp-content/uploads/۲۰۱۸/۰۳/nintendo.jpg
http://www.newyorker.com/archive/۱۹۵۲/۰۸/۰۲/۱۹۵۲_۰۸_۰۲_۰۱۸_TNY_CARDS_۰۰۰۲۳۶۰۵۳
https://i.redd.it/yd۵abo۸۲۱spz.jpg
https://www.youtube.com/watch?v=cIfowwJj_GA
https://fa.wikipedia.org/wiki/%D۸%AF%D۸%B۱%D۸%AE%D۸%AA_%D۸%AA%D۸%B۵%D۹%۸۵%DB%۸C%D۹%۸۵
http://yannakakis.net/wp-content/uploads/۲۰۱۲/۰۳/gameAI.pdf
https://www.sciencenewsforstudents.org/wp-content/uploads/۲۰۱۹/۱۱/۸۶۰_AI_gaming.png
https://www.seethru.co.uk/wp-content/uploads/۲۰۱۹/۰۲/iStock-۸۴۱۱۳۵۹۵۸.jpg
https://www.youtube.com/watch?v=NPuYtHZud۰o
https://pyxis.nymag.com/v۱/imgs/bda/۹e۷/۵۹ddba۶۰۴۰۶eb۷۲d۱f۵۷۹۴۵۵۶۴۹۹e۳bf۶a-۲۲-ornstein.h۴۷۳.w۷۱۰.jpg
https://www.youtube.com/watch?v=HwcNLGiKVEc
https://cdn.vox-cdn.com/thumbor/j۳n۷RjIIvzTK۹GPkKp۴vYcwe۸RQ=/۱۴۰۰x۰/filters:no_upscale () /cdn.vox-cdn.com/uploads/chorus_asset/file/۱۳۷۱۲۲۷۵/Screen_Shot_۲۰۱۹_۰۱_۲۴_at_۷.۱۴.۳۶_PM.png
https://www.history.com/news/in-۱۹۵۰-alan-turing-created-a-chess-computer-program-that-prefigured-a-i
https://images.theconversation.com/files/۲۷۷۲۲۵/original/file-۲۰۱۹۰۵۳۰-۶۹۰۵۹-۸۱bj۴۶.jpg?ixlib=rb-۱.۱.۰&rect=۵۳%۲C۰%۲C۴۵۰۰%۲C۳۷۸۵&q=۴۵&auto=format&w=۴۹۶&fit=clip
https://thumbor.forbes.com/thumbor/۹۶۰x۰/https%۳A%۲F%۲Fblogs-images.forbes.com%۲Fdavidthier%۲Ffiles%۲F۲۰۱۶%۲F۰۴%۲FIudex-Gundyr-battles-player-to-test-their-worth-۱۲۰۰x۶۷۵-۱۲۰۰x۶۷۵.jpg
Finite State Machine
https://sitn.hms.harvard.edu/flash/۲۰۱۷/ai-video-games-toward-intelligent-game/
https://i۲.wp.com/sitn.hms.harvard.edu/wp-content/uploads/۲۰۱۷/۰۸/Slide۰۱.jpg?resize=۱۰۲۴%۲C۷۶۸&ssl=۱
https://towardsdatascience.com/artificial-intelligence-in-video-games-۳e۲۵۶۶d۵۹c۲۲
https://matissnatdip.files.wordpress.com/۲۰۱۳/۰۲/finite-state-machine.png
Deep Blue
https://i۱.wp.com/sitn.hms.harvard.edu/wp-content/uploads/۲۰۱۷/۰۸/Slide۰۴.jpg
https://i.stack.imgur.com/GR۷qf.png
Pathfinding
http://repository.tudelft.nl/assets/uuid:f۵۵۸ade۰-a۱۶۸-۴۲ff-a۸۷۸-۰۹d۱cf۱e۵eb۹/Thesis_Sandy_Brand_۲۰۰۹.pdf p۴
https://wildfiregames.com/forum/uploads/monthly_۲۰۱۹_۰۲/۱۶۰۶۳۲۴۳۳۷_۰A.D.Gridlines.JPG.۳ea۸e۷۷۵۷۷۵be۶e۳b۹۳۶b۶۳c۴۳cb۳dac.JPG
https://www.wikiwand.com/en/Pathfinding
https://answers.ea.com/t۵/image/serverpage/image-id/۹۳۸۷۲i۷۴۹B۰۴۵AF۶B۳۹۸D۱?v=v۲
https://archive.org/details/byte-magazine-۱۹۸۲-۱۲/page/n۱۰۱/mode/۲up?view=theater p۱۰۰
Half-life
Lidén, L. (۲۰۰۳). Artificial stupidity: The art of intentional mistakes. AI game programming wisdom, ۲, ۴۱-۴۸.
https://www.youtube.com/watch?v=ZZsSx۶kAi۶Y
https://www.gamersdecide.com/sites/default/files/screenhunter_۱۵۴_۳.jpg
https://www.wikiwand.com/en/Artificial_intelligence_in_video_games
https://i.ytimg.com/vi/Kt۱BizU_ono/maxresdefault.jpg
https://www.mobygames.com/images/shots/l/۶۴۸۴۴۱-the-walking-dead-survival-instinct-windows-screenshot-starting.jpg
https://medium.com/@antoneb/decision-trees-in-video-games-۳ea۳f۲۵۱f۹۶e
http://archive.gamedev.net/archive/reference/programming/features/trees۱/figure۱-۴.gif
Star Wars Jedi: Fallen Order
https://cdn.mos.cms.futurecdn.net/kvdEgxZGKmr۶zkzoeabq۸۴.jpg