آموزش یونیتی ۲۰۱۹: یادگیری کدنویسی بهتر برای ساخت بازی شهرسازی - آخرین آپدیت

دانلود Unity 2019 Learn to write better code making a City Builder

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

یادگیری برنامه‌نویسی شیءگرا، الگوهای طراحی و تست واحد در ساخت بازی City Builder با یونیتی و C#

  • یونیتی (Unity)
  • برنامه‌نویسی سی شارپ (C# Programming)
  • طراحی بازی (Game Design)
  • اصول SOLID (SOLID Principles)

پیش‌نیازها:

  • استفاده از یونیتی در سطح متوسط
  • مهارت‌های متوسط در برنامه‌نویسی سی شارپ

آیا تا به حال یک پروتوتایپ بازی ساخته‌اید که بسیار جذاب بوده، اما با افزودن هر ویژگی جدید، کدهای قبلی باگ‌دار شده‌اند؟ یا شاید یک ویژگی که فکر می‌کردید ۲ ساعت زمان می‌برد، دو هفته طول کشیده است؟

اگر این موارد برای شما آشناست، این دوره آموزشی را از دست ندهید. در این دوره، بهترین شیوه‌ها را برای برنامه‌نویسی بازی‌ها خواهیم آموخت. ما بر ساختار کلی بازی، ساختار کد و نحوه استفاده از الگوهای طراحی (Design Patterns) برای حل مشکلات مختلف تمرکز خواهیم کرد. با استفاده از تست واحد (Unit Tests)، اطمینان حاصل می‌کنیم که کدهای ما حتی پس از افزودن ویژگی‌های جدید و بازسازی کدهای قبلی، به درستی اجرا می‌شوند.

این موضوعات اغلب در بسیاری از دوره‌های آموزشی ساخت بازی نادیده گرفته می‌شوند، زیرا تمرکز اصلی آن‌ها بر روی ساخت سریع پروتوتایپ‌ها است. پروتوتایپ بازی باید سریع ساخته شود، می‌تواند خام و پر از باگ باشد و هدف آن دریافت بازخورد درباره جذابیت ایده بازی شماست.

هدف من در این دوره، ارائه دانش گسترده‌ای در زمینه برنامه‌نویسی، به ویژه در ساخت یک بازی شبیه‌ساز شهرسازی (City Builder) است. در این مثال، نحوه استفاده از الگوهای طراحی مختلف، ایجاد تست‌های واحد و بازسازی کدهای قبلی برای پشتیبانی از ویژگی‌های جدید را بررسی خواهیم کرد.

با دریافت بازخوردها، متوجه شدم که گاهی اوقات برخی مفاهیم را به سرعت توضیح می‌دهم و ممکن است مفاهیم پایه‌ای کد به طور کامل شرح داده نشوند. لطفاً در نظر داشته باشید که دانش متوسط در زمینه سی شارپ و درک خوب از نحوه کار ویرایشگر یونیتی برای بهره‌مندی حداکثری از این دوره ضروری است.

امیدوارم بتوانم به شما در بهبود مهارت‌های کدنویسی در حوزه توسعه بازی کمک کنم. در عین حال، مطمئن هستم که همه از نحوه تدریس و سرعت بعضی بخش‌ها رضایت کامل نخواهند داشت. به یاد داشته باشید که شما ۳۰ روز فرصت دارید برای بازپرداخت درخواست دهید. من نمی‌خواهم کسی از خرید خود ناراضی باشد.

*این دوره با استفاده از Unity 2019 ساخته شده است. شما باید بتوانید با استفاده از آخرین نسخه LTS (پشتیبانی طولانی مدت) Unity 2019 نیز این دوره را دنبال کنید.


سرفصل ها و درس ها

مقدمه Introduction

  • محتوای دوره Course Content

  • بررسی نتیجه Check the result

  • منابع مورد استفاده در این دوره Resources used in this course

  • اطلاعات کلی در مورد این دوره General Information about this course

نظریه برنامه نویسی Programming theory

  • چرا به کدنویسی خوب اهمیت دهیم Why bother with good coding

  • تصویر بزرگ - معماری BIg picture - Architrcture

  • برنامه نویسی شی گرا Object oriented programming

  • اصول SOLID SOLID principles

  • بازسازی کد و بوی کد Refactoring and code smells

  • تست های خودکار - تست واحد Automated tests - Unit testing

طراحی سازنده شهر ما Designing our city builder

  • سند طراحی بازی ساده Simple Game Design Document

نمونه اولیه هنری Art prototype

  • نمونه اولیه هنری چیست What is art prototype

  • مشکل منبع OSX هنگام از حالت فشرده خارج کردن آرشیو zip OSX resource issue when unzipping zip archive

  • تنظیمات و منابع Unity Unity preset and resources

  • ساخت یک شهر با استفاده از مدل های از پیش ساخته شده Creating a town using prefab models

  • جزئیات بخشیدن به شهرمان برای جذاب نشان دادن آن Detailing our town to make it look appealing

  • اضافه کردن جلوه های پردازش پس از ساده Adding simple post-processing effects

  • اضافه کردن رابط کاربری ساده Adding simple UI

  • خلاصه Summary

طراحی اشیاء و مسئولیت ها Designing objects and responsibilities

  • ساختار کلاس سازنده شهر ما Class structure of our city builder

سازنده شهر - ایجاد ساختار کد پایه City builder - creating basic code structure

  • راه اندازی پروژه Project Setup

  • دریافت ورودی ماوس Getting mouse input

  • قرار دادن سازه در نقشه ما Placing Structure on our map

  • بازسازی کد: تقسیم کد به کلاس های جداگانه Refactoring: split code into separate classes

  • چرا می خواهم تست کنم؟ Why Do I Want To Test?

  • تست Unity: کلاس Grid Unity Test: Grid Class

  • کد تست های واحد Unit Tests Code

بازسازی مدیر ورودی - Delegate ها Refactoring input manager - Delegates

  • بازسازی مدیر ورودی با استفاده از delegate ها Refactoring Input Manager using delegates

  • ساختار داده سلول - ذخیره وضعیت نقشه ما Cell data structure - storing state of our map

  • مرحله اول تست های Unity Unity Tests Phase 1

تغییر وضعیت ها - بازسازی مدیر ورودی - Interface ها Switching states - Refactoring Input Manager - Interfaces

  • تغییر بین حالت انتخاب و ساخت و ساز بخش اول Switching between selection and building state part 1

  • تغییر بین حالت انتخاب و ساخت و ساز بخش دوم Switching between selection and building state part 2

تغییر وضعیت ها - الگوی حالت Switching states - State Pattern

  • اسکریپت حرکت دوربین Camera movement script

  • ورودی برای حرکت دوربین Input for Camera Movement

  • الگوی حالت چیست What is State Pattern

  • پیاده سازی الگوی حالت - آماده سازی مدیر ورودی Implementing state pattern - prepare Input Manager

  • پیاده سازی الگوی حالت - آماده سازی حالت ها Implementing state pattern - Preparing states

  • پیاده سازی الگوی حالت - تغییر مدیر بازی Implementing state pattern - modifying Game Manager

  • تست حالت بازی Play mode Testing

بازسازی حالت قرار دادن - جداسازی وابستگی Refactoring placement state - Decoupling

  • بازسازی مدیر قرار دادن - اضافه کردن مدیر ساخت و ساز Refactoring PlacementManager - Adding BuildingManager

  • اضافه کردن حالت تخریب سازه Adding Demolish Structure State

  • بازسازی مدیر ورودی - پلتفرم های مختلف Refactoring Input Manager - different platforms

ایجاد لایه داده - اشیاء قابل اسکریپت نویسی Creating Data Layer - Scriptable Objects

  • داده ها به عنوان اشیاء قابل اسکریپت نویسی بخش اول Data as scriptable objects part 1

  • داده ها به عنوان اشیاء قابل اسکریپت نویسی بخش دوم Data as scriptable objects part 2

اتصال لایه داده به برنامه ما - جداسازی وابستگی Connecting Data Layer to our application - Decoupling

  • داده ها - آماده سازی رابط کاربری Data - Preparing UI

  • رفع اشکال شنونده دکمه Fixing Button Listener bug

  • داده ها - نمایش در رابط کاربری Data - Displaying in UI

  • تغییر فراخوانی های ساختار ساختمان های رابط کاربری برای ارسال نام ها Changing UI buidings structure callbacks to send names

  • بازسازی حالت ها برای مکانیک ساخت ساختمان ها - بخش اول Refactoring States for building structures mechanic - part 1

  • بازسازی حالت ها برای مکانیک ساخت ساختمان ها - بخش دوم Refactoring States for building structures mechanic - part 2

  • بازسازی حالت ها - قرار دادن اشیاء از پیش ساخته شده ما Refactoring States - Placing our prefabs

  • رفع خطاهای تست حالت بازی Fixing Playmode test errors

بازسازی حالت ها - ایجاد دکمه تایید Refactoring states - Creating confirmation Button

  • ایجاد دکمه تایید قرار دادن - آماده سازی Creating Confirm placement button - Preparation

  • ایجاد دکمه تایید قرار دادن - ایجاد ساختمان ها Creating Confirm placement button - Creating buildings

  • ایجاد دکمه تایید قرار دادن - تخریب ساختمان ها Creating Confirm placement button - Demolishing buildings

  • ایجاد دکمه تایید قرار دادن - اتمام Creating Confirm placement button - Finishing

  • به روز رسانی - رفع اشکال - عدم تغییر حالت به انتخاب در هنگام تایید UPDATE - Fixing bug - State not changing to selection on confirmation

  • تست های مدیر ساخت و ساز Building Manager Tests

سیستم قرار دادن جاده - الگوی کارخانه Road placement system - Factory Pattern

  • بازسازی مدیر ساخت و ساز Refactoring Building Manager

  • تست کلاس های بازسازی شده Testing refactored classes

  • مقدمه الگوی کارخانه Factory Pattern Introduction

  • پیاده سازی الگوی کارخانه Implementing Factory Pattern

  • تست های واحد کمکی قرار دادن بخش اول Placement helpers unit tests p1

  • تست های واحد کمکی قرار دادن بخش دوم Placement helpers unit tests p2

  • بازسازی کمکی تغییرات سازه Refactoring Structure Modification Helper

  • بازسازی کد - رفع Refactoring - Fix

  • منطق قرار دادن جاده بخش دوم Road placement logic p2

  • منطق قرار دادن جاده بخش سوم Road placement logic p3

  • منطق قرار دادن جاده بخش چهارم Road placement logic p4

  • منطق قرار دادن جاده بخش پنجم Road placement logic p5

  • منطق قرار دادن جاده بخش ششم Road placement logic p6

  • تست های منطق قرار دادن جاده Road placement logic Tests

مکانیک قرار دادن منطقه Zone placement mechanic

  • قرار دادن منطقه - آماده سازی کلاس ها Zone placement - preparing classes

  • قرار دادن منطقه - نحوه مدیریت ورودی کاربر Zone placement - how to handle user input

  • قرار دادن منطقه - استخر اشیاء Zone placement - Object pooling

  • قرار دادن منطقه - اتمام و تست های واحد Zone placement - finishing and unit tests

اقتصاد ساده Simple Economy

  • مدیر منابع - معرفی پول ResourceManager - Introducing Money

  • پیاده سازی متد GetAllStructures (و نحوه تست آن) GetAllStructures method implementation (and how to test it)

  • اقتصاد در حالت قرار دادن تک سازه Economy in SingleStructure placement state

  • رفع تست های واحد Fixing Unit Tests

  • فراخوانی محاسبات شهر Invoking Town Calculations

  • اقتصاد کمکی تخریب و اقتصاد قرار دادن منطقه Demolition helper economy and zone placement economy

  • رفع تست ها - شبیه ساز مدیر منابع خودمان Fixing tests - our own ResourceManager stub

  • اقتصاد قرار دادن جاده Road placement economy

  • الگوی شیء تهی Null Object Pattern

  • شمارنده جمعیت Population Counter

  • افزودن قابلیت به سازه ها - اشیاء قابل اسکریپت نویسی Adding functionality to Structures - Scriptable objects

  • منطق یافتن سازه ها در محدوده Logic for finding structures in range

  • کد تست - یافتن سازه ها در محدوده Test code - Finding Structures in range

  • مدیر اقتصاد سازه - قوانین ایجاد سازه Structure Economy Manager - Create structure rules

  • مدیر اقتصاد سازه - قوانین تخریب سازه Structure Economy Manager - Demolition structure rules

  • مدیر اقتصاد سازه - تست ها StructureEconomyManager - Tests

  • تست های مدیر اقتصاد سازه StructureEconomyManagerTests

  • تست های مدیر اقتصاد سازه - اشکال زدایی StructureEconomyManagerTests - debugging

  • تکمیل مدیر اقتصاد سازه Finishing Structure Economy Manager

  • پیاده سازی مدیر اقتصاد سازه در منطق ایجاد Implementing StructureEconomyManager into creation logic

  • پیاده سازی مدیر اقتصاد سازه در منطق تخریب Implementing StructureEconomyManager into demolition logic

تکمیل حالت انتخاب Finishing Selection State

  • ایجاد رابط کاربری برای نمایش داده های سازه Creating UI to display structure data

  • افزودن منطق به UiStructureInfoHelper Adding logic to UiStructureInfoHelper

  • تکمیل رابط کاربری برای حالت انتخاب Finishing UI for Selection State

  • پروژه نسخه نهایی Final Version Project

رفع اشکالات Bug fixes

  • اشکال: ورود به حالت تخریب در حین قرار دادن ساختمان باعث رفتار عجیب می شود Bug: Entering demolition state during building placement causes weird behavior

اضافی: صدا با استفاده از الگوی Singleton و AudioMixer Extra: Audio using Singleton Pattern and AudioMixer

  • دریافت صداها و تنظیمات صوتی پایه Getting sounds and basic audio setup

  • پیاده سازی الگوی Singleton و پخش صداها Implementing Singleton Pattern and playing sounds

اضافی 2: قرار دادن درختان در نقشه ما با استفاده از تولید رویه ای Extra 2: Placing trees on our map using procedural generation

  • مرور نمونه برداری دیسک پواسون Poisson disc sampling overview

  • افزودن الگوریتم به پایگاه کد ما Adding algorithm to our code base

  • قرار دادن درختان روی نقشه Placing trees on the map

خلاصه دوره Course summary

  • خلاصه Summary

نمایش نظرات

آموزش یونیتی ۲۰۱۹: یادگیری کدنویسی بهتر برای ساخت بازی شهرسازی
جزییات دوره
17.5 hours
108
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
3,204
4.3 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Sunny Valley Studio Sunny Valley Studio

توسعه بازی