با این دوره آموزشی، قدم به دنیای ساخت بازیهای نقشآفرینی چندنفره آنلاین (Multiplayer RPG) با استفاده از سیستم قدرتمند Gameplay Ability System (GAS) در Unreal Engine بگذارید.
این جامعترین دوره آموزشی Unreal Engine است که در دسترس است. اگر میخواهید نحوه معماری یک بازی RPG کاملاً کاربردی را یاد بگیرید، این دوره به شما این امکان را میدهد تا این کار را با یک پایگاه کد توسعهپذیر، معماریشده با کد با کیفیت AAA انجام دهید. اگر تا به حال به این فکر کردهاید که مرز بین C++ و Blueprints را کجا بکشید، این دوره برای شما مناسب است. اگر تا به حال میخواستید یک RPG کامل با سیستم آمار، تواناییها، ارتقاء سطح، جادوها، ویژگیها، منوها ایجاد کنید، در حالی که پایه کد خود را تمیز نگه میدارید و بهترین شیوهها را دنبال میکنید، این دوره برای شما مناسب است. اگر میخواهید قابلیتهای توسعه Unreal Engine خود را ارتقا دهید و درک بهتری از عملکرد داخلی موتور داشته باشید، این دوره برای شما مناسب است. اگر قصد دارید بازی جدی خود را با سیستمهای به هم پیوسته، شامل ویژگیها، تواناییها، ارتقاء سطح، دشمنان و هوش مصنوعی بسازید و برای چند نفره کدگذاری کنید، این دوره برای شما مناسب است!
در این دوره، ما یک بازی به سبک RPG از بالا به پایین ایجاد خواهیم کرد که مملو از سیستمهایی است که با استفاده از سیستم قابلیت گیمپلی (GAS) ساخته شدهاند. اینجاست که یاد میگیرید چگونه یک بازی را معماری کنید و آن را ماهرانه کدگذاری کنید تا به راحتی قابل گسترش، ارتقا و نگهداری باشد. ما از اصول کدنویسی SOLID پیروی میکنیم و نسبت Blueprint/C++ را به گونهای متعادل میکنیم که بازیهای AAA انجام میدهند، مانند Fortnite. تجربه من در کد بازی حمل شده AAA، و همچنین مشاورههایی با توسعهدهندگان با تجربه صنعت به من این امکان را داده است که به شما نشان دهم که پایه کد یک بازی واقعی به چه شکلی است. اگر تا به حال به این فکر کردهاید که چه مقدار از یک بازی را میتوان در Blueprint نگه داشت در مقابل C++، دیگر نیازی به جستجو نیست. این دوره پاسخ است.
نکته: این دوره شامل برنامهنویسی در C++ است که شامل استفاده از یک محیط توسعه یکپارچه (IDE) مانند Visual Studio، Rider یا VSCode است. IDE مورد استفاده در این دوره توسط من Rider خواهد بود، اما این IDE یک الزام نیست برای اینکه دانشآموزان دوره را دنبال کنند. شما میتوانید از هر IDE دلخواه خود استفاده کنید.
داراییهای این پروژه بازی به طور خاص برای این دوره ساخته شدهاند و در یک بسته دارایی ارائه میشوند. این شامل:
شخصیتها، از جمله Aura، شخصیت اصلی، و همچنین شخصیتهای دشمن از جمله جنگجویان گابلین، رنجرز گابلین، یک شامان گابلین، شیاطین قرمز و سیاه، غول و Shroom.
یک بسته سیاه چال ماژولار که میتواند برای ساخت سیاه چالهای اساسی به هم متصل شود
یک زیارتگاه و ابلیسک نقطه راه
جلوههای سیستم نیاگارا ذرات، از جمله انفجارها، جلوههای ارتقاء سطح، سنگهای تیرکمان، ضربههای ضربه، پرتوهای برق، توپهای آتش، پیچهای آتش، شعلهها، ستارهها برای جلوههای بیحسی و موارد دیگر!
جلوههای صوتی برای دشمنان، ردپاها، جادوها و موارد دیگر!
بافتها برای HUD، از جمله دکمههای با کیفیت بالا، قابها، کرههای جادویی متحرک پویا، نوارهای پیشرفت، نوار XP و موارد دیگر!
مجموعههای انیمیشن کامل برای Aura و همه دشمنان
خیلی بیشتر!
در این دوره، موضوعات زیر را پوشش خواهیم داد:
تنظیم یک پروژه از بالا به پایین از ابتدا
انتخاب دشمن و آیتم با جلوههای طرح کلی
استفاده صحیح از OOP و وراثت برای ایجاد یک سلسله مراتب کلاس شخصیت
مقدمهای بر سیستم قابلیت گیمپلی و کلاسهای اصلی که آن را تشکیل میدهند
اجزای سفارشی سیستم قابلیت گیمپلی و مجموعههای ویژگی، و نحوه تکثیر ویژگیها
همه تنظیمات مهم برای همه کلاسها و اجزای GAS
نحوه استفاده از ویژگیها برای آمار بازیکن، از جمله ویژگیهای اصلی:
قدرت (افزایش آسیب فیزیکی)
هوش (افزایش آسیب جادویی)
تاب آوری (زره و نفوذ زره را افزایش میدهد)
نیرو (حداکثر سلامتی را افزایش میدهد)
ویژگیهای ثانویه، بر اساس ویژگیهای اصلی و سایر متغیرهای سفارشی:
زره (کاهش آسیب دریافتی، بهبود شانس بلوک)
نفوذ زره (درصد زره دشمن را نادیده میگیرد، شانس ضربه بحرانی را افزایش میدهد)
شانس بلوک (تغییر برای نصف کردن آسیب ورودی)
شانس ضربه بحرانی (شانس دو برابر کردن آسیب به علاوه جایزه ضربه بحرانی)
آسیب ضربه بحرانی (آسیب جایزه اضافه شده در هنگام ضربه بحرانی)
مقاومت در برابر ضربه بحرانی (شانس ضربه بحرانی دشمنان مهاجم را کاهش میدهد)
بازسازی سلامتی (مقدار سلامتی بازیابی شده هر 1 ثانیه)
بازسازی مانا (مقدار مانای بازیابی شده هر 1 ثانیه)
حداکثر سلامتی (حداکثر مقدار سلامتی قابل دستیابی)
حداکثر مانا (حداکثر مقدار مانای قابل دستیابی)
ویژگیهای حیاتی - مواردی مانند سلامتی و مانا، که وابسته به تمام ویژگیهای دیگر هستند
جلوههای گیمپلی - کلاسهایی در سیستم GAS که برای اعمال تغییرات در ویژگیها استفاده میشوند
برچسبهای گیمپلی - بخش اساسی GAS، که به ما امکان میدهد کیفیتها، ویژگیها، تواناییها، کلاسهای شخصیت و هر چیز دیگری را که میتوانیم تصور کنیم، شناسایی کنیم
رابط کاربری بازی - نحوه مدیریت رابط کاربری پیچیده در یک بازی RPG به طور موثر، به روشی سازمان یافته، ماژولار و مقیاسپذیر. ما پارادایمهای مختلف رابط کاربری را پوشش میدهیم، از MVC ( کنترلکننده نمای مدل) و MVVM ( مدل نمای ViewModel، با استفاده از ویژگی ViewModel جدید Unreal Engine)
منوهای ویژگی و جادو کامل، با قابلیتهای ارتقا، درختهای جادویی، سطوح جادویی قفل شده، ارتقاء جادو با سطح توانایی و موارد دیگر
ویژگیها - نحوه استفاده از ویژگیهای گیمپلی برای نشان دادن آمار بازیکن و ادغام آنها در مکانیکهای گیمپلی با ایجاد یک خط لوله برنامه کاربردی افکت، که امکان محاسبات و نتایج ناشی از پدیدهها در بازی مانند آسیب جنگی را فراهم میکند
تواناییهای گیمپلی - قلب GAS. ما انواع مختلفی از تواناییهای گیمپلی را برای مدیریت طلسمها، مدیریت قابلیتهای مهم شخصیت بازیکن و هوش مصنوعی دشمن ایجاد میکنیم و نحوه پیکربندی تواناییهای مختلف را مطابق با نیازهای شما توضیح میدهیم.
کلاسهای مختلف RPG - ما کلاسهای مختلف RPG شخصیت از جمله Ranger، Warrior و Elementalist را پیادهسازی میکنیم و این کار را به روشی آسان مقیاسپذیر انجام میدهیم تا بتوانید هر تعداد نوع کلاس شخصیت در بازی خود داشته باشید
آسیب و مبارزه - ما یک سیستم مبارزه به سبک RPG کامل با انواع آسیبهای مختلف، مقاومت در برابر آسیب و Debuffهای متناظر با انواع آسیبها را پیادهسازی میکنیم و این محاسبات را در خط لوله آسیب خود رمزگذاری میکنیم. همه ویژگیها، انواع آسیبها، مقاومتها و Debuffها در این بازی کاربردی هستند.
تمام مکانیکهای مبارزه به نوعی بازخورد بصری به بازیکن نمایش داده میشوند. این شامل متن شناور برای آسیب، تغییر رنگ بر اساس معیارهای سفارشی، متن شناور برای اطلاع از ضربات بحرانی، ضربات مسدود شده و ضربات مسدود شده بحرانی است. ما همچنین مکانیکهای عقب راندن و بیحس کردن را در پاسخ به آسیب رعد و برق، ناتوان کردن شخصیت/دشمن و همچنین Debuffهای آتش، که در آن شخصیتها به آتش کشیده میشوند و در حین سوختن آسیب آتش میبینند، پیادهسازی میکنیم.
هوش مصنوعی دشمن - ما رفتار دشمن را با استفاده از درختهای رفتاری Unreal Engine و سیستم پرسش محیطی (EQS) پیادهسازی میکنیم تا رفتار سفارشی را برای انواع دشمنان Ranged، Warrior و Elementalist ارائه دهیم.
دشمنان میتوانند طلسم بزنند و مینیونهای هوش مصنوعی را احضار کنند
محو شدن هندسه وقتی در راه دوربین برای یک بازی از بالا به پایین قرار میگیرد
هزینه توانایی و زمان خنک شدن (طلسمها منابع ویژگی را صرف میکنند - در این بازی، طلسمها هزینه مانا دارند)
HUD کاملاً کاربردی با طلسمهای مجهز، نمایش تایمرهای خنک شدن طلسم و تجربه ( XP)
توانایی اختصاص دادن تواناییها به ورودیهای مختلف در منوی طلسم (اختصاص FireBolt به کلید 1 و Electrocute به دکمه سمت چپ ماوس، تعویض آنها به عقب و غیره)
تجربه و سیستم ارتقاء سطح - ما یک سیستم تجربه ایجاد میکنیم، XP را برای از بین بردن دشمنان جایزه میدهیم و هنگام رسیدن به آستانههای XP برای تواناییهای مختلف، سطح را ارتقا میدهیم. XP و Level در HUD نمایش داده میشوند و همچنین پیامها و جلوههای ارتقاء سطح نمایش داده میشوند. ارتقاء سطح با به دست آوردن امتیازات ویژگی و امتیازات طلسم مرتبط است، که میتوان از آنها برای ارتقاء ویژگیها و تواناییهای طلسم در منوهای ویژگی و طلسم به ترتیب و همچنین تکمیل سلامتی و مانا پس از ارتقاء سطح استفاده کرد. ( اساساً، شما به اندازه کافی مثال از نحوه استفاده از این سیستم خواهید دید که میتوانید آن را با هر قابلیتی که برای بازیهای خود میخواهید، گسترش دهید)
طلسمهای غیرفعال - طلسمهایی که میتوانید تجهیز کنید و در حالی که تجهیز شدهاند، فعال میمانند.
مجموعهای از طلسمهای تهاجمی، که نمونهها و ویژگیهای مختلف GAS را به نمایش میگذارند، از جمله FireBolt، Electrocute، Arcane Shards و FireBlast.
ذخیره پیشرفت و انتقال سطح
موضوعات میانی/پیشرفته Unreal Engine، از جمله وظایف ناهمزمان سفارشی، وظایف توانایی، کتابخانههای عملکرد Blueprint، مدیران دارایی، Singletons (و چرا اینها فقط برای چند مورد بسیار انتخاب شده خوب هستند)، زمینههای افکت گیمپلی سفارشی، سریالسازی Net، ویژگیهای نوع عملیات Struct، C++ Lambdas، الگوریتمهای مکانیک بازی و خیلی چیزهای دیگر.
نحوه انتخاب اینکه کدام قابلیت باید در C++ برود در مقابل Blueprint - این یکی از با ارزشترین درسها است و در طول دوره آموزش داده میشود. دانشآموزان اغلب از من میپرسند "کدام قابلیت باید در C++ برود در مقابل در Blueprint؟" این دوره پاسخ من است. این یک پایه پروژه در مقیاس جدی با بیش از 100 ساعت فیلم و بدون پرکننده است. این پروژه با تقریباً 50٪ Blueprints و 50٪ C++ معماری شده است. من به شما نشان میدهم که کدام قابلیت باید در سمت C++ باشد، کدام قابلیت برای Blueprints مناسبتر است و چرا.
اصول کدنویسی SOLID و معماری کد - ما پایه کد خود را در این پروژه تمیز نگه میداریم. سوال دیگری که من اغلب میپرسم این است که " آیا این بهترین روش کدنویسی است؟" این دوره پاسخ من به این سوال است. این یک مثال از کدی است که در یک بازی AAA میبینید که به میلیونها بازیکن عرضه شده است. حفظ کد تمیز و ماژولار برای یک پروژه بازی جدی که باید مقیاسپذیر، توسعهپذیر، ماژولار، قابل نگهداری، قابل آزمایش، کارآمد و موثر باشد، ضروری است. این دوره به شما نشان میدهد که چگونه.
این یک دوره مبتدی نیست. من انتظار دارم که شما از قبل زبان برنامهنویسی C++ را درک کنید و حداقل یک پروژه Unreal Engine C++ ایجاد کرده باشید.
این دوره بهترین دوره من تا به امروز است و من بسیار مفتخرم که دوره Unreal Engine 5 - سیستم قابلیت گیمپلی - RPG از بالا به پایین را که نتیجه تقریباً یک سال توسعه دردسرساز، تحقیق، مشاوره با متخصصان و ایجاد دارایی است، به شما ارائه میدهم. پس از گذراندن این دوره، شما Unreal Engine را بسیار بهتر از یک توسعهدهنده متوسط درک خواهید کرد و به شما این قدرت را میدهد که پروژههای خوشمعماری خود را، بزرگ و کوچک، ایجاد کنید و برای تیم، شرکت، سرمایهگذاری انفرادی خود و هر کسی/هر چیز دیگری که با مهارتهای خود به آن لطف میکنید، ارزش به ارمغان آورید.
به دوره بپیوندید و در بزرگترین جهش حرفه توسعه بازی خود سرمایهگذاری کنید.
استفان اولیباری، بنیانگذار انجمن توسعهدهندگان بازی Druid Mechanics
این پروژه دوره در Unreal Engine نسخه 5.2 ایجاد شده است. به طور دورهای بهروزرسانیهایی اضافه میشوند تا از سازگاری با نسخههای جدیدتر موتور اطمینان حاصل شود.
Stephen Ulibarri
مهندس، برنامه نویس، توسعه دهنده بازی، نویسنده
نمایش نظرات