- مدرس دوره : امیرحسین محمدی پور ( رزومه )
- تعداد ویدیوها : 29 ویدیو
- مدت زمان دوره : 16:57:00
- سطح دوره : پیشرفته
- وضعیت دوره : به اتمام رسیده

آموزش ساخت بازی مشابه Bricks Breaker Quest در یونیتی
آموزش ساخت بازی Bricks Breaker در یونیتی | پروژه عملی از صفر تا صد
دورههای مقدماتی C# و Unity را گذراندهاید، اما هنوز احساس میکنید برای ساخت یک بازی کامل به تجربه عملی بیشتری نیاز دارید؟
این دوره دقیقاً برای همین مرحله طراحی شده است.
در دوره آموزش ساخت بازی Bricks Breaker در Unity، یک بازی کامل را از صفر مطلق تا یک گیمپلی کامل و قابل اجرا میسازیم و در این مسیر، مفاهیم مختلف برنامهنویسی بازی، طراحی سیستمها، مدیریت آبجکتها، رابط کاربری، صداگذاری و بهینهسازی را به صورت کاملاً عملی یاد میگیریم.
نکته مهم اینجاست که برای ساخت پروژه، قرار نیست از Asset، Package یا فایلهای آماده استفاده کنیم. همه چیز را خودمان و از پایه پیادهسازی میکنیم و مبنای اصلی توسعه پروژه، دانش زبان C# و قابلیتهای خود Unity است.
بنابراین این دوره یک تمرین بسیار عالی برای افرادی است که مباحث مقدماتی C# و Unity را یاد گرفتهاند و حالا میخواهند دانستههای خود را در قالب یک پروژه واقعی، کامل و عملی به کار بگیرند.
در این دوره دقیقاً چه چیزی میسازیم؟
در طول دوره، بازی Bricks Breaker را مرحلهبهمرحله توسعه میدهیم و بخشهای مختلف آن را از پایه پیادهسازی میکنیم.
از منطق اصلی بازی و برخوردها گرفته تا UI، منوها، صداگذاری و سیستمهای داخلی پروژه.
در مسیر ساخت بازی با موارد زیر کار خواهیم کرد:
طراحی و پیادهسازی Game Logic از صفر
پیادهسازی مکانیزمهای اصلی گیمپلی
ایجاد و مدیریت توپ و آجرها
پیادهسازی سیستم برخوردها و منطق مربوط به آنها
پیادهسازی سیستم امتیازدهی
مدیریت وضعیتهای مختلف بازی
پیادهسازی شرایط برد و باخت
طراحی و پیادهسازی رابط کاربری (UI)
طراحی و ساخت منوهای مختلف بازی
ایجاد سیستمهای مورد نیاز برای مدیریت بخشهای مختلف بازی
ایجاد جلوههای بصری و صوتی برای جذابتر شدن گیمپلی
ساخت یک سیستم قدرتمند و قابل توسعه برای صداگذاری بازی
پیادهسازی سیستم Restart بازی بدون نیاز به Reload مجدد Scene
استفاده عملی از Object Pooling Design Pattern
بررسی روشهای بهینهسازی کد و منطق بازی
مدیریت بهتر آبجکتها و منابع مورد استفاده در بازی
رفع مشکلات و خطاهای ایجادشده در طول توسعه پروژه
در نهایت رسیدن به یک گیمپلی کامل و قابل اجرا
همه چیز از صفر و بدون استفاده از فایلهای آماده
یکی از ویژگیهای مهم این دوره این است که پروژه را با تکیه بر دانش برنامهنویسی و زبان C# از پایه میسازیم.
در این پروژه قرار نیست برای بخشهای اصلی بازی به سراغ Packageهای آماده، Assetهای آماده یا سیستمهای از پیش ساختهشده برویم.
هدف این است که خودمان بفهمیم هر بخش چگونه کار میکند و چگونه میتوانیم سیستمهای مورد نیاز یک بازی را طراحی و پیادهسازی کنیم.
به همین دلیل، این دوره فقط آموزش ساخت یک بازی خاص نیست؛ بلکه فرصتی است برای اینکه دانستههای C# و Unity خود را در یک پروژه واقعی به کار بگیرید.
ساخت یک سیستم قدرتمند صداگذاری
صدا یکی از بخشهای مهم تجربه کاربر در بازی است.
در این دوره صرفاً چند فایل صوتی را به پروژه اضافه نمیکنیم؛ بلکه یک سیستم صداگذاری قدرتمند و قابل مدیریت برای بازی طراحی و پیادهسازی میکنیم تا بتوانیم صداهای مختلف بازی را به شکل اصولی مدیریت و کنترل کنیم.
این سیستم میتواند دید بهتری نسبت به نحوه طراحی سیستمهای قابل استفاده مجدد در پروژههای Unity به شما بدهد.
طراحی منوهای مختلف بازی
یک بازی کامل فقط به گیمپلی محدود نمیشود.
در کنار ساخت مکانیزمهای اصلی بازی، منوهای مختلف مورد نیاز پروژه را نیز طراحی و پیادهسازی میکنیم تا در نهایت با یک پروژه منسجمتر و کاملتر روبهرو باشیم.
این بخش کمک میکند با نحوه ارتباط UI و منطق بازی و همچنین مدیریت وضعیتهای مختلف پروژه بهتر آشنا شوید.
یادگیری Object Pooling به صورت عملی
یکی از مباحث مهم و کاربردی این دوره، Object Pooling Design Pattern است.
در پروژه یاد میگیریم چگونه به جای ایجاد و حذف مکرر آبجکتها، آنها را مدیریت و مجدداً مورد استفاده قرار دهیم.
این موضوع علاوه بر کاربرد مستقیم در همین پروژه، یکی از مفاهیم مهمی است که میتوانید در پروژههای دیگر Unity نیز از آن استفاده کنید.
Restart بازی بدون Reload کردن Scene
یکی دیگر از نکات مهمی که در این پروژه پیادهسازی میکنیم، سیستم Restart بازی بدون Reload مجدد Scene است.
در این روش، به جای بارگذاری دوباره کل Scene، وضعیت مورد نیاز بازی را مدیریت و به حالت اولیه بازمیگردانیم.
این موضوع علاوه بر کاربرد عملی، دید خوبی نسبت به مدیریت State و طراحی منطقیتر سیستمهای بازی ایجاد میکند.
توجه ویژه به بهینهسازی کد
در این دوره فقط هدفمان این نیست که یک سیستم را طوری بنویسیم که «کار کند».
در طول ساخت پروژه، به این موضوع توجه میکنیم که چطور میتوان کد و منطق بازی را بهتر، تمیزتر و بهینهتر پیادهسازی کرد.
در نتیجه با نکاتی آشنا میشوید که به شما کمک میکنند هنگام ساخت پروژههای بعدی، از همان ابتدا نگاه بهتری نسبت به ساختار و عملکرد کد خود داشته باشید.
این دوره برای چه کسانی مناسب است؟
این دوره بهطور ویژه برای افرادی پیشنهاد میشود که:
دورههای مقدماتی زبان C# را گذراندهاند.
با مفاهیم مقدماتی Unity آشنا هستند.
اصول اولیه برنامهنویسی و کار با Unity را میدانند اما هنوز یک پروژه کامل را از ابتدا تا انتها نساختهاند.
میخواهند دانستههای خود را در قالب یک پروژه واقعی و عملی تثبیت کنند.
به دنبال یک پروژه مناسب برای تمرین و افزایش مهارت برنامهنویسی بازی هستند.
میخواهند با مفاهیمی مانند Object Pooling، مدیریت State، سیستم صداگذاری و بهینهسازی کد به صورت عملی آشنا شوند.
اگر دورههای مقدماتی را گذراندهاید، وقت ساختن است!
ممکن است بعد از یادگیری مقدمات C# و Unity با یک سؤال مهم مواجه شوید:
«حالا چطور تمام این چیزهایی که یاد گرفتهام را در یک پروژه واقعی استفاده کنم؟»
این دوره برای پاسخ دادن به همین سؤال ساخته شده است.
در اینجا قرار نیست فقط چند مثال کوتاه و جدا از هم بنویسیم؛ بلکه یک پروژه کامل را از صفر شروع میکنیم، سیستمهای مختلف آن را میسازیم، آنها را به یکدیگر متصل میکنیم و در نهایت به یک گیمپلی کامل میرسیم.
در این مسیر، مهارتهایی که در دورههای مقدماتی C# و Unity یاد گرفتهاید، از حالت تئوری خارج میشوند و در یک پروژه واقعی به کار گرفته میشوند.
چرا این دوره میتواند تمرین بسیار خوبی برای شما باشد؟
یادگیری برنامهنویسی بازی زمانی عمیقتر میشود که شروع به ساختن کنید.
در این دوره، به جای اینکه صرفاً کدهای آماده را مشاهده کنید، با یک پروژه واقعی همراه میشوید و میبینید که چگونه باید یک ایده را به بخشهای مختلف تقسیم کرد، برای هر بخش منطق مناسب طراحی کرد و در نهایت همه سیستمها را در کنار یکدیگر قرار داد.
از Game Logic و برخوردها گرفته تا UI، منوها، صداگذاری، Object Pooling، مدیریت وضعیت بازی، Restart و بهینهسازی کد، همه در قالب یک پروژه واحد دنبال میشوند.
و مهمتر از همه، تمام این مسیر را از صفر و بدون استفاده از Package یا Asset آماده طی میکنیم.
در پایان دوره چه چیزی خواهید داشت؟
در پایان این دوره، فقط یک سری ویدیوی آموزشی ندیدهاید؛ بلکه در طول مسیر، ساخت یک بازی کامل Bricks Breaker را تجربه کردهاید.
شما با یک پروژه عملی روبهرو هستید که در آن:
گیمپلی کامل، سیستمهای مختلف بازی، رابط کاربری، منوها، سیستم صداگذاری، مدیریت آبجکتها و منطق بازی در کنار یکدیگر قرار گرفتهاند.
از طرف دیگر، با مفاهیمی مانند Object Pooling، مدیریت State، Restart بدون Reload Scene و بهینهسازی کد نیز به صورت عملی کار کردهاید.
این تجربه میتواند پایه بسیار خوبی برای شروع پروژههای شخصی و ساخت بازیهای پیچیدهتر در آینده باشد.
از یادگیری مقدماتی به ساخت یک بازی واقعی
اگر C# و Unity را در حد مقدماتی یاد گرفتهاید و حالا میخواهید دانستههای خود را در یک پروژه واقعی محک بزنید، این دوره دقیقاً همان تمرینی است که به آن نیاز دارید.
از صفر شروع میکنیم، قدمبهقدم سیستمهای بازی را میسازیم و در نهایت یک گیمپلی کامل خواهیم داشت.
حالا وقت آن است که چیزی را که یاد گرفتهاید، واقعاً بسازید.
فهرستـــ ویدیوها
مدت زمان دوره 16:57:00با مشاهده آنلاین جلسات در سایت ، هزینه اینترنت شما به صورت نیم بها محاسبه خواهد شد.
رفع مشکل رزولوشن در سیستمهای مختلف
در این ویدیو به بررسی مشکلی که با ابعاد مختلف موبایلها و یا صفحات نمایش خواهیم داشت میپردازیم و با نوشتن یک اسکریپت این مشکل را رفع میکنیم.
ساخت سیستم Input بازی با Enhanced Touch
در ابتدا به بررسی انواع سیستمهای مربوط به گرفتن ورودی تاچ از کاربر میپردازیم و پس از مقایسه اجمالی آنها و انتخاب مناسبترین گزینه که Enhanced Touch میباشد، سیستم دریافت ورودی را براین اساس میسازیم و در نهایت با تعدادی از قابلیتهای کاربردی Enhanced Touch آشنا میشویم.
تنظیم اولیه صحنه و ساخت سیستم پرتاب توپ
در این ویدیو پس از جاگذاری و تنظیم بک گراند بازی، به اعمال فیزیک بر روی صحنه بازی پرداخته شده و سپس بوسیله کد تاچ ورودی سیستمی برای شلیک توپ طراحی میکنیم.
تکمیل سیستم پرتاب توپ
در ادامه ساخت سیستم پرتاب توپ در ویدیوی قبل، در این ویدیو به ادامه ساخت همین سیستم و مدیریت توپ در صحنه پرداخته میشود.
تنظیمات نهایی پرتاب توپ و ساخت سیستم هدفگیری
در ابتدای جلسه به تغییر کد بررسی وجود توپ در صحنه که در ویدیوی قبل نوشته شد، پرداخته میشود و سپس به راه اندازی اولیه سیستم هدفگیری پرتاب توپ بر پایه Line Renderer میپردازیم.
تکمیل سیستم هدفگیری
در ادامه مطالب جلسه قبل، خط شلیک توپ را تا امتداد مرزهای صحنه گسترش میدهیم و کد بازتاب خط شلیک توپ را نیز مینویسیم.
ساخت سیستم پرتاب چندتوپی با مدیریت خودکار موقعیت پرتاب
پس از دیدن این ویدیو شما قادر خواهید بود سیستمی طراحی کنید که بیش از یک توپ را شلیک کند و میتوانید همه توپها را باهم مدیریت کنید. همچنین پس از آن میتوانید موقعیت پرتاب توپ برای پرتاب بعد را برابر با موقعیت اولین توپی که در حال حاضر به زمین رسیده است، قرار دهید.
ساخت سیستم مدیریت و منطق برخورد آجرها در بازی
در این ویدیو به ساخت اسکریپت آجرهای بازی، مدیریت برخورد و میزان جان آنها و سیستم اولیه مدیریت آنها در صحنه میپردازیم.
تنظیم خودکار ابعاد و موقعیت آجرها با تعداد دلخواه
در این ویدیو به تنظیم و ساخت آجرها به صورت داینامیک می پردازیم به طوری که صرفا فقط با دادن تعداد آجرهای مورد نیاز در هر ردیف، ابعاد و موقعیت آجرها متناسب با رزولوشن دستگاه موبایل تنظیم و ایجاد شود.
ساخت خودکار ردیف آجرها بعد از پایان توپها
در این ویدیو به بررسی دو روش برای ساخت سیستم رفتن به راند بعدی بازی پرداخته میشود و شما قادر خواهید بود پس از اتمام تمام توپهای پرتاب شده، یک ردیف جدید از آجرها را ایجاد کنید.
مدیریت تعداد توپ و جان آجرها + آیتم افزایش توپ
در این ویدیو به بازی رو از حالتی که تعداد توپ ها و میزان جان آجرها همواره ثابت بوده، خارج کرده و یک سیستم مناسب برای تعیین تعداد آنها میسازیم. همچنین آیتم افزایش توپ را به صحنه بازی اضافه میکنیم که اگر توپهای شلیک شده به آنها برخورد کنند، یکی به تعداد توپها اضافه میشود.
استفاده از نقطهچین به جای خط یکپارچه: ارتقاء سیستم نشانهروی
ما در جلسات قبلی دوره از کامپوننت Line Renderer برای تشکیل خط جهت پرتاب توپ و بازتاب آن استفاده کردیم. در این جلسه از یک سیستم جدید برای این هدف استفاده میکنیم که دیگر به جای استفاده از خط ممتد با استفاده از نقطه چین مشابه بازی اصلی بتوانیم هدفگیری را انجام دهیم.
آموزش دیزاین پترن Object Pool
در این قسمت از دوره، شما با مفهوم دیزاین پترن در برنامه نویسی آشنا میشوید و سپس به طور ویژه به بررسی و پیاده سازی دیزاین پترن آبجکت پول به منظور بهینه سازی بازی میپردازیم.
مدیریت آبجکتها با UnityEngine.Pool در یونیتی
در این قسمت در ادامه مطالب ویدیوی قبلی که به بررسی دیزاین پترن آبجکت پول پرداخته شده بود، به سیستم شخصی سازی شده آبجکت پول یونیتی میپردازیم و با قابلیتهای آن آشنا میشویم.
ساخت Object Pool سفارشی پروژه
در این ویدیو به ساخت و تنطیم سیستم Object Pool مورد استفاده در بازی اصلی میپردازیم.
خداحافظی با Instantiate و Destroy و جایگزین کردن Object Pool
در این ویدیو که در حال حاضر Object Pool پروژه آماده است، معماری پروژه از سیستم قدیمی Instantiate/Destroy به سیستمی مبتنی بر Object Pool تغییر میدهیم.
ساخت سیستم باخت و هشدار قبل از باخت
در این ویدیو به طراحی سیستم باخت و هشدار قبل از باخت بوسیله Collision Detection پرداخته میشود و سپس بوسیله Event جلوی یک باگ مهم در فرآیند اعلام باخت یا هشدار گرفته میشود.
رفع دو باگ مهم در گیم پلی پروژه
در این ویدیو به رفع دو باگ در پروژه میپردازیم که شامل 1- گیر کردن توپ در یک لوپ بی نهایت حرکت در مسیر افقی و 2- جابجا شدن محل شلیک توپها در قبل از به اتمام رسیدن ایجاد و پرتاب تمامی توپها، میشود.
ساخت افکتهای گرافیکی بازی
در این ویدیو به ساخت سه افکت گرافیکی شامل Trail Renderer برای توپ، تغییر رنگ Brickها موقع برخورد توپ به آنها و در نهایت ساخت حالت خرد شدن Brickها پس از نابودی، پرداخته میشود.
ساخت سیستم صوتی بازی
در این ویدیو به ساخت سیستم مدیریت پخش و توقف صدای افکتهای صوتی مختلف و صدای موسیقی پس زمینه و تنظیمات مربوط به آنها میپردازیم.
ساخت افکت آیتم افزایش توپ
در ادامه ویدیوی قبلی که در آن افکتهای گرافیکی مختلفی را برای بازی طراحی کردیم، در این قسمت یک افکت برای زمان دریافت آیتم افزایش توپ در صحنه میسازیم.
ساخت سیستم ثبت امتیاز و رکورد بازیکن
در این ویدیو به ساخت سیستم ثبت امتیاز مبتنی بر ایونتها و ثبت رکورد با استفاده از PlayerPrefs میپردازیم.
آموزش Responsive سازی UI و اضافه کردن المانهای UI به پروژه
در این قسمت وارد بحث UI در یونیتی میَشویم و پس از آشنایی با canvas و canvas scaler و در نهایت آشنایی با Anchor و pivot به اضافه کردن المانهای مختلف UI به صورت Responsive به پروژه میپردازیم.
اتصال UI به سیستم ثبت رکورد و امتیاز
در ویدیوی قبلی المانهای UI برای امتیاز و رکورد بازیکن را طراحی کردیم و در این ویدیو به نوشتن کدهای اتصال سیستم امتیاز بازی به UI مربوطه میپردازیم.
ساخت منوهای بازی
در این ویدیو ابتدا به توضیح علت مشکل جلسه قبل میپردازیم و سپس منوها و سایر المانهای UI بازی را طراحی میکنیم.
کدنویسی منوهای بازی و هشدار قبل از باخت
در این ویدیو، UIهای ساخته شده برای منوهای مختلف بازی در قسمت قبل را کدنویسی میکنیم و کد ظاهر شدن و افکت هشدار قبل از باخت را مینویسیم.
مخصوص اعضای ویژه

نظرات کاربران در رابطه با این دوره