موتورهای بازی، از صفر تا صد (قسمت اول)

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

موتورهای بازی، از صفر تا صد (قسمت اول)
موتورهای بازی، از صفر تا صد (قسمت اول)


 





 
صنعت ساخت بازی‌های کامپیوتری را شاید بتوان یکی از مهجورترین رشته‌هاي مرتبط با فناوری اطلاعات در ایران دانست. صنعتی که به‌تازگی در حال برداشتن گام‌هاي نه چندان مطمئن نخستین است و به طور مسلم راهی بسیار طولانی و پرفراز و نشیب پیش‌رو دارد. در میان شاخه‌هاي مرتبط با ساخت‌بازی، آشنایی با موتورهای بازی (Game Engines)، جزء ناشناخته‌ترین یا با کمی اغماض، کم شناخته شده‌ترین زیر مجموعه‌هاي این صنعت در کشورمان است. در میان علل مختلف این موضوع، به طور مسلم کمبود منابع به زبان فارسی، یکی از مهم‌ترین آن‌ها است. در اين مقاله سعي شده تا علاقه‌مندان به ساخت بازی‌هاي کامپیوتری با مفاهیم، تعریف‌ها و اصول اولیه انتخاب و شناخت موتورهای بازی آشنا شوند تا شايد اندكي از خلاء موجود در اين زمينه كاسته شود.

موتور بازی چیست؟
 

موتور بازی را به طورمختصر مي‌توان قلب هر بازی کامپیوتری دانست. وقتی مشغول بازی‌کردن یک بازی پرزد و خورد اکشن مانند Medal Of Honor هستید و به سمت دشمنی شلیک می‌کنید که در حال شلیک کردن به شما است، این موتور بازی است که مشخص می‌کند تیر شما به حریف اصابت کند یا برعکس. وقتی در یک بازی ماجرایی مانند Monkey Island، مشغول حل کردن یک معمای فکری هستید، این موتور بازی است که تشخیص مي‌دهد چیدمان انتخابی شما به باز شدن قفل روی در منجر می‌شود یا خیر. در واقع شاید موتور بازی را به زبان ساده بتوان رابط بین بازیکن و کنش و واکنش‌هاي بازی در نظر گرفت. یک میان‌افزار (Middleware) که توسط برنامه‌نویسان حرفه‌ای تهیه شده و ابزار اولیه مورد نیاز را برای طراحی و ساخت بازی در اختیار طراحان قرار مي‌دهد. موتورهای بازی قابلیت‌ها و خصوصیات گوناگونی دارند که در ادامه به آن اشاره مي‌كنيم.
برای شروع بهتر است بدانیم مهم‌‌ترین وظایف یک موتور بازی چیست:
1 – انجام عملیات مربوط به رندر کردن تصویر در بازی يا Rendering
2 – تعیین برخوردهای فیزیکی در محیط بازی يا Collision
3 – تخصیص صدای مناسب به کاراکترها و محیط‌هاي گوناگون
4 – ایجاد انیمیشن‌هاي مورد نیاز در بازی
5 – تعیین وظایف و کارکردهای هوش مصنوعی
6 – مدیریت حافظه سیستم هنگام اجرای بازی
7 – تعیین تنظیمات شبکه در بازی‌هاي چند نفره
همان‌گونه که مشاهده مي‌کنید، وظایف مذکور باعث مي‌شوند، عملاً نحوه تعامل بازیکن با محیط بازی، توسط موتور بازی تعریف شود.
قبل از ورود موتورهای بازی به این عرصه، ساخت بازی‌ها، توسط کد نویسی انجام مي‌شد که این کار، باعث ایجاد محدودیت‌هاي فراوانی در این زمینه شده بود. از جمله مهم‌ترین این محدودیت‌ها می‌توان به موارد زیر اشاره کرد:
1 – نیاز به زمان زیاد برای تکمیل یک پروژه
2 – امکان بالاي بروز خطا و مشکلات برطرف كردن خطاها
3 – نیاز به برنامه مجزا و جدید برای هر عنوان جديد بازي
4 – شباهت فراوان بازی‌هایی که از یک منبع برنامه استفاده مي‌کردند
به عنوان مثال، بازی‌هاي کنسول محبوب Atari 2600 را در نظر بگیرید که عملاً تمامی بازی‌هاي نسل نخست این کنسول، از یک منبع منتشر مي‌شدند و همین موضوع باعث شباهت انکار ناپذیر آن‌ها با یکدیگر می‌شد. تمامی بازی‌هاي نسل نخست این کنسول، به نوعی در برگیرنده دو حریف هستند که به سمت یکدیگر شلیک مي‌کنند و در این میان تنها اختلاف بین این بازی‌ها در نحوه چیدمان گرافیک پیکسلی آن‌ها بود. بعدها در بازی‌های متأ‌خر این کنسول نیز، شباهت‌ها از میان نرفت و مجموعه بازی‌هاي حرکت و شلیکی به این کنسول اضافه شدند.

تاریخچه موتورهای بازی
 

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

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

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 اشاره کرد. این نرم‌افزارها حداکثر تعامل ممکن را با کاربر دارند و برای کار با آن‌ها به حداقل دانش کد نویسی نياز است. البته این به آن معنا نیست که دانش برنامه نویسی برای کار با آن‌ها مفید نیست، اما وجود آن چندان ضروری هم نیست. مشکل اصلی موتورهای این گروه، محدودیت بسیار زیاد آن‌ها است. بيشتر این موتورها فقط در ساخت یک یا دو سبک از بازی‌ها کارایی دارند ( عمدتاً بازی‌هاي اکشن و راهبردي). البته این موضوع را نیز در نظر داشته باشید که همچنان مي‌توان با استفاده از همین ابزارهای از پیش تعریف شده و صد البته با مقدار فراوانی خلاقیت، نسبت به ساخت و طراحی بازی‌هاي جدید و پر از نوآوری اقدام کرد. طی چند سال گذشته، انجام طراحی و ساخت یک موتور بازی توسط شرکت‌هاي بزرگ نرم‌افزاری، رشد چشم‌گیری داشته است. بسیاری از شرکت‌هاي بزرگ، صرفاً و به‌صورت کاملاً تخصصی روی این موضوع تمرکز کرده‌اند و در واقع محصول تولیدی این شرکت‌ها، موتورهایی است که به شرکت‌هاي سازنده بازی فروخته مي‌شوند. قیمت مناسب و صرفه‌جویی در زمان طراحی و ارائه محصول، باعث شده بيشتر شرکت‌هاي صاحب نام در طراحی بازی، این میان افزارها را خريداري كرده و با کمک آن‌ها محصول نهایی خود را تولید کنند.

موتورهای بازی، از صفر تا صد (قسمت اول)
شكل 1- نمونه ای از موتورهای بازی سطح میانی
 

چند نمونه از موتورهای بازی
 

در ادامه با توجه به این شناخت نسبی که از موتورهای بازی پیدا کردیم، بد نیست نگاهی داشته باشیم به برخی از مهم‌ترین موتورها و بازی‌هاي معروفی که به کمک آن‌ها ساخته شده است. در جدول 1 برخي از عناوين اين بازي‌ها را مشاهده مي‌كنيد. در اين جدول، با مقایسه بازی‌هایی که موتور آن‌ها مشترک است می‌توانید به شباهت‌ها و خصوصیات یکسان این بازی‌ها پی ببرید. عناوینی که به‌رغم تفاوت‌هاي بصری و گرافیکي فراوان، همچنان در لایه‌هاي زیرین طراحی خود، شباهت‌هاي انکارناپذیری به یکدیگر دارند. به عنوان مثال، مشاهده می‌کنید که بازی‌هاي Oblivion و FallOut ( هر دو در سبک نقش آفرینی RPG )، با بهره‌گیری از موتوری یکسان ساخته‌شده‌اند. کسانی که این دو بازی را امتحان‌کرده باشند، به خوبی متوجه شباهت‌هاي نوع بازی (Game Play) آن‌ها مي‌شوند. در هر دو بازی عناصر مهم نقش آفرینی، مرحله به مرحله باعث تکمیل توانایی‌هاي کاراکتر اصلی مي‌شوند. در هر دو بازی انتخاب‌هاي فراوانی پیش روی بازیکن قرار می‌گیرد که نوع شکل گیری کاراکتر و تعامل با محیط بازی، وابستگی شدیدی به این انتخاب‌ها دارد. شباهت امکان خرید و فروش تجهیزات، ساخت تسلیحات جدید با ترکیب عناصر موجود، امکان استفاده از روش‌هاي پر‌زد‌و خورد (Action) یا مخفیانه (Stealth) برای انجام مأموریت‌ها و ده‌ها شباهت دیگر، همگی از یک موتور بازی یکسان سرچشمه‌می‌گیرند. هرچند که شاید از دید یک کاربر مبتدي، این دو بازی جز شباهت در سبک، هیچ ربط دیگری به هم نداشته باشند. به هر حال دنیای شوالیه‌ای و اهریمن‌هاي Oblivion کجا و دنیای پساآخرالزمانی FallOut کجا؟! و همین موضوع دقیقاً بیانگر خلاقیت تیم سازنده است که با استفاده از ابزاری مشترک و با اعمال تغییرات دلخواه، دو بازی کاملاً متفاوت تولید کرده‌اند که هر دو جزء عناوین بسیار محبوب و پرفروش محسوب مي‌شوند.

بررسی سیر تکاملی یک موتور بازی نمونه (Unreal Game Engine)
 

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

موتورهای بازی، از صفر تا صد (قسمت اول)

موتور بازی Unreal توسط شرکت Epic Games ساخته شد. این موتور برای نخستين‌بار در سال 1985 برای ساخت بازی Unreal مورد استفاده قرار گرفت. یک بازی FPS که در زمان خود جزء بازی‌هاي بسیار پرطرفدار بود. از آن پس بازی‌هایی مانند Unreal Tournament، Deus EX، Turok، Rainbow Six، Gears of War، BioShock، Red Steel و Borderlands بر پایه نسخه‌هاي گوناگون این موتور تولید شده‌اند. هسته اصلی این موتور با استفاده از برنامه ++C نوشته شده و توسط پلتفرم‌هاي MS Windows، Linux، iOS، Mac OS و Mac OSX قابل استفاده است. از طرفی بازی‌هاي ساخته شده توسط این موتور، توسط کنسول‌هاي PC، DreamCast، Xbox، Xbox 360، PS2 و PS3 قابل اجرا هستند.
منبع:ماهنامه شبکه
ارسال توسط کاربر محترم سایت : alirezamazrooei




 



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