ناتی داگ استودیویی که Jason Gregory در حال حاضر بعنوان Lead Programmer و Game Engine Engineer فعالیت دارد
هدف کلی فصل ۱:
توسعهی بازی در دنیای واقعی
موتور بازی اصلا چی هست و از کلیات و بیس و پایه اون چی هست
چرا موتورها باید ماژولار، قابل استفاده مجدد و منعطف طراحی و نوشته بشن
بین ژانرهای مختلف بازی، ساختار موتورها چه تفاوتی وجود داره
Asset Pipeline در ساخت بازی چطور کار میکنند
ساختار بخشهای فصل اول:
1.1 ساختار تیمهای توسعه بازی:
تیم بازی از ۵ بخش اصلی تشکیل شده: مهندسان (Engineers)، هنرمندان (Artists)، طراحان (Designers)، مدیر پروژه (Producers)، تیم پشتیبانی (IT، HR، بازاریابی و...)
نقش هر تیم:
مهندسها زیرساخت (موتور) رو محیا می کنند
آرتیستها محتوا تولید میکنند
دیزاینرها تعاملات و گیمپلی رو میسازند
1.2 بازی چیست؟
بیشتر بازیها شبیهسازیهای بلادرنگ تعاملی (soft real-time interactive simulations) هستن
بازی با گرفتن ورودی، آپدیت وضعیت، پخش صدا و رندر تصویر در هر فریم، یه دنیای مجازی پویا میسازه در اصل پایبندی به game loop رو رعایت می کنه
مفهوم fun از حس یادگیری و کنترل در سیستمهای چالشی میاد
1.3 موتور بازی چیست؟
موتور = پلتفرمی نرمافزاری که زیرساخت ساخت چند بازی مختلف رو فراهم میکنه ( در کتاب تعاریف مخلتفی وجود داره اما خود Jason Gregory تعریف واحد و یکتایی داره که بیان شد)
در واقع اگه زیر ساختی وجود داشته باشه که فقط برای یک بازی(منظور سبک یا تایپ بازی نیست) قابل استفاده باشه در واقع دیگه اسم موتور بازی رو هندل نمی کنه
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)