موتور ها

امروزه بازی‌های کامپیوتری به یکی از سودآورترین صنعت‌های دنیا تبدیل شده است. حتما برای شما نیز این سوال پیش آمده که عناوین بزرگ بازی‌های ویدیویی با استفاده از چه ابزاری ساخته می‌شوند؟ در این مقاله با یکی از اصلی ترین اجزای طراحی و توسعه بازی‌ها. یعنی موتور بازی (Game Engine) آشنا می‌شوید.

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

بازی Doom با عرضه اش نه تنها نوید یک بازی خوب را برای گیمرها می داد، بلکه یک نوآوری و پیشرفت برای سازندگان آن بود. بازی doom  که توسط جان کارمک خلق شد، به همراه خود روشی نو در طراحی بازی‌های ویدیویی معرفی کرد. در این روش طراحی و توسعه بازی با استفاده از ابزاری به نام موتور بازی انجام می‌شود. اما واقعا موتور بازی چیست ؟

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

نمایی از بازی Doomنمایی از بازی Doom

موتور بازی که هسته بازی نیز نامیده می‌شود ، شامل ابزارهایی است که با استفاده از آنها روند توسعه بازی آسان تر می‌شود. با وجود موتور بازی دیگر لازم نیست طراح خود را درگیر مباحث کلی و مشترک کند. با استفاده از موتور بازی توسعه دهندگان تنها بر روی جزئیات و مباحث تخصصی تر تمرکز می‌کنند . هسته ی بازی Doom  طوری طراحی شده بود که امکان توسعه بازی‌های اول شخص (FPS) را برای توسعه‌دهندگان فر‌آهم می‌آورد اما به تدریج موتورهای بازی‌سازی با امکان ساخت بازی در سبک‌های مختلف ظهور کردند.

امروزه موتورهای بازی سازی بسیاری وجود دارند و بازی سازان با توجه به ویژگی های پروژه، بودجه و بسیاری از فاکتور های دیگر به انتخاب موتور مناسب برای تیم بازی سازی می پردازند. برخی موتور های بازی به صورت رایگان در دسترس همگان هستند و برخی دیگر قیمت هایی بسیار بالا دارند که از این دسته می توان به Cry Engine  یا Unreal engine  اشاره کرد که لایسنس تجاری آن ها را تنها چند شرکت بزرگ خریداری کرده است. البته مدتی است که این موتورهای بزرگ نیز لایسنسی رایگان برای بازی‌سازان مستقل معرفی کرده‌اند.

محیط ویرایشگر Cry Engineمحیط ویرایشگر Cry Engine

موتورهای بازی به چند دسته تقسیم می شوند که هر کدام می تواند قسمتی از روند توسعه را برعهده گیرد، بخشهای مختلف موتور بازی شامل موتور گرافیک ، موتور صدا ، موتور فیزیک ، هوش مصنوعی و … می باشد . بعضی از  موتورها شامل ترکیبی از موارد فوق هستند. به این موتورها به اصطلاح موتورهای کامل گفته می شود زیرا تمامی ابزارها جهت توسعه بازی را داراست . در ادامه سعی می کنیم  در مورد بخش های مختلف یک موتور بازی توضیحاتی را ارائه دهیم .

  • موتور گرافیکی : اصلی ترین و مهمترین بخش یک ابزار توسعه بازی ، موتور گرافیکی است  زیرا بازیباز آن چه را به چشم خود می بیند بازی می کند. از این بخش گاهی با نام موتور رندر نیز یاد می شود و شامل ویژگی هایی مربوط به رندر بهینه صحنه است . معمولا موتورهای گرافیکی بر پایه دو کتابخانه گرافیکی directx یا openGL  با سخت افزار گرافیکی ارتباط برقرار می کنند. یکی از ویژگی ای مهم یک موتور گرافیکی رندر بهینه است . اشیای ۳ بعدی در جهان ۳ بعدی در حقیقت نقاطی هستند که به آن ها راس ( vertex ) می گویند . مدل سه بعدی که شما در صحنه می بینید از اتصال این راس ها به هم ایجاد می شود . یکی از مهمترین چالش ها در نمایش مدل این است که رندرگر چگونه می تواند این همه راس و مدل را در حافظه مدیریت کند؟  یکی از راهکارها برای حل این مشکل استفاده از تکنیک  culling است. این تکنیک در حقیقت قسمت هایی از جهان سه بعدی را که در دید جاری (زاویه دوربین) قرار ندارد، نمایش نمی دهد. روش کار به این صورت است که رندرگر جهان ۳ بعدی را به چند بخش تقسیم می کند و با توجه به موقیت دوربین، بخش هایی را که دیده نمی شوند رندر نمی کند . موتور های گرافیکی ویژگی های بسیاری دارند که بحث در مورد تمامی ویژگی ها خود مقاله ای جدا را می طلبد . از جمله موتور ها گرافیکی می توان به ogre  اشاره کرد. این موتور رایگان و منبع باز است.
  • موتور صدا : صداها در بازی نقش مهمی دارند و برخی بازی ها بر پایه صدا طراحی شده اند مانند  Guitar hero. موتورهای صدا شامل ویژگی هایی همچون صدای سه بعدی ، امکان مدیریت صدا ، پخش همزمان چند صدا و … را دارند. از این دسته موتور ها می توان openAl را نام برد .
  • موتور فیزیک : امروزه کمتر بازی را می توان یافت که از فیزیک  در آن استفاده نشده باشد . در بازی های نسل جدید فیزیک بخشی جدانشدنی از بازی را در بردارد. با وجود فیزیک ، بازی ها بسیار واقع گرایانه  و طبیعی تر به نظر می آیند. با استفاده از این موتورها  دیگر نیازی نیست طراح برای شبیه سازی فیزیکی خود را درگیر روابط و معادلات پیچیده فیزیک نماید زیرا تمامی این ویژگی ها در موتور تعبیه شده است. یکی از مشهور ترین کتابخانه های فیزیک و رایگان  PhysX  است .
  • موتور هوش مصنوعی:  هوش مصنوعی هم یکی از چالش های بزرگ توسع دهدگان گیم به ویژه برنامه نویسان مسئله هوش است و هم یکی از عرصه های رقابت بین بازی های ویدیویی مختلف،  می باشد . در واقع بازی های هوشمند تر بهتر می توانند با مخاطب ارتباط برقرار و او را جذب خود کنند . موتور های هوش مصنوعی بسیاری از الگوریتم های هوشمند مانند مسیر یاب ، تعقیب و … را به طور آماده در خود دارند و باعث می شوند کار برنامه نویسان بسیار ساده تر شود .

موتورهای بازی شامل قسمتهای دیگری مانند شبکه، ابزارهای تست، کنترل کد و … هستند، در مقالات آینده موتورهای بازی‌سازی را با جزئیات بیشتر بررسی خواهیم کرد .

منبع:نرمگیک