شاهکار ناتیداگ (Naughty Dog) در هوش مصنوعی بازیهای ویدیویی
بازی The Last of Us که در سال ۲۰۱۳ منتشر و بعدها بازسازی شد، استانداردهای جدیدی برای رفتار هوش مصنوعی و روایت داستانی همهجانبه تعیین کرد. در پسِ روایت احساسی و ارائه سینمایی این بازی، یک سیستم پیشرفته هوش مصنوعی و مسیریابی قرار دارد که توسط ترکیبی از زبانهای برنامهنویسی و الگوریتمهای پیشرفته پشتیبانی میشود. سیستم هوش مصنوعی این بازی نه تنها برای به چالش کشیدن بازیکنان طراحی شده، بلکه تعاملات پویا و واقعی را ایجاد میکند که تنش و غوطهوری در دنیای بازی را افزایش میدهد.
زبانهای برنامهنویسی مورد استفاده در بازی
موتور اختصاصی بازی ناتیداگ (Naughty Dog) که The Last of Us را اجرا میکند، عمدتاً با زبان ++C نوشته شده است. این زبان به دلیل کارایی بالا، کنترل حافظه در سطح پایین و تعامل مستقیم با سختافزار، استاندارد صنعت بازیسازی محسوب میشود. C++ امکان نوشتن کدهای بهینهسازیشده را فراهم میکند که برای پردازش گرافیک، شبیهسازی فیزیک و پردازش هوش مصنوعی در زمان واقعی حیاتی است.
استفاده از ++C به موتور ناتیداگ (Naughty Dog) اجازه میدهد تا حداکثر تواناییهای سختافزار پلیاستیشن را به کار گیرد و نرخ فریم روان و رفتار پاسخگوی هوش مصنوعی را تضمین کند. برخلاف زبانهای سطح بالا که به دلیل انتزاع، سربار عملکردی ایجاد میکنند، C++ کنترل دقیقتری بر تخصیص حافظه و سرعت اجرا ارائه میدهد که برای مسیریابی در محیطهای گسترده و تصمیمگیری هوش مصنوعی دشمنان ضروری است.
علاوه بر ++C، از زبانهای اسکریپتنویسی مانند Python و Lua برای برنامهنویسی رفتارهای هوش مصنوعی و تعاملات مبتنی بر رویداد استفاده میشود. این زبانها انعطافپذیری و امکان تکرار سریع در برنامهنویسی رفتارها را فراهم میکنند، که تنظیم واکنشهای دشمن و روالهای هوش مصنوعی را آسانتر میکند.
شکل ۱ – جزئیات صورت شخصیت اصلی (الی) هنگام دیدن افراد غیر منتظره.
(تصویری از بازی تازه The Last Of Us Part I Remake)
ناتیداگ (Naughty Dog): پیشگام در توسعه موتورهای بازی
ناتیداگ (Naughty Dog) بهعنوان یک پیشگام در صنعت بازیسازی، همواره مرزهای توسعه بازی را گسترش داده است. برخلاف بسیاری از استودیوها که از موتورهای بازیسازی شخص ثالث مانند Unreal یا Unity استفاده میکنند، ناتیداگ (Naughty Dog) کنترل کامل فناوری خود را در دست دارد و این امر بهینهسازی بینظیر و یکپارچگی بیدرنگ بین گیمپلی، انیمیشن و هوش مصنوعی را امکانپذیر میسازد.
در قلب این موتور، یک سیستم انیمیشن پیشرفته قرار دارد که تکنیکهای انیمیشن رویهای مبتنی بر هوش مصنوعی را با موشن کپچر ترکیب میکند. این رویکرد ترکیبی تضمین میکند که شخصیتها به طور طبیعی حرکت کرده و تعامل داشته باشند و به صورت یکپارچه بین انیمیشنها بر اساس تصمیمات هوش مصنوعی در زمان واقعی و ورودیهای بازیکن جابهجا شوند.
برای اسکریپتنویسی هوش مصنوعی، ناتیداگ (Naughty Dog) از یک سیستم اسکریپتنویسی مبتنی بر Lua استفاده میکند که درون موتور بازی تعبیه شده است. Lua به دلیل سبک بودن و ادغام آسان با موتورهای ++C در صنعت بازیسازی محبوب است. استفاده از Lua به توسعهدهندگان اجازه میدهد تا رفتارهای هوش مصنوعی را به سرعت نمونهسازی و تکرار کنند.
شکل ۲ – جزئیات فناوری Naughty Dog در به نمایش گذاشتن بازی به صورت سینماتیک همراه با تعملات شخصیت ها.
(تصویری از بازی The Last Of Us Part II) (برگرفته از هوش مصنوعی)
هوش مصنوعی و رفتار دشمنان در The Last of Us
یکی از جنبههای تحسینشده این بازی، هوش مصنوعی دشمنان است که بهطور هوشمندانه به اقدامات بازیکن واکنش نشان میدهد. هوش مصنوعی بازی بر اساس درختهای رفتاری طراحی شده است، که یک مدل تصمیمگیری سلسلهمراتبی است و تعیین میکند که شخصیتهای غیرقابلبازی (NPC) چگونه باید در موقعیتهای مختلف واکنش نشان دهند.
برای مثال، اگر دشمن صدایی بشنود (مانند شکستن یک بطری)، هوش مصنوعی از حالت گشتزنی به حالت هشدار منتقل میشود و محیط را برای یافتن تهدیدات اسکن میکند. در صورت مشاهده بازیکن، به حالت جنگی تغییر میکند. این انتقال بین حالتها باعث ایجاد حس واقعگرایی میشود و برخوردها را طبیعی جلوه میدهد.
هوش مصنوعی همچنین از تکنیکهای خط دید (LOS) و پرتوافکنی برای شبیهسازی بینایی انسان استفاده میکند. دشمنان فقط در صورتی میتوانند بازیکن را تشخیص دهند که در میدان دید آنها باشند و اشیاء جلوی دیدشان را نگرفته باشند.
سیستم مسیریابی و ناوبری
مسیریابی در The Last of Us توسط الگوریتم A* (ای-استار) انجام میشود که یکی از پرکاربردترین روشهای مسیریابی در بازیها است. این الگوریتم به شخصیتهای هوش مصنوعی اجازه میدهد تا کوتاهترین و کارآمدترین مسیر را در یک محیط پیدا کنند و بهطور پویا از موانع اجتناب کنند.
در موقعیتهای مخفیکاری، دشمنان فقط مسیرهای از پیش تعیینشده را دنبال نمیکنند. بلکه حرکت خود را بر اساس موقعیت بازیکن، منابع صدا و تغییرات محیطی تنظیم میکنند. بازی از شبکههای ناوبری(NavMesh) استفاده میکند که نقشههایی پیشمحاسبهشده هستند و به هوش مصنوعی نشان میدهند کدام مناطق قابلحرکت هستند.
یکی از ویژگیهای منحصربهفرد در The Last of Us سیستم هوش مصنوعی همراهان بازی است. الی، همکار هوش مصنوعی شخصیت اصلی، بهطور پویا به حضور دشمنان و خطرات محیطی واکنش نشان میدهد. رفتار او ترکیبی از ماشینهای حالت محدود (FSM) و برنامهریزی اقدامات هدفمحور (GOAP) است.
شکل ۳ – تصویری از درگیری ها و رفتار های دشمنان داخل بازی.
(تصویری از بازی تازه The Last Of Us Part I Remake)
(برگرفته از هوش مصنوعی)
سخن پایانی
هوش مصنوعی و مسیریابی در The Last of Us تعهد ناتیداگ (Naughty Dog) به واقعگرایی و غوطهوری را نشان میدهد. با استفاده از ++C برای عملکرد موتور بازی، Python و Lua برای اسکریپتنویسی و تکنیکهای پیشرفته هوش مصنوعی مانند درختهای رفتاری، الگوریتم A* و ماشینهای حالت محدود، این بازی تجربهای پویا و پاسخگو ارائه میدهد که همچنان معیار بازیهای مدرن مبتنی بر هوش مصنوعی بهشمار میرود.
