
هدف کلی فصل ۱:
- توسعهی بازی در دنیای واقعی
- موتور بازی اصلا چی هست و از کلیات و بیس و پایه اون چی هست
- چرا موتورها باید ماژولار، قابل استفاده مجدد و منعطف طراحی و نوشته بشن
- بین ژانرهای مختلف بازی، ساختار موتورها چه تفاوتی وجود داره
- Asset Pipeline در ساخت بازی چطور کار میکنند
ساختار بخشهای فصل اول:
1.1 ساختار تیمهای توسعه بازی:
- تیم بازی از ۵ بخش اصلی تشکیل شده:
مهندسان (Engineers)،
هنرمندان (Artists)،
طراحان (Designers)،
مدیر پروژه (Producers)،
تیم پشتیبانی (IT، HR، بازاریابی و...)
نقش هر تیم:
- مهندسها زیرساخت (موتور) رو محیا می کنند
- آرتیستها محتوا تولید میکنند
- دیزاینرها تعاملات و گیمپلی رو میسازند
1.2 بازی چیست؟
بیشتر بازیها شبیهسازیهای بلادرنگ تعاملی (soft real-time interactive simulations) هستن
بازی با گرفتن ورودی، آپدیت وضعیت، پخش صدا و رندر تصویر در هر فریم، یه دنیای مجازی پویا میسازه در اصل پایبندی به game loop رو رعایت می کنه
مفهوم fun از حس یادگیری و کنترل در سیستمهای چالشی میاد
1.3 موتور بازی چیست؟
موتور = پلتفرمی نرمافزاری که زیرساخت ساخت چند بازی مختلف رو فراهم میکنه ( در کتاب تعاریف مخلتفی وجود داره اما خود Jason Gregory تعریف واحد و یکتایی داره که بیان شد)
خودش شامل اجزایی مثل:
Rendering, Physics, Animation, Audio, Input, AI, UI, Scripting, Tools
تفاوت موتور و بازی:
موتور عمومی، چندبار مصرف
بازی خاص، روی محتوای مشخص متمرکزه
در واقع اگه زیر ساختی وجود داشته باشه که فقط برای یک بازی(منظور سبک یا تایپ بازی نیست) قابل استفاده باشه در واقع دیگه اسم موتور بازی رو هندل نمی کنه
1.4 استفاده مجدد و انعطافپذیری
هرچی موتور قابل استفاده مجددتر و منعطفتر باشه، پروژههای بیشتری میتونن ازش استفاده کنند و در واقع معنای بیشتری از موتور رو می تونه دریافت کنه برای خودش
اما افزایش انعطاف = افزایش پیچیدگی و احتمال کاهش performance (نمونه بارز رو میتونیم در پورت بازی ها ببینیم که هر چه انعطاف پورت بازی ها بیشتر باشه احتمال باگ و پیچیدگی بیشتر هست که بعدا در ادامه فصل در بخش تحلیل ها در مورد آن مفصل صحبت می کنم)
1.5 تفاوت موتورها بین ژانرهای مختلف (Engine Differences Across Genres)
| ژانر | نیاز حیاتی و خاص |
|---|---|
| FPS | دقت در فیزیک و تیراندازی، رندر سریع |
| Racing | فیزیک دقیق خودرو، motion blur، مسیر وسیع |
| RPG | دیالوگ شاخهای، ذخیرهسازی، رفتار NPC |
| Fighting | فریم دقیق، hitbox حساس، انیمیشن ترکیبی |
- پس موتور هر ژانر نیاز به ماژولهای خاص و بهینهسازیهای ویژهای داره
1.6 مرور موتورهای معروف (Game Engine Survey)
| موتور | ویژگی | مناسب برای |
|---|---|---|
| Unreal Engine | گرافیک قوی، ابزار زیاد، ++C | پروژه های AAA |
| Unity | سبک، C#، راحت، چندپلتفرم | موبایل، 2D، Indie |
| CryEngine | گرافیک واقعگرایانه، سختتر | شبیه سازی، جهان باز |
| Source | قدیمی اما با دقت و جواب پس داده | شوتر کلاسیک |
| In-house | سفارشیسازی بالا، فقط برای همان استودیو | بازی های بسیار خاص |
1.7 معماری زمان اجرا (Runtime Engine Architecture)
- هسته هر موتور توی هر فریم Game Loop انجام میده:
Input → Logic → Physics → AI → Animation → Audio → Render- اجزای ماژولار موتور:
Input, AI, Physics, Audio, Animation, UI, Renderer, Resource Manager
باید سریع و قابل توسعه باشه ( multi-threaded و قابل گسترش)
1.8 Tools and Asset Pipeline
| ابزار | وظیفه |
|---|---|
| Level Editor | ساخت مرحله و محیط |
| Animation Editor | تنظیم انیمیشنها |
| Dialogue Tool | نوشتن مکالمهها |
| Particle Editor | ساخت افکت دود، آتش و... |
| Asset Importer | وارد کردن فایلها از Blender, Photoshop و... |
- نکته:
Asset Pipeline:
ساخت دارایی توسط آرتیست
تبدیل خودکار فایلها به فرمت داخلی موتور
استفاده در بازی (run-time یا هنگام build)
<** روند این وبلاگ به صورت : ارائه خلاصه ای ساختار و بیس متن هر فصل و سپس وارد شدن در جزییات هر بخش از فصل هست **> |
|---|