بیت بایت

00110111
بیت بایت
طبقه بندی موضوعی

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

سه شنبه, ۱۷ فروردين ۱۳۹۵، ۰۹:۰۰ ب.ظ

تا به حال از خود پرسیده اید که بازی های رایانه با چه چیزی ساخته می شوند؟

برای مشاهده این مقاله به ادامه مطلب بروید.


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

موتور بازی چیست؟
موتور بازی را به طورمختصر می‌توان قلب هر بازی کامپیوتری دانست. وقتی مشغول بازی‌کردن یک بازی پرزد و خورد اکشن مانند Medal Of Honor هستید و به سمت دشمنی شلیک می‌کنید که در حال شلیک کردن به شما است، این موتور بازی است که مشخص می‌کند تیر شما به حریف اصابت کند یا برعکس. وقتی در یک بازی ماجرایی مانند Monkey Island، مشغول حل کردن یک معمای فکری هستید، این موتور بازی است که تشخیص می‌دهد چیدمان انتخابی شما به باز شدن قفل روی در منجر می‌شود یا خیر. در واقع شاید موتور بازی را به زبان ساده بتوان رابط بین بازیکن و کنش و واکنش‌های بازی در نظر گرفت. یک میان‌افزار (Middleware) که توسط برنامه‌نویسان حرفه‌ای تهیه شده و ابزار اولیه مورد نیاز را برای طراحی و ساخت بازی در اختیار طراحان قرار می‌دهد. موتورهای بازی قابلیت‌ها و خصوصیات گوناگونی دارند که در ادامه به آن اشاره می‌کنیم.
برای شروع بهتر است بدانیم مهم‌‌ترین وظایف یک موتور بازی چیست:
انجام عملیات مربوط به رندر کردن تصویر در بازی یا   Rendering
 تعیین برخوردهای فیزیکی در محیط بازی یا Collision
تخصیص صدای مناسب به کاراکترها و محیط‌های گوناگون
ایجاد انیمیشن‌های مورد نیاز در بازی
تعیین وظایف و کارکردهای هوش مصنوعی
 مدیریت حافظه سیستم هنگام اجرای بازی
 تعیین تنظیمات شبکه در بازی‌های چند نفره
همان‌گونه که مشاهده می‌کنید، وظایف مذکور باعث می‌شوند، عملاً نحوه تعامل بازیکن با محیط بازی، توسط موتور بازی تعریف شود.


قبل از ورود موتورهای بازی به این عرصه، ساخت بازی‌ها، توسط کد نویسی انجام می‌شد که این کار، باعث ایجاد محدودیت‌های فراوانی در این زمینه شده بود. از جمله مهم‌ترین این محدودیت‌ها می‌توان به موارد زیر اشاره کرد:
 نیاز به زمان زیاد برای تکمیل یک پروژه
 امکان بالای بروز خطا و مشکلات برطرف کردن خطاها
 نیاز به برنامه مجزا و جدید برای هر عنوان جدید بازی
شباهت فراوان بازی‌هایی که از یک منبع برنامه استفاده می‌کردند
به عنوان مثال، بازی‌های کنسول محبوب Atari 2600 را در نظر بگیرید که عملاً تمامی بازی‌های نسل نخست این کنسول، از یک منبع منتشر می‌شدند و همین موضوع باعث شباهت انکار ناپذیر آن‌ها با یکدیگر می‌شد. تمامی بازی‌های نسل نخست این کنسول، به نوعی در برگیرنده دو حریف هستند که به سمت یکدیگر شلیک می‌کنند و در این میان تنها اختلاف بین این بازی‌ها در نحوه چیدمان گرافیک پیکسلی آن‌ها بود. بعدها در بازی‌های متأ‌خر این کنسول نیز، شباهت‌ها از میان نرفت و مجموعه بازی‌های حرکت و شلیکی به این کنسول اضافه شدند.

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


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

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


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


 موتورهای سطح بالا ( 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 قابل اجرا هستند.

 

 نسخه‌های گوناگون Unreal Engine
 موتور بازی Unreal Engine 1.3
نخستین نسخه کاربردی این موتور بود که در سال 1998 ارائه شد. امکانات اصلی این موتور عبارت بودند از: رندر کردن، تعریف برخوردها، هوش مصنوعی، تعریف مرئی بودن اشیا، امکانات شبکه و مدیریت سیستم‌های فایلی.  این موتور برای ساخت بازی‌های Unreal و Unreal Tournament مورد استفاده قرار گرفت. از طرفی این نسخه از امکانات Open GL و Direct 3Dنیز پشتیبانی می‌کرد. شاید مهم‌ترین علت فراگیر شدن این موتور، معماری خاص و سادگی کد‌نویسی در آن بود. یکی از پیشرفت‌های این موتور نسبت به موتورهای قبلی، اضافه شدن امکانات مربوط به بازی در شبکه بود که باعث شد نسل بعدی موتورهای بازی، با درک لزوم وجود این ابزار از آن تقلید کنند.


 موتور بازی Unreal Engine 2
این موتور که در واقع نسل دوم موتورهای Unreal محسوب می‌شود، برای نخستین‌بار در ساخت بازی American Army مورد استفاده قرار گرفت. مهم‌ترین تفاوت این نسخه، بازی‌نگری و تدوین دوباره روش‌های رندر کردن آن بود. همچنین این موتور با استفاده از SDK کار ما را برای شبیه‌سازی عناصر فیزیکی، نحوه تعریف قوانین فیزیکی بازی ارتقا داد و از آن در بازی‌هایی مانند Unreal 2003 و Unreal ChampionShip استفاده شد. با توجه به ورود کنسول‌های جدید به بازار و پرطرفدار شدن آن‌ها، بسیاری از عناصر موتور بازی نیز ارتقا پیدا کردند و از طرفی این نسخه از کنسول‌های PS2، Game Cube و Xbox نیز پشتیبانی می‌کرد. نسخه ارتقا یافته Unreal Engine 2.5، فیزیک مربوط به وسائل نقلیه را نیز در طراحی بازی‌ها دخیل کرد.



شکل 2 - صحنه ای از محیط نرم افزار Game Maker



شکل 3- نمونه بازی ساخته شده با Game Maker

 

موتور بازی Unreal Engie 3
این نسخه برای استفاده توسط DirectX 9/10/11 در کامپیوترهای شخصی و Xbox 360 و PS3 طراحی شد. باز هم روش‌های محاسباتی مربوط به رندر کردن ارتقا یافت. در روش رندر کردن این موتور، روش‌هایی مانند نورپردازی پیکسل به پیکسل و سایه‌های داینامیک به کار گرفته شده است. خصوصیتی که در طراحی بازی‌هایی مانند Gears of War 1 , 2 و Unreal Tournament 3 مورد استفاده قرار گرفت. بسیاری از شرکت‌های بزرگ، جزء حامیان مالی و مصرف کنندگان این موتور بازی محسوب می‌شوند. از جمله شرکت هایی مانند Atari، Activision، Capcom، Disney، Konami، Ubisoft، Sega، Sony، 3D Realm و Electronic Arts. در سال 2009 نیز برخی از اجزای این موتور مورد بازبینی قرار گرفته و ارتقا یافتند. از جمله این موارد می‌توان به نکته‌هایی زیر اشاره کرد:
1 – نورپردازی استاتیک با کیفیت بالا یاHigh Quality Static Lighting
2 – سایه دهی نرم و بدون کناره یا Soft Shadowing
3 – اضافه کردن جلوه‌های ویژه انکسار و شکست نور در مش‌های استاتیک یا Fracture Effecting
4 – تعیین دقیق محدوده‌های تداخل رنگ یا Color Bleeding
5 – تعریف دقیق فیزیک اجسام نرم و بدن یا Soft Body Physics
6 – شبیه‌سازی جمعیت (Crowd Simulation)
هر چند استفاده از Unreal Engine 3 برای طراحی بازی و طراحان مراحل بازی (Level Designers) امکان‌پذیر بوده و هست، اما در صورتی که طراح بخواهد بازی خود را منتشر کند، مطابق قوانینی که شرکت سازنده در سال 2009 وضع کرد، طراحان باید مبلغ 99 دلار به علاوه 25 درصد از فروش بازی را ( به شرط فروش بالای 50 هزار دلار ) به شرکت طراح موتور بازی پرداخت کنند.



شکل 4- محیط بازی Oblivion



شکل 5- محیط بازی FallOut


آینده Unreal Engine
مارک رین ( Mark Rein)، از مدیران ارشد شرکت Epic Games، در سال 2005 اعلام کرد، متخصصان این شرکت از سال 2003 مشغول کار روی نسخه جدید Unreal Engine هستند. هدف نسخه جدید، تطابق با نسل جدید بازی‌های کامپیوتری و سخت افزاری مربوط به آن‌ها است. در حال حاضر، تیم سوئینی( Tim Sweeney)، مدیر فنی و از مؤسسان شرکت، مسئولیت کار روی این پروژ را بر عهده دارد. از طرفی در سال 2006 نیز اعلام شد، این موتور به احتمال زیاد از سال 2012، با امکاناتی جدید در اختیار شرکت‌ها و سازندگان بازی قرار می‌گیرد. امکاناتی مانند:
 تطابق با پردازنده‌های دارای بیش از 20 هسته
 استفاده از روش‌های رندر پیشرفته نسبت به نسخه‌های قبلی
متمرکز شدن بیشتر موتور بازی روی کنسول‌هایی غیر از PC
به هر حال، با توجه به این که نسخه چهارم Unreal Engine با نسل فعلی کامپیوترها و کنسول‌های بازی سازگار نخواهد بود و فقط روی نسل آینده بازی‌ها و سخت‌افزارها تمرکز دارد، می‌توان در سال 2012 و همزمان با ارائه این موتور، منتظر تغییر و تحولی عظیم در صنعت بازی‌های کامپیوتری بود.



 

در این قسمت، ساختار و ویژگی‌های موتورهای بازی‌های سبک شلیکی اول شخص (FPS) را به صورت تخصصی‌تر بررسی می‌کنیم. یکی از دلایل اصلی انتخاب این گروه از موتورهای بازی برای بررسی دقیق‌تر، این است که این گروه از بازی‌ها، جدا از محبوبیت بالا و تعداد عناوین به نسبت زیادی که هر ساله در این ژانر عرضه می‌شوند، شامل در دسترس‌ترین نرم‌افزارها برای کاربران ایرانی علاقه‌مند به این علم است و از طرفی به دلیل وجود پیچیدگی‌های‌کمتر، نقطه شروع خوبی برای افرادی است که علاقه‌مند به کار با موتورهای‌بازی هستند. اما قبل از شروع کار، توجه داشته باشید که کارکردن در حیطه موتورهای‌بازی، هرچند موتورهایی با پیچیدگی به نسبت کم، به مراتب از کارکردن با بسیاری از نرم‌افزارها دشوارتر است. شخصی که قصد دارد وارد این حیطه شود، باید جدا از تقویت دانش تخصصی خود، صبر و حوصله زیادی را برای کار و آزمون و خطاهای متعدد داشته باشد و از همه مهم‌تر، نمی‌توان نقش پررنگ علاقه را نیز انکار کرد. بسیاری از برنامه‌نویس‌های ماهر، اشتیاق چندانی به سر و کله زدن با موتورهای بازی ندارند، نه به این دلیل که دانش کافی را برای انجام این کار ندارند  بلکه به این دلیل که علاقه چندانی به دنیای سرگرمی‌های دیجیتال در وجودشان نیست. اما اگر نیمه پر لیوان را نگاه کنیم، هرکسی که در این حیطه، مطالعه، تحقیق و فعالیت می‌کند، با صرف زمان و با اتکا به آموخته‌های به روز و البته صبر و حوصله زیاد می‌تواند از بسیاری از افراد گروه اول هم موفق‌تر باشد و همین امر یکی از نقاط مثبت صنعت‌هایی است که در یک محدوده خاص زمانی یا مکانی در حال رشد و توسعه هستند. این موضوع دقیقاً مشابه وضعیت صنعت بازی‌های کامپیوتری در کشورما است و به یقین کسانی که سریع‌تر وارد این رشته شوند و دانش خود را افزایش دهند، در آینده موفق‌تر خواهند بود. پس بعد از آشنایی نسبی با موتورهای بازی در قسمت گذشته، در این قسمت به موتورهای بازی سبک FPS و ساختار آن‌ها نگاهی دقیق‌تر خواهیم داشت.

 

بازی‌هایFPS



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


از نخستین بازی‌های پرطرفدار این سبک می‌توان به Wolfenstein، Doom یا Duke و از نمونه‌های موفق جدیدتر می‌توان به مجموعه بازی‌های Medal of Honor، Quake III Arena و DukeNukem Forever   اشاره کرد. آنچه قبل از کار با موتورهای بازی این سبک باید به خاطر داشته باشید این است که انتظار بازی‌کننده از بازی‌های پرزدوخورد جدید، با انتظار بسیار پایین آن‌ها از نمونه‌های اولیه بسیار تفاوت‌کرده‌است. دیگر دوره‌ای که می‌توانستیم بدون داستان منسجم و قانع‌کننده، یا در نهایت با یک خط داستانی ساده و پیش پا ‌‌افتاده، سلاح به دست بازی کننده بدهیم و او را به جنگ خیل عظیمی از دشمن‌ها بفرستیم،‌ به پایان رسیده است؛ کاربران امروزی، برای لذت‌بردن از بازی، بیش از هرچیز به یک داستان منسجم و پرداخت شده نیاز دارند تا بتوانند با بازی که توسط شما طراحی شده است، ارتباط برقرار کنند. به هر حال، مهم‌ترین وظایف مخصوص موتورهای بازی FPS را می‌توان به طور مختصر انجام تمام عملیات مربوط به رندرگیری‌(Rendering) ، به‌کارگیری و جای‌گذاری انیمیشن‌های میان مراحل (Cut Scene Animations)، تعریف حدود تصادم در محیط بازی (Collision) و طراحی مراحل گوناگون بازی (Level Design) دانست.

 

موتورهای FPS نسل اول – اوایل سال 1970 تا اواخر 1980 میلادی – نخستین تلاش‌ها

رندرگیری این نسل از بازی‌ها از همان ابتدا از دید اول شخص انجام می‌شد، اما این کار با استفاده از اصول مبتنی‌بر وکتورها انجام می‌شد که محدودیت‌های گرافیکی فراوانی به همراه داشت. در واقع، دو بازی Maze War و Spasim را پایه‌گذار و به نوعی جد بزرگ بازی‌های FPS کنونی می‌دانند. بازی Maze War که در سال 1973 ساخته‌شد، حالتی تک نفره داشت و بازی‌باز باید مسیر خود را از میان یک هزار تو (Maze) پر پیچ و خم پیدا می‌کرد. این هزارتو که از نمای پرسپکتیو ثابت طراحی شده بود، پایه گذار یکی از محبوب‌ترین سبک‌های بازی شد. در سال 1974، این بازی گسترش پیدا کرد و حالت چند نفره نیز به آن اضافه شد. در حالت چند نفره، کاربرها می‌توانستند در حین جست‌وجو در هزار تو برای پیداکردن مسیر درست، با شلیک رقبا را از پیش‌رو بردارند. بازی Spasim هم که در سال 1974 عرضه شد، با وضعیتی تقریباً مشابه، یک محیط سه‌بعدی سیمی (WireFrame) را در بر‌می‌گرفت و از طریق شبکه PLATO، همزمان سه کاربر قادر به استفاده از آن بودند.



شکل 1- بازی MazeWar محصول 1973


در سال 1986 میلادی WiBArm، به نخستین بازی‌ای تبدیل شد که از رندر گرافیک سه‌بعدی کامل استفاده کرد. تا قبل از این بازی، نمونه‌های مشابه به حرکات 90 درجه محدود بودند، اما این بازی برای کامپیوترهای PC-8801 NEC و بعدها روی سیستم‌عاملMS-DOS عرضه شد و امکان چرخش 360 درجه کامل را به کاربر می‌داد. کمی بعدتر، بازی Star Cruiser نیز با بهره‌گیری از روش مشابه (به کار‌گیری چند‌‌ضلعی‌های رندر شده)، به نخستین بازی‌ای تبدیل شد که تصاویر پس زمینه، اشیا و حریفان را به شکل سه‌بعدی رندر‌کرد. این بازی در سال 1988 برای PC 8801 منتشر شده بود. نخستین موتور‌بازی سه‌بعدی، Free Space بود که شرکت خانگی Incentive Software آن را تولید کرد و برای نخستین‌بار در سال 1987 برای ساخت بازی Driller از آن بهره گرفت.

 

نسل دوم – اوایل سال 1990 میلادی – از قاب‌های سیمی تا گرافیک 2,5 بعدی و بافت دهی

بیشتر بازی‌های این نسل به عنوان بازی‌های مشابه Doom شناخته‌می‌شوند. این بازی‌ها قابلیت رندر سه‌بعدی کامل را نداشتند و با استفاده از روش 2,5 بعدی طراحی ‌شده. طراحی 2,5 بعدی به این صورت بود که کاراکترها به شکل دو بعدی طراحی شده، اما با بهره‌گیری از روش‌های پخش اشعه نور(Ray Casting)، طراحان، محیط بازی را به صورت مجازی، به حالت سه‌بعدی در می‌آوردند و در واقع برای کاربر، توهم حضور در فضای سه‌بعدی را شبیه‌سازی می‌کردند. به هر حال، این گروه از بازی‌ها، نخستین نمونه‌هایی بودند که به جای استفاده از قاب‌های سیمی، محیط بازی را بافت‌دهی کردند تا جذابیت بصری بیشتری برای کاربران خود ایجاد کنند. بازی‌های این نسل از موتورها، نه فقط در ایران، بلکه در بیشتر کشورهای جهان و بین کاربران غیرحرفه‌ای، شناخته‌شده‌تر از نمونه‌های قبلی‌هستند و در واقع بیشتر کاربران و بازی‌باز‌ها، این بازی‌ها را به عنوان نسل اول پایه گذار بازی‌های FPS امروزی می‌شناسند.





شکل 2- بازی HoverTank


نخستین بازی که از روش 2,5 بعدی استفاده کرد، Hovertank، ساخت شرکت id Software بود. اما این بازی، شامل بافت‌دهی به محیط بازی نمی‌شد. بازی Catacomb 3d، نخستین نمونه‌ای بود که در کنار بهره‌گیری از روش 2,5 بعدی از بافت‌دهی نیز استفاده کرد. روشی که کمی جلوتر باعث موفقیت بسیار زیاد بازی Wolfenstein 3d شد. موتور Wolf، کماکان بسیار ناقص و ساده بود. برای نمونه، سقف و کف محیط بازی قابل بافت‌دهی نبود و مراحل آن شامل پستی و بلندی یا به بیان دیگر تغییرات در راستای محور z نمی‌شدند و تمامی دیوارها در تمامی مراحل، ارتفاع یکسانی داشتند. بازی Doom که در سال 1993 توسط شرکت id Software و با بهره‌گیری از موتور id Tech عرضه شد، نخستین نمونه‌ای بود که این محدودیت‌ها را از میان برداشت. یکی دیگر از نقاط قوت Doom امکان بازی همزمان چند نفره (MultiPlayer) بود. به هر حال، از آنجا که این موتور هم کماکان از روش 2,5 بعدی استفاده می‌کرد، بازی کننده قادر نبود در محیط بازی بالا یا پایین را نگاه کند. در واقع Doom و تمام مراحل آن، محیط‌های دو بعدی بودند که با بهره‌گیری از نور و رنگ، حس وجود یک محیط سه بعدی را به کاربر القا می‌کردند.موفقیت کم نظیر Doom باعث شد که بسیاری از شرکت‌ها از ساختار آن تقلید کرده و بازی‌های مشابهی را تولید کنند. کمی بعدتر، بازی Duke Nukem 3d در سال 1996 با استفاده از موتور Build Engine، برخی از محدودیت‌های موتور id Tech را از میان برداشت، اما کماکان این بازی نیز با استفاده از همان روش ساخته شده بود.

 

نسل سوم – اواسط دهه 1990 میلادی – مدل‌های سه‌بعدی و آغاز به کارگیری شتاب‌دهنده‌های سخت افزاری

در این نسل از موتورها، برای نخستین‌بار ساختار محیط‌های سه‌بعدی امروزی شکل گرفت. از مهم‌ترین خصوصیات موتورهای این نسل، بافت‌دهی ساده (‌بدون استفاده از جزئیات نور‌) و طراحی اشیا به کمک چند ضلعی‌ها(Designing ‌Polygon) هستند. نخستین بازی کامپیوتری که با بهره‌گیری از این روش‌ها ساخته شد، بازی Metal Head بود که توسط شرکت Sega و در سال 1995 به بازار عرضه شد. همزمان با این بازی، Geograph Seal، برای نخستین‌بار محیط بازی‌های FPS را از راهروهایی مشابه با Wolf به فضای خارجی برد. Dark Forces هم در همان سال توسط شرکت Lucas Arts ارائه شد که بسیاری آن را نخستین بازی واقعی 3D در سبک FPS می‌دانند. موتور Jedi Engine که این بازی به کمک آن طراحی شد، کاملاً از ساختار استاندارد سه‌بعدی پشتیبانی می‌کرد. در این موتور محیط‌های گوناگون می‌توانستند به شکل سه‌بعدی در کنار هم یا با اختلاف ارتفاع نسبت به یکدیگر، روی هم سوار شوند.  کمی جلوتر در سال 1996، بازی Quake با بهره‌گیری از موتور Quake Engine ساخته شد. این بازی برای نخستین‌بار از هندسه سه‌بعدی ‌(3d Geometry)‌، نورپردازی سه‌بعدی و تکنیکی استفاده کرد که بعدها به روش بافر‌کردن در راستای محورZ (م  Z Buffering )معروف شد و باعث افزایش سرعت رندرگیری می‌شد. Quake نخستین بازی بود که از یک سیستم ویژه نقشه‌کشی برای طراحی محیط بازی استفاده کرد. سیستمی که بعدها تحت عنوان Game Map، در بسیاری از بازی‌ها استفاده شد. فایل‌های مربوط به نقشه‌های محیط بازی که با فرمت BPS. ذخیره می‌شدند، حاوی اطلاعاتی در زمینه بافت‌دهی، هندسه و نورپردازی محیط بازی بودند که باعث تسهیل در رندرگیری و در نتیجه افزایش سرعت اجرای بازی می‌شدند.



شکل 3- Half-Life


نخستین واحدهای پردازش گرافیکی (GPU) در اواخر دهه 90 میلادی عرضه شدند، اما بازی‌های این نسل کماکان از ساختار نرم‌افزاری برای پردازش تصاویر استفاده‌می‌کردند. موتور بازی id Tech 2 که بازی Quake II در سال 1996 به کمک آن ساخته شد، نخستین موتور بازی بود که از توانایی‌های پردازنده‌های گرافیکی سخت‌افزاری بهره گرفت. کمی بعدتر در سال 1998، موتور GoldSrc که بازی Half-Life با آن ساخته شد، در کنار بهره‌گیری از پردازنده‌های سخت‌افزاری، پشتیبانی از Direct3D را نیز به توانایی‌های خود اضافه کرد تا با بهره‌گیری از این امکانات، سرعت پردازش تصاویر در محیط بازی بالاتر رود. استفاده از این ابزارها در کنار پیشرفت‌های گرافیکی، باعث بهبود هوش مصنوعی NPC (کاراکترهای غیرقابل بازی کردن در محیط‌‌ بازی) شد.

در این قسمت، ساختار و ویژگی‌های موتورهای بازی‌های سبک شلیکی اول شخص (FPS) را به صورت تخصصی‌تر بررسی می‌کنیم. یکی از دلایل اصلی انتخاب این گروه از موتورهای بازی برای بررسی دقیق‌تر، این است که این گروه از بازی‌ها، جدا از محبوبیت بالا و تعداد عناوین به نسبت زیادی که هر ساله در این ژانر عرضه می‌شوند، شامل در دسترس‌ترین نرم‌افزارها برای کاربران ایرانی علاقه‌مند به این علم است و از طرفی به دلیل وجود پیچیدگی‌های‌کمتر، نقطه شروع خوبی برای افرادی است که علاقه‌مند به کار با موتورهای‌بازی هستند. اما قبل از شروع کار، توجه داشته باشید که کارکردن در حیطه موتورهای‌بازی، هرچند موتورهایی با پیچیدگی به نسبت کم، به مراتب از کارکردن با بسیاری از نرم‌افزارها دشوارتر است. شخصی که قصد دارد وارد این حیطه شود، باید جدا از تقویت دانش تخصصی خود، صبر و حوصله زیادی را برای کار و آزمون و خطاهای متعدد داشته باشد و از همه مهم‌تر، نمی‌توان نقش پررنگ علاقه را نیز انکار کرد. بسیاری از برنامه‌نویس‌های ماهر، اشتیاق چندانی به سر و کله زدن با موتورهای بازی ندارند، نه به این دلیل که دانش کافی را برای انجام این کار ندارند  بلکه به این دلیل که علاقه چندانی به دنیای سرگرمی‌های دیجیتال در وجودشان نیست. اما اگر نیمه پر لیوان را نگاه کنیم، هرکسی که در این حیطه، مطالعه، تحقیق و فعالیت می‌کند، با صرف زمان و با اتکا به آموخته‌های به روز و البته صبر و حوصله زیاد می‌تواند از بسیاری از افراد گروه اول هم موفق‌تر باشد و همین امر یکی از نقاط مثبت صنعت‌هایی است که در یک محدوده خاص زمانی یا مکانی در حال رشد و توسعه هستند. این موضوع دقیقاً مشابه وضعیت صنعت بازی‌های کامپیوتری در کشورما است و به یقین کسانی که سریع‌تر وارد این رشته شوند و دانش خود را افزایش دهند، در آینده موفق‌تر خواهند بود. پس بعد از آشنایی نسبی با موتورهای بازی در قسمت گذشته، در این قسمت به موتورهای بازی سبک FPS و ساختار آن‌ها نگاهی دقیق‌تر خواهیم داشت.

 

نسل چهارم – اواخر دهه 1990 میلادی – رنگ‌هایی با عمق 32 بیت و استفاده از استاندارد GPU

این دوره مصادف بود با ورود کارت‌های‌گرافیکی که نسبت به گذشته قابلیت‌های بسیار بیشتری داشتند. قابلیت‌هایی که نورپردازی و رنگ‌دهی دقیق، در میان آن‌ها برای طراحان بازی‌ها اهمیت بیشتری داشت. نخستین کارت گرافیکی که از این فناوری‌های نوین استفاده کرد، کارت Geforce 256 بود. کارتی که تا مدت‌ها بدون وجود رقیبی جدی، یکه‌تاز عرصه گرافیک کامپیوتری محسوب می‌شد. در واقع تا یک سال بعد که کارت Radeon 7200 به بازار عرضه شد، این کارت محبوب‌ترین و پرطرفدارترین کارت گرافیکی طراحان و بازی‌باز‌ها بود. به بیان دیگر، صنعت بازی‌های کامپیوتری و نیازهای کاربران، باعث شد که سازندگان کارت‌های‌گرافیکی به فکر استفاده از فناوری‌های نوین سخت‌افزاری گرافیکی برای بالابردن سطح رضایت مشتری‌های خود باشند.



شکل 4 - بازی Quake III Arena


هرچند در این برهه تمامی بازی‌ها از رنگ‌هایی با عمق 16 بیت پشتیبانی‌می‌کردند، اما ظهور کارت‌های جدید باعث شد، بسیاری از طراحان بازی‌ها به فکر تطبیق دادن محصول خود با رنگ‌های 32 بیتی بیفتند (در واقع 24 بیت عمق رنگ به علاوه 8 بیت کانال آلفا). موتور بازی Unreal که در این زمان در بسیاری از بازی‌های FPS مورد استفاده قرار‌می‌گرفت، یکی از تأثیرگذارترین پارامترها در این روند رو به رشد افزایش توان گرافیکی بود. این موتور از امکاناتی استفاده می‌کرد که به‌صورت ویژه برای جی‌پی‌یو‌های 3dfX کاربرد داشت. شاید مهم‌ترین دلیل فراگیر شدن موتور Unreal، ساختار و معماری این موتور و سادگی استفاده از اسکریپت‌ها برای طراحی مراحل و مدهای بازی‌های FPS بود که به کاربران اجازه می‌داد تا با آشنایی مختصر با اصول برنامه‌نویسی بتوانند آنچه را که در ذهن داشتند، پیاده‌سازی کنند. یکی دیگر از نقاط قوت Unreal نسبت به موتورهای قبلی، استفاده این موتور از امکانات شبکه و امکان ساخت بازی‌های تحت شبکه در حالت‌های چند‌نفره بود. از‌طرفی، در همین دوره موتور id Tech3 نیز برای نخستین‌بار برای ساخت‌بازی بسیار محبوب و پرطرفدار Quake III Arena مورد استفاده قرار گرفت که بهبود در نحوه ذخیره‌سازی انیمیشن‌ها و همچنین رندرگیری نرم‌تر، نورپردازی و سایه‌زنی دقیق‌تر، جزء خصوصیات این موتور بودند.

 

نسل پنجم – اوایل سال 2000 – افزایش جزئیات و به کارگیری محیط‌های بیرونی

افزایش توانایی‌های سخت افزارهای گرافیکی به موتورهای بازی این امکان را داد تا نسبت به بهبود کیفیت گرافیک بازی‌ها اقدام کنند. از جمله پیشرفت‌های موتورهای این نسل مسائلی از قبیل اضافه‌کردن جلوه‌های محیطی مانند مه و گرد وغبار، افزایش جزئیات بافت‌ها و استفاده از چندضلعی‌های دقیق‌تر برای ترسیم سه‌بعدی بود. در این مقطع زمانی، بیشتر موتورهای بازی استفاده از DirectX 6.0 را متوقف کرده و به سمت استفاده از DirectX 7.0  و DirectX 8.0 روی آوردند. از طرفی موتورهای بازی که قبلاً برای طراحی بازی‌های کامپیوتری مورد استفاده قرار می‌گرفتند (مانند Unreal Engine)، شروع به تطبیق دادن خود با کنسول‌های نسل ششم مانند PS2 وGame Cube کردند. کنسول‌هایی که قادر به پیاده‌سازی گرافیک کامپیوتری با وضوح و جزئیات بسیار زیاد بودند.  از طرفی بیشتر بازی‌های معروف FPS تا این مقطع، تمرکز خود را روی طراحی درونی محیط‌های بازی گذاشته بودند و کمتر به استفاده از محیط‌های بیرونی و وسیع تمایل داشتند. این رسم که در واقع با بازی‌های اولیه مانند Wolf ، Doom و Quake پایه گذاری شد، در این مقطع توسط طراحان بازی‌ها ارتقا‌یافته و استفاده از محیط‌ها وسیع بیرونی، بدون به کارگیری دیوارها و راهروهای تو در تو را نیز، در بازی‌های FPS باب کرد.


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

نسل جدید پردازنده‌های گرافیکی این اجازه را به طراحان بازی می‌داد که برای ایجاد بافت مورد نظر خود، از روش سایه زنی پیکسل‌ها(Pixel Shading) استفاده کنند. این روش بر این اساس متمرکز بود که نورپردازی و سایه زنی به جای این که روی یک سطح یا حجم صورت گیرد، روی تک‌تک پیکسل‌های تشکیل‌دهنده آن پیاده شود که به طور طبیعی نتیجه کار نسبت به نمونه‌های قبلی کیفیت بسیار بالاتری داشت. از طرفی طراحان برای بهبود ساختار گرافیکی بازی، از روش‌هایی مانند ایجاد پستی و بلندی روی سطوح، نورپردازی دقیق و سایه‌زنی نرم، در این نسل از موتورهای بازی استفاده کردند. تا قبل از این، پردازنده‌های قوی می‌توانستند جور کارت‌های گرافیکی قدیمی‌تر را بکشند، اما ظهور جزئیات گرافیکی در این نسل از موتورها، باعث شد که حداقل سیستم مورد نیاز برای اجرای بازی‌های این نسل تغییر کند. کارت‌های گرافیکی مانند Geforce 3 و Radeon 8500، حداقل این نیازها بودند وبرای اجرای بهتر، کاربران باید به دنبال کارت‌های قوی‌تری مانند Geforce FX و Radeon 9700 یا کارت‌هایی می‌رفتند  که از فناوریPixel Shader 2.x استفاده می‌کردند.



شکل 6- بازی Half-Life 2


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


موتور id Tech 4، نخستین ابزاری بود که در سال 2004 برای پدیدآوردن بازی Doom 3، از روش نورپردازی داینامیک برای هر پیکسل استفاده کرد (Dynamic Per-Pixel Lighting). در حالی که موتورهای قبلی از سیستم محاسبه پیش از رندر (Pre-Render Calculation) برای هر وکتور – و نه هر پیکسل- استفاده می‌کردند. این روش نورپردازی نوین هرچند باعث به دست آوردن تصاویری واقعی‌تر و با کیفیت بالاتر می‌شد، اما از طرفی دیگر، قادر به رندر کردن سایه‌های نرم (Soft Shadows) نبود. مسئله‌ای که باعث می‌شد قدرت موتورهای بازی، در فضای بسته بیشتر از قدرت گرافیکی آن در فضاهای باز باشد؛‌ فضاهایی که نورهای گسترده (مانند نور خورشید) را در بر‌می‌گرفت. کمی بعدتر موتور id Tech 4 با بهره‌گیری از فناوری Mega Texturing توانست این ضعف را برطرف کند. در همان سال شرکت Valve، بازی Half-Life 2 را که با کمک موتور Source طراحی شده بود، روانه بازار کرد. مهم‌ترین ویژگی این موتور در کنار سایر خصوصیات مشابه آن با موتورهای دیگر، این بود که طراحی انیمیشن صورت کاراکترها، بسیار واقعی بود و در نتیجه تطابق حرکات لب و دهان با دیالوگ‌ها (Lip-Sinking)، بسیار پرقدرت‌تر از نمونه‌های قبلی بود.

 

نسل هفتم – اواخر دهه 2000 میلادی – ظهور فتورئالیسم

بهبود ساختارنسل‌های بعدی GPU‌ و سایه زنی‌های انجام شده توسط آن ها، این امکان را به تراشه‌های گرافیکی کارت‌هایی مانند Geforce 7 و سری کارت‌های Radeon X1xxx داد تا جلوه‌های گرافیکی ایجاد شده توسط موتورهای بازی را ارتقا دهند. موتورهای این نسل شامل موادی بر‌پایه سایه زنی‌های واقعی هستند که فیزیک ساختاری آن‌ها از پیش تعریف شده است و در کنار آن‌ها از اشیایی که سایه‌زنی آن‌ها به‌صورت ورتکس انجام می‌شود، استفاده می‌کنند. این اشیا به طور معمول شامل پوشش‌های گیاهی و ابزارهای ساخت دست بشر (مانند کتاب‌ها و...) هستند.  به علاوه، این نسل از موتورها با بهره‌گیری از پیشرفت‌های گرافیکی، از جلوه‌هایی مانند افکت Motion Blur (محو شدن اشیا بر اثر حرکت سریع) و Depth of Field (عمق میدان یا تنظیم وضوح و تاری تصویر بر‌اساس فاصله از لنز دوربین) استفاده می‌کنند. به هر حال باید در نظر داشت که موتورهای جدیدی که از این امکانات استفاده‌می‌کنند، همان موتورهای قدیمی هستند که متحول شده و ویژگی‌های تکمیلی به آن‌ها اضافه شده ‌است. موتورهایی مانند Unreal Engine 3، Dunia Engine، Cry Engine و Source. نخســتین بــازی‌هــایــی کـــه ازUnreal Engine3 بهره گرفتند، در نوامبر سال 2006 و نخستین نمونه‌های تولید شده با موتور Cry Engine 2 (مانند Crysis ) در سال 2007 روانه بازار شدند.



شکل 7- بازی Crysis

 
 نسل هشتم – اوایل سال 2010 تا به امروز – استفاده از تکنیک گرافیک ترکیبی

مهم‌ترین خبرها در زمینه نسل جدید موتورهای بازی، یکی ارائه موتور id Tech 5 است که برای نخستین‌بار در ساخت بازی‌های Rage و Doom 4 مورد استفاده قرار می‌گیرد و از روش‌های جدیدی برای بافت‌دهی، تحت عنوان Virtual Texturing ( بافت دهی مجازی‌) بهره می‌گیرد و دیگری ارائه موتور بازی Cry Engine 3 است که برای ساخت Crysis 2 از آن استفاده می‌شود. شرکت‌های معتبر محدودی از برنامه‌های آینده خود صحبت کرده‌اند و بیشتر اطلاعات این محصولات آینده، هنوز در هاله‌ای از ابهام قرار دارد. یکی از موتورهایی که باید منتظر آن بود، موتور Id Tech 6 است که در ادامه موفقیت‌های نسخه‌های قبلی عرضه خواهد شد. این موتور که هنوز در مراحل اولیه طراحی به سر می‌برد، با ترکیب روش‌های گوناگون بصری و گرافیکی، می‌تواند انقلابی در صنعت موتورهای بازی ایجاد کند. به هر حال با توجه به گفته جان کارمک (مدیر پروژه طراحی موتور id Tech 6)، فعلاً سخت‌افزاری که بتواند نتیجه حاصل از به‌کارگیری این موتورها را پردازش و ارائه کند، ساخته نشده است. پس ما هم بی‌صبرانه منتظر می‌مانیم تا با ارائه این موتور و سخت‌افزارهای مرتبط، بتوانیم لذت بازی‌هایی را تجربه کنیم که شاید روزی برای‌ما فقط یک رؤیای دست نیافتنی و بزرگ محسوب می‌شدند.

 
یکی از اشتباهات رایج کاربرانی که در عرصه کار با موتورهای بازی تازه‌کار بوده و به تازگی قصد  ورود به این حیطه را دارند، این است که در همان ابتدای کار، مستقیم به سراغ موتورهای شناخته شده‌تری مانند Unreal، GameBryo و ... می‌روند. همان‌طور که در قسمت‌های قبلی گفتیم، بهترین راه برای وارد شدن  به این حوزه این است که از موتورهای ساده‌تر و ساخت بازی‌های جمع و جورتر شروع کنید و به مرور و با به دست‌آوردن تجربه‌های لازم، موتورهای پیشرفته‌تر و بازی‌های سطح بالاتر را امتحان کنید. مطمئن باشید که اگر از همان ابتدا به سراغ یک موتور‌بازی پیچیده بروید، حاصل کار در نهایت نمی‌تواند یک بازی مستقل شود، بلکه در بهترین شکل خود شبیه‌سازی یکی از مراحل یا مُدهای یک بازی شناخته شده می‌شود، حال آن که با موتورهای ساده‌تر می‌توانید جدا از کسب تجربه در عرصه کار با موتورها، خلاقیت خود را نیز افزایش داده و بازی‌های ساده و کوچک، اما موفقی تولید کنید. به خاطر داشته باشید، مهم‌ترین عنصر موفقیت یک بازی‌کامپیوتری، نه گرافیک سطح بالا، نه جزئیات طراحی مراحل و کاراکترها و نه پیچیدگی سطوح مختلف بازی است‌! مهم‌ترین چیزی که می‌تواند یک بازی را با موفقیت همراه کند، خلاقیت سازندگان آن است و بس. به یقین، بهتر از من می‌توانید بازی‌هایی را به خاطر بیاورید که به‌رغم زرق و برق‌های فراوان گرافیکی، به شدت مورد  بی‌توجهی قرار گرفتند و از آن طرف بازی‌هایی که با گرافیک ساده و دم‌دستی، توانستند میلیون‌ها طرفدار در سراسر دنیا برای خود پیدا کنند.


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


موتور Aleph One یک انتخاب بسیار مناسب برای کسانی است که قصد دارند برای نخستین‌بار ساخت بازی‌‌های تیراندازی اول شخص را امتحان‌کنند. این موتور که هم از گرافیک دو‌بعدی و هم سه‌بعدی پشتیبانی می‌کند، می‌تواند شما را با اصول ساخت بازی‌های FPS آشنا کند. اصولی مانند تعریف تصادم‌ها، تعریف رندرگیری‌ها، جاگذاری کاراکترها و طراحی مراحل، که هر یک به نوعی جزء مهم‌ترین اصول ساخت بازی‌های این سبک هستند. از جمله بازی‌های معروفی که با این موتور طراحی شده است می‌توان به بازی Marathon اشاره کرد.

 
موتور Ardor3d هم مانند موتور Aleph One می‌تواند گزینه مناسبی برای طراحی بازی‌های تیراندازی اول شخص محسوب شود. کار کردن با موتور Ardor3d شما را با نحوه به کارگیری بافت‌ها و نورپردازی و سایه‌دهی مراحل یک بازی به خوبی آشنا می‌کند و از طرفی با توجه به این که با بیشتر سیستم‌عامل‌های شناخته شده سازگاری دارد، می‌تواند برای طراحی بازی‌ها روی ‌کامپیوتر شخصی مناسب باشد. Ardor3d موتوری است که به‌رغم سادگی، توسط بسیاری از افراد و شرکت‌ها به کارگرفته‌شده و با استفاده از امکانات آن، بازی‌های کوچک، اما قابل توجه زیادی تولید می‌شود.

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


یکی دیگر از موتورهای مخصوص سبک FPS موتور Build Engine است که بر‌پایه گرافیک 2,5 بعدی کار می‌کند، یعنی با ایجاد فضای دو بعدی و نورپردازی، سایه‌زنی و بافت‌دهی‌های دقیق، توهم حضور بازیکن در یک محیط سه‌بعدی را شبیه‌سازی می‌کند. مهم‌ترین فایده این کار این است که اجرای بازی،‌ بارپردازشی زیادی بر دوش سیستم نمی‌گذارد و از طرفی، طراحان مبتدی که تازه قصد وارد‌شدن به حیطه گرافیک سه‌بعدی را دارند، می‌توانند به کمک این موتور با اصول کلی کار آشنا شوند. Build Engine  توسط بسیاری از شرکت‌های معتبر و در ساخت بازی‌های محبوبی مانند Duke Nukem، Blood و Shadow Warrior به کار گرفته شده است.

 
Flexible Isometric موتوری است برای علاقه‌مندان به بازی‌های نقش آفرینی (RPG) و به شکلی بسیار ساده اصول ساخت این بازی‌ها، از قبیل روش‌های ارتقای قدرت کاراکتر در حین بازی و تعریف آیتم‌های کمکی را به شما آموزش می‌دهد. این موتور توانایی ساخت بازی‌های  سه‌بعدی را ندارد، اما می‌تواند در محیط دو‌بعدی و به کمک خلاقیت طراحان، بازی‌های قابل قبولی تولید کند. از جمله پروژه‌هایی که ساخت آن به کمک این موتور انجام گرفته می‌توان به بازی Unknown Horizons اشاره کرد.

 
سه نسخه اولیه موتور بسیار محبوب idTech 1,2,3، امروزه به صورت رایگان در دسترس علاقه‌مندان قرار دارد. موتورهایی که روزی ابزار ساخت بازی‌های پرطرفداری مانند سری Quake، Doom و Hexen بودند، به یقین برای تولید بازی‌های FPS استفاده می‌شوند. پیشنهاد می‌کنم در صورتی که علاقه‌مند به کار در این حیطه هستید، کار خود را از نسخه اول و با تولید یک بازی ساده شروع کرده، سپس به سراغ نسخه‌های بعدی بروید تا به مرور، اصول کلی طراحی و روش‌های کار را درک کنید.

 
موتور Adventure Game Studio مناسب کسانی است که به ساخت و طراحی بازی‌های ماجرایی گرافیکی علاقه‌مند هستند. این موتور تمام نیازهای شما را برای ساخت یک بازی در این سبک تأمین می‌کند و به شما این اجازه را می‌دهد تا با تعریف خطوط داستانی انشعابی (Forklines) بتوانید مسیرهای مختلفی را پیش روی کاربر خود قرار دهید تا با انتخاب‌هایی که او انجام می‌دهد، خط سیر داستان تغییر کند. از طرفی امکان تعریف اشیا و ترکیب آن‌ها با یکدیگر برای رسیدن به هدفی خاص، که جز جدا نشدنی بازی‌های این سبک است نیز، توسط این موتور قابل پیاده‌سازی و اجرا است. دراثبات توانایی‌های این موتور همین بس که شرکت معتبری مانند Sierra با استفاده از همین موتور، بسیاری از عناوین ماجرایی محبوب خود را به بازار عرضه کرد.

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

 

موتور Esperient Creator موتوری بسیار قدرتمند است که بیشتر برای ساخت بازی‌های آموزشی و شبیه‌سازها استفاده می‌شود. از مهم‌ترین خصوصیات این موتور می‌توان به سازگار بودن آن با برنامه اصلی گرافیک سه‌بعدی مانند 3dMax و Maya اشاره کرد. از طرفی این موتور توانایی‌های بسیار بالایی در نورپردازی داینامیک و بافت دهی دارد که می‌توان به کمک آن‌ها، دقیق ترین جزئیات مورد نظر را نیز در طراحی بازی، محیط، کاراکترها و ... اعمال کرد.

 
موتور CryEngine 3 بین طراحان بازی‌های سه‌بعدی بسیار محبوب است و امکانات بسیار زیاد آن باعث می‌‌‌شود که عناوین بازی‌هایی که بر اساس آن تولید می‌شوند، با کیفیت بسیار بالا، روانه بازار شوند. از جمله مهم‌‌ترین امکانات این موتور می‌توان به تعریف مواد، بافت و جنس اشیا موجود در بازی، رندرگیری سریع و دقیق، شبیه‌سازی حالات داینامیکی مانند امواج آب و ... اشاره کرد. از جمله مهم‌ترین بازی‌هایی که با این موتور‌تولید شده‌اند می‌توان از بازی معروف Crysis نام برد که به خوبی نشان دهنده توانایی‌های فنی و گرافیکی این موتور است.

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

نظرات  (۱)

۱۷ فروردين ۹۵ ، ۲۱:۰۹ سیّد محمد جعاوله
جامع و خوب

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی