سپهر خسروانی
سپهر خسروانی
خواندن ۹ دقیقه·۴ سال پیش

موتور بازی سازی (Game Engine)

آشنایی

با پیشرفت صنعت بازی‌های کامپیوتری و با ظهور بازی‌های سه‌بعدی نسل نخست، به خصوص بازی‌های سبک شلیکی اول شخص(FPS: First Person Shooter)، شرکت‌های بزرگ به لزوم طراحی موتور بازی پی بردند. در این میان شرکت id Software را می‌توان نخستین شرکت بازی سازی دانست که از موتورهای بازی برای طراحی دو بازی مهم و پرفروش خود استفاده کرد. بازی‌های پرطرفدار Doom و Quake. طراحان id Software به جای این که ساخت این دو بازی را از صفر شروع کنند، نرم‌افزاری تهیه کردند و بر‌اساس نیازهای هر بازی، تغییرات جزئی و کلی در آن ایجاد كردند. طراحی گرافیکی، طراحی کاراکترها، سلاح‌ها و مراحل بازی، همگی به شکلی مجزا روی موتور اولیه پیاده شدند و دو محصول متفاوت به بازار عرضه شد. دو محصولی که در عین تفاوت‌های بسیار، از نظر یک بازیکن حرفه‌ای، شباهت‌های انکار ناپذیری با یکدیگر دارند.

بعدها بازی‌هایی مانند Quake III Arena و Unreal نیز به همین شیوه تولید شدند. این کار باعث صرفه‌جویی بسیار زیاد در هزینه‌ها و مهم‌تر از آن در زمان ساخت بازی و نیروی انسانی مورد نیاز برای تهیه هر عنوان می‌شد.موتورهای بازی امروزی، جزء پیچیده‌ترین نرم‌افزارهای نوشته شده هستند. این موتورها، با امکاناتی مجزا برای رندر‌کردن، اسکریپت‌نویسی، طراحی‌هنری و طراحی مراحل بازی، دست سازندگان بازی‌ها را در اعمال تغییرات دلخواه و استفاده از عنصر خلاقیت، بسیار باز گذاشته‌اند. عملی که به تولید ده‌ها عنوان بازی بزرگ در هر سال منجر می‌شود.

اولین نسخه از بازی DOOM
اولین نسخه از بازی DOOM
دوم (به انگلیسی: DOOM) یک بازی ویدئویی علمی تخیلی با فضای وحشت در سبک تیراندازی اول شخص است که توسط id Software منتشر شد. دوم یکی از مهم‌ترین و تأثیرگذارترین عناوین صنعت بازی‌های ویدئویی و بنیان‌گذار ژانر تیراندازی اول شخص نامیده میشود

وظایف یک موتور بازی

  • وظیفه Rendering یا انجام عملیات مربوط به رندر کردن تصویر در بازی
  • عملیات Collision یا تعیین برخوردهای فیزیکی در محیط بازی
  • تخصیص صدای مناسب به کاراکترها و محیط‌های گوناگون
  • ایجاد انیمیشن‌های مورد نیاز در بازی
  • تعیین وظایف و کارکردهای هوش مصنوعی
  • مدیریت حافظه سیستم هنگام اجرای بازی
  • تعیین تنظیمات شبکه در بازی‌های چند نفره
Unreal Engine - Fortnite
Unreal Engine - Fortnite
آنریل انجین همواره یکی از مهم‌ترین موتورهای حوزه‌ی گیم سازی در تاریخ این صنعت بوده است. گیم‌هایی نظیر سری بتمن، بُردرلندز،‌ گیرز آو وار۵، مس افکت۳، شاهکاری چون بایوشاک و ... به وسیله‌ی آنریل انجین ساخته شده‌اند

محدودیت های بازی سازی قبل از موتورهای گرافیکی

  • نیاز به زمان زیاد برای تکمیل یک پروژه
  • امکان بالای بروز خطا و مشکلات برطرف كردن خطاها
  • نیاز به برنامه مجزا و جدید برای هر عنوان جدید بازی
  • شباهت فراوان بازی‌هایی که از یک منبع برنامه استفاده می‌کردند
RAGE Engine - Red Dead Redemption 2
RAGE Engine - Red Dead Redemption 2
این موتور بازی‌سازی مخفف RockStar Advanced Game Engine یک پلتفرم کاملا خصوصی بوده و همانطور که از نام آن پیداست متعلق به کمپانی راک‌استار (سازنده‌ی سری بازی‌های محبوب GTA) است، یکی از مهم‌ترین مزیت‌های این موتور بازی‌سازی ماژولار بودن آن است و به کاربران امکان افزودن مودهای دلخواهشان را می‌دهد

انواع موتور بازی

1- موتورهای سطح پایین (Roll – your- own Game Engine)

به‌رغم هزینه بالا، هنوز هم بسیاری از شرکت‌ها و طراحان مستقل بازی‌های کامپیوتری موتورهایی را ترجیح می‌دهند که عملاً بیشتر کارهای برنامه‌نویسی آن را خودشان انجام می‌دهند. موتورهای سطح پایین، با بهره‌گیری از گروه نرم افزارهایی مانند XNA، DirectX، Open GL و SDLهای ویندوز و لینوکس SDL (سرنام Simple Direct media Layer)، این امکان را در اختیار کاربران خود قرار می‌دهند که بتوانند به دلخواه خود نسبت به ویرایش و اعمال تغییرات دلخواه حتی در سطوح کلان اقدام کنند.

2- موتورهای سطح میانی (Mostly – Ready Game Engines)

بیشتر موتورهای بازی معروف به این گروه تعلق دارند. این گروه مجموعه امکاناتی را در اختیار کاربر قرار می‌دهند تا نسبت به ساخت بازی مورد نظر خود اقدام کنند. اعمالی مانند رندر کردن، تعریف خصوصیات فیزیکی محیط بازی ( برخورد‌ها و… ) و امثال آن‌ها کاملاً در این گروه از پیش تعریف شده هستند و نیاز به برنامه نویسی مجزا برای آن‌ها نیست. موتورهای معروفی مانند Unreal و Gamebryo از این گروه هستند. موتورهایی که به مقدار کمی برنامه‌نویسی نیاز دارند و برای ساخت یک بازی کامل، بر‌خلاف گروه نخست (سطح پایین)، به برنامه‌نویسی و کدنویسی فراوان نیاز ندارند و مراحل کار به نسبت ساده‌تر و کمتری دارند. به همین دلیل، به آن‌ها گروه موتورهای بازی «تقریباً آماده» می‌گویند.بسیاری از این موتورها نتیجه کار ده‌ها نفر برای صدها ساعت است و محصول نهایی تولید شده توسط آن‌ها به مراتب از گروه نخست با کیفیت‌تر است. هر چند که شاید این موتورها توانایی انجام تمام آن چیزهایی را که طراح در ذهن دارد، نداشته باشند، اما صرفه‌جویی در زمان و هزینه، در عین حفظ کیفیت محصول نهایی، این گروه را به پرطرفدارترین گروه موتورهای بازی در بین طراحان و شرکت‌های بازی‌سازی تبدیل کرده است.

3- موتورهای سطح بالا (Point & Click Game Engines)

این گروه از موتورهای بازی که روز به روز بیشتر متداول می‌شوند، مجموعه کاملی از ابزارها و امکانات مورد نیاز را برای خلق یک بازی در اختیار طراحان و سازندگان قرار می‌دهند و طراح فقط با انتخاب ابزار مناسب و جای‌گذاری آن در محل دلخواه، می‌تواند نسبت به طراحی بازی اقدام کند. از جمله این موتورها می‌توان به نرم‌افزارهای Game Maker، Torque Game Builder و Unity3d اشاره کرد. این نرم‌افزارها حداکثر تعامل ممکن را با کاربر دارند و برای کار با آن‌ها به حداقل دانش کد نویسی نیاز است. البته این به آن معنا نیست که دانش برنامه نویسی برای کار با آن‌ها مفید نیست، اما وجود آن چندان ضروری هم نیست. مشکل اصلی موتورهای این گروه، محدودیت بسیار زیاد آن‌ها است. بیشتر این موتورها فقط در ساخت یک یا دو سبک از بازی‌ها کارایی دارند ( عمدتاً بازی‌های اکشن و راهبردی). البته این موضوع را نیز در نظر داشته باشید که همچنان می‌توان با استفاده از همین ابزارهای از پیش تعریف شده و صد البته با مقدار فراوانی خلاقیت، نسبت به ساخت و طراحی بازی‌های جدید و پر از نوآوری اقدام کرد. طی چند سال گذشته، انجام طراحی و ساخت یک موتور بازی توسط شرکت‌های بزرگ نرم‌افزاری، رشد چشم‌گیری داشته است. بسیاری از شرکت‌های بزرگ، صرفاً و به‌صورت کاملاً تخصصی روی این موضوع تمرکز کرده‌اند و در واقع محصول تولیدی این شرکت‌ها، موتورهایی است که به شرکت‌های سازنده بازی فروخته می‌شوند. قیمت مناسب و صرفه‌جویی در زمان طراحی و ارائه محصول، باعث شده بیشتر شرکت‌های صاحب نام در طراحی بازی، این میان افزارها را خریداری كرده و با کمک آن‌ها محصول نهایی خود را تولید کنند.

Creation Engine - Fallout 4
Creation Engine - Fallout 4
این پلتفرم به شما اجازه‌ی ساخت بازی‌های زیبای Open World را می‌دهد، بازی Fallout 4 که توسط این موتور ساخته شده است جزو اولین نمونه‌هایی بود که به کاربران اجازه می‌داد اشیای ساخته‌شده توسط خود را در مارکت‌هایی مانند استیم قرار دهند و بدین ترتیب پس از انتشار بازی قدرت و قابلیت‌های بازی خود را افزایش دهند

بخش های مختلف موتور بازی

موتور گرافیکی

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

موتور صدا

صداها در بازی نقش مهمی دارند و برخی بازی ها بر پایه صدا طراحی شده اند مانند Guitar hero. موتورهای صدا شامل ویژگی هایی همچون صدای سه بعدی ، امکان مدیریت صدا ، پخش همزمان چند صدا و … را دارند. از این دسته موتور ها می توان openAl را نام برد.

موتور فیزیک

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

موتور هوش مصنوعی

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

Unity - COD Mobile
Unity - COD Mobile
موتور بازی سازی یونیتی قابلیت ها و سادگی های خاصی دارد که به شدت مورد توجه علاقه مندان ساخت بازی موبایل قرار گرفته است. پشتیبانی از زبان های جاوا اسکریپت (js) و #C (سی شارپ) از مزیت های چشمگیر این موتور بازی سازی به شمار می رود؛ همچنین با استفاده از این موتور بازی سازی، امکان ساخت بازی برای موبایل بدون کد نویسی نیز مهیا گشته است

جمع بندی

موتور بازی (Game engine) یک نرم‌افزار سیستمی است که برای ساخت و توسعه بازی ویدئویی برای رایانه‌های خانگی، کنسول‌های بازی، تلویزیون‌های هوشمند و موبایل‌ها نوشته می‌شود.

موتورهای بازی حداقل شامل یک موتور گرافیکی برای ترسیم و یک موتور فیزیکی برای پیاده‌سازی محیط فیزیکی هستند.

موتور بازی مجموعه‌ای از ابزارهای توسعه دیداری علاوه بر مؤلفه‌های نرم‌افزاری با قابلیت استفاده مجدد را ارائه می‌دهد. این ابزارها معمولاً در یک محیط توسعه یکپارچه ارائه می‌شوند تا توسعه بازی‌ها را با یک رویکرد مبتنی بر داده ساده‌تر و سریع تر انجام دهند. موتورهای بازی را گاهی اوقات "میان افزار بازی" نیز می‌نامند؛ زیرا از دیدگاه تجاری این اصطلاح، آن‌ها یک سکوی نرم‌افزاری منعطف و قابل استفاده مجدد را ارائه می‌کنند که تمام کاربردهای موردنیاز را فراهم می‌آورند تا درحالیکه هزینه‌ها، پیچیدگی‌ها و زمان ارائه با بازار – که همگی این عوامل در صنعت رقابتی بازی‌های کامپیوتری حیاتی هستند – کم می‌کند، توسعه و تولید بازی‌ها را امکان‌پذیر سازد.

راهنما
استاد داود یعقوبی
منبع و مرجع
فول کده , بازیاتو , اگزو , ویکی پدیا



gameبازیدانشگاه صدراروش پژوهش و ارائه
شاید از این پست‌ها خوشتان بیاید