هوش مصنوعی برای خلق رفتارهای پیچیده شخصیتهای بازی در شبیهسازیها، بازیهای استراتژی همزمان و موارد دیگر
عنوان دوره: طراحی و برنامهنویسی شخصیتهای غیربازیکن (NPC) هوشمندتر با C#
مباحث کلیدی:
- کاربرد اهداف، وضعیتها، اقدامات، باورها و برنامهریزی مسیر در بازیهای کامپیوتری.
- آشنایی با جزئیات یک کتابخانه برنامهریزی عملیات مبتنی بر هدف (GOAP) و ساخت آن از ابتدا.
- توسعه و رفع اشکال شبیهسازیهای خودتان.
پیشنیازها:
آشنایی با زبان برنامهنویسی C# و موتور بازیسازی Unity ضروری است.
معرفی GOAP (برنامهریزی عملیات مبتنی بر هدف)
GOAP یک معماری هوش مصنوعی است که به شخصیتهای بازی اجازه میدهد اهداف خود را انتخاب کرده و بر اساس وضعیت محیط و منابع موجود، برای دستیابی به آنها برنامهریزی کنند. این تکنیک در طیف گستردهای از ژانرهای بازی، از تیراندازی اول شخص تا استراتژیهای همزمان، برای توسعه شخصیتهای هوشمندی که قادر به تصمیمگیریهای هوشمندانه بدون نیاز به ماشینهای وضعیت محدود بزرگ هستند، کاربرد دارد. کد پایه این سیستم به ظاهر ساده، در عین حال منطقی، قابل استفاده مجدد و فوقالعاده قدرتمند است. این کتابخانه به زبان C# نوشته شده و در Unity V.2019 پیادهسازی شده است، اما به راحتی به سایر برنامهها نیز منتقل میشود.
پروژههای این دوره با Unity 6 آزمایش شده و سازگار هستند.
آموزش تخصصی GOAP توسط متخصص باتجربه
در این دوره، پنی با سبک آموزشی تحسینشده بینالمللی و دانش بیش از ۲۵ سال تجربه در حوزه بازیها، گرافیک و نویسندگی دو کتاب برنده جایزه در زمینه هوش مصنوعی بازی، تکنیک پیشرفته GOAP را برای خلق شخصیتهای باورپذیر و هوشمند در بازیها شرح میدهد. در طول دوره، با کارگاههای عملی همراه خواهید بود که شما را در هر مرحله از ساخت API GOAP شخصیتان راهنمایی میکنند. شما کل کتابخانه GOAP را از پایه خواهید ساخت و در عین حال یک سناریوی شبیهسازی بیمارستان را به صورت موازی توسعه میدهید تا API را در حین ساخت آزمایش کنید.
آنچه در این دوره خواهید آموخت:
- برنامهنویسی و کار با یک کتابخانه و API GOAP که در طیف گستردهای از پروژههای بازی قابل استفاده مجدد است.
- اهداف، اقدامات، وضعیتها و باورها که وضعیت محیط بازی، خواستههای شخصیتها و درک آنها از جهان را تعریف میکنند.
- NavMesh ها و Agent ها که قابلیتهای پیشرفته برنامهریزی مسیر و ناوبری را برای شخصیتها فراهم میکنند.
- ساخت پویا (Dynamic Building) NavMesh ها برای امکان جابجایی منابع در محیط.
- موجودی (Inventories) برای هر شخصیت جهت انجام وظایفی که اهداف شخصیت را برآورده میکنند.
- استفاده از سیستم رابط کاربری Unity برای جابجایی منابع قابل کشیدن (draggable resources) در محیط بازی.
محتوا و مرور دوره
در طول دوره، شما یک کتابخانه و API GOAP را از ابتدا تا انتها خواهید ساخت تا دانش عمیقی از کد پایه به دست آورید. در کنار آن، یک شبیهسازی ساده بیمارستان برای آزمایش قابلیتهای کتابخانه ساخته میشود. این شبیهسازی همچنین از سیستم NavMesh یونیتی برای ناوبری و برنامهریزی مسیر استفاده خواهد کرد.
دوره با مروری بر سیستم NavMesh یونیتی آغاز میشود و عملکرد اولیه مورد نیاز برای شبیهسازی بیمارستان را پوشش میدهد. سپس به مفهوم GOAP پرداخته میشود و دانشجویان چگونگی تعامل اهداف، اقدامات و برنامهها را کشف خواهند کرد. یک برنامهریز (planner) ساخته میشود که توالی اقدامات هر شخصیت را به صورت پویا، بر اساس باورهایشان نسبت به اهدافشان در طول شبیهسازی، ایجاد میکند.
پس از آن، موجودیها معرفی و توسعه داده میشوند تا منابع مورد نیاز شخصیتهای منفرد را نگهداری کنند. این منابع برای تکمیل برنامه مورد نیاز هستند و همچنین به هدایت ناوبری شخصیت در محیط کمک میکنند. این مرحله به طراحی رفتارهای پیچیدهتر منجر میشود که در آن دو شخصیت باید برای تکمیل یک برنامه همکاری کنند.
با ادامه دوره، شخصیتهای بیشتری با نقشهای متفاوت اضافه و به صورت پویا ایجاد میشوند و منابع اضافه و حذف میگردند تا یک شبیهسازی پیچیده توسعه یابد. در پایان دوره، دانشجویان یک شبیهسازی بیمارستان با بیماران، پرستاران، پزشکان و سرایداران خواهند داشت که هر کدام نقشها، اهداف، اقدامات و منابع مورد نیاز خود را دارند.
اگرچه این دوره بر روی ساخت یک بازی کامل متمرکز نیست، بخش نهایی دانش بیشتری در مورد توسعه یونیتی ارائه میدهد و روشهایی برای تعامل با محیط مانند کشیدن و رها کردن آیتمها، پخت پویای NavMesh، ایجاد رابط کاربری و حرکت دوربین را بررسی میکند تا جهتگیری لازم برای تبدیل چنین شبیهسازی به یک بازی را به دانشجویان بدهد.
در پایان این دوره، دانشجویان یک کتابخانه و API GOAP کامل خواهند داشت که میتوانند از آن در پروژههای بازی خود برای ارائه رفتارهای هوشمندانه و پیچیده به شخصیتهای بازی استفاده مجدد کنند.
نظرات دانشجویان درباره دورههای پنی:
- "متوجه شدم که سختترین بخش این دوره برای من، یافتن کلماتی برای توصیف خوشحالی من از ثبتنام در آن است."
- "صادقانه بگویم، رویکرد تدریس هولیستیک را دوست دارم و هرگز در عرض چند ساعت اینقدر در مورد کدنویسی مؤثر با چنین توضیحات دقیقی یاد نگرفته بودم!"
- "پنی یک مربی عالی است و در تجزیه مفاهیم پیچیده به موضوعات کوچکتر و قابل فهم، عالی عمل میکند."
Penny de Byl
Penny @Holistic3D.com
نمایش نظرات