ایجاد یک سیستم موجودی فضایی کاربردی و آماده برای حالت چندنفره، شامل آیتمهای قابل تجهیز (Equippable)، قابل انباشت (Stackable) و قابل ساخت (Craftable)!
ساخت و مدیریت سیستمهای موجودی (اینونتوری) در موتور بازیسازی آنریل انجین.
کدنویسی سیستمهای تعامل با آیتم به روشی مستحکم و مقیاسپذیر.
کدنویسی سیستمهای موجودی و آیتم چندنفره (Multiplayer).
ایجاد شبکههای موجودی فضایی با دستهبندی آیتمها.
پیادهسازی آیتمهای قابل انباشت، مصرفی (Consumable) و قابل تجهیز.
دانش C++ در آنریل انجین الزامی است.
فضای دیسک کافی برای نصب آنریل انجین 5 و سیمبلهای دیباگینگ.
استفاده از Rider IDE (برای استفادههای غیرتجاری رایگان است!).
در این دوره، شما نحوه ایجاد سیستمهای اینونتوری (موجودی) برای بازیهای خود در آنریل انجین 5 را با استفاده از C++ و بلوپرینتها خواهید آموخت.
ما یک موجودی فضایی با شبکههای آیتم برای دستهبندیهای مختلف (قابل تجهیز، مصرفی و قابل ساخت) و قابلیت جابجایی بین این شبکهها را ایجاد خواهیم کرد. آیتمها میتوانند اندازههای متفاوتی داشته باشند و هر کدام تعداد متفاوتی از خانههای شبکه را اشغال کنند. همچنین آیتمها قابلیت انباشت (Stackable) خواهند داشت که امکان تقسیم، ترکیب، مصرف و انداختن آیتمها را فراهم میکند.
این سیستم موجودی با هدف مقیاسپذیری و ماژولار بودن طراحی شده و از بهترین روشهای کدنویسی C++ در آنریل انجین بهره میبرد. این اینونتوری به صورت یک پلاگین مجزا کدنویسی شده است که میتوانید آن را به چندین پروژه بازی اضافه کنید یا صرفاً در یک پروژه نگهداری کنید.
داراییهای (Assets) مورد نیاز برای این دوره ارائه شدهاند که شامل موارد زیر است:
تمامی مدلهای سهبعدی (3D Meshes) برای آیتمهای مورد استفاده، از جمله معجونهای مصرفی، شنلها، ماسکها و اسلحههای قابل تجهیز، و مواد اولیه قابل ساخت.
تمامی تکسچرهای دوبعدی (2D Textures) برای آیکونها، ویجتها، منوها، حاشیهها و پیامها.
افکتهای Niagara برای برداشتن آیتمها.
این پروژه از آنریل انجین 5.5 استفاده میکند و در آنریل انجین 5.6 نیز کار میکند؛ شما میتوانید از جدیدترین نسخه آنریل انجین برای این دوره استفاده کنید!
شبکههای موجودی فضایی (Spatial Inventory Grids) و قابلیت جابجایی بین چندین شبکه در موجودی برای نگهداری آیتمهای دستهبندیهای مختلف (ما آیتمهای قابل تجهیز، مصرفی و قابل ساخت را پیادهسازی میکنیم).
سیستم "Item Fragment" که به کمک آن آیتمها با افزودن "قطعات" ماژولار قابل شخصیسازی هستند تا قابلیتهای خاصی به آنها داده شود (این یک الگوی نرمافزاری شناخته شده در صنعت بازیسازی است). برای مثال، با افزودن یک Grid Fragment، آیتم قادر به اشغال چندین خانه در شبکه میشود؛ با افزودن یک Equippable Fragment، آیتم قابل تجهیز میشود و الی آخر.
پاپآپهای راهنمای ابزار (Tooltip Popups) آیتم که ویژگیهای آیتم را نمایش میدهند و استفاده از الگوهای طراحی برای ایجاد سیستمی بسیار منعطف که راهنماها با "فرگمنتهای" آیتم سازگار میشوند تا اطلاعات آن را نمایش دهند.
قابلیت جابجایی آیتمها در یک موجودی فضایی.
آیتمهای قابل انباشت (Stackable Items) با تعداد انباشت (Stack Counts) (فقط کافی است یک Stackable Fragment اضافه کنید)، با پشتیبانی از حداکثر تعداد انباشت و قابلیت تقسیم، ترکیب و انداختن آیتمها در موجودی.
آیتمهای مصرفی (Consumable Items)، قابلیت مصرف و اعمال رفتارهای سفارشی پس از مصرف آیتم (ما معجونها را پیادهسازی خواهیم کرد).
تجهیزات (Equipment) با اسلاتهای قابل تجهیز (Equippable Slots)، و تجهیز واقعی آیتمهای مختلف (ما شنلها، ماسکها و اسلحهها را پیادهسازی خواهیم کرد).
منابع (Assets) برای این دوره فراهم خواهند شد، از جمله کاراکتر، اسلحهها، تجهیزات، معجونها و آیتمهای قابل ساخت، و همچنین تمامی تکسچرهای رابط کاربری (UI) برای ویجتهای منوی موجودی. البته شما آزاد هستید که از منابع خودتان استفاده کنید!
همه چیز برای کار در یک محیط چندنفره (Multiplayer) برنامهنویسی شده است، هم برای سرور شنونده (Listen Server) و هم برای سرورهای اختصاصی (Dedicated Servers). همچنین در بازیهای تکنفره (Standalone) نیز کار میکند.
آیتمها کاربردی هستند - نه فقط بر آنچه در منوها میبینیم، بلکه بر آنچه در بازی اتفاق میافتد نیز تأثیر میگذارند. این سیستم به گونهای کدنویسی شده است که انعطافپذیر باشد و به شما امکان میدهد تا قابلیتهای خاص خود را هنگام مصرف/تجهیز/استفاده از آیتمها برنامهنویسی کنید، از جمله ادغام با سیستم قابلیت گیمپلی (Gameplay Ability System - GAS).
دانشجویان من به راحتی و با تلاش کم، این سیستم موجودی را در پروژههای خود ادغام کردهاند.
ما موضوعاتی از سطح متوسط تا پیشرفته C++ در آنریل انجین را پوشش خواهیم داد. اگر دوره من با عنوان "Unreal Engine 5 C++ The Ultimate Game Developer Course" را گذراندهاید یا دانش معادل آن را دارید، آماده شرکت در این دوره هستید!
همچنین به انجمن دیسکورد Druid Mechanics دسترسی خواهید داشت، جامعهای که من برای دانشجویانم ایجاد کردهام و طراحی شده تا مفیدترین منبع شما در طول یادگیری باشد. ما در حال حاضر بیش از 35,000 دانشجو داریم و این تعداد در حال افزایش است! همه ما اینجا هستیم تا به یکدیگر کمک کنیم!
امیدوارم از این دوره به همان اندازه که من از ساخت آن لذت بردم، لذت ببرید!
همین حالا شروع کنید و بیایید چند اینونتوری بسازیم!
Stephen Ulibarri
مهندس، برنامه نویس، توسعه دهنده بازی، نویسنده
نمایش نظرات