موتورهای بازی، از صفر تا صد (قسمت اول)
صنعت ساخت بازیهای کامپیوتری را شاید بتوان یکی از مهجورترین رشتههاي مرتبط با فناوری اطلاعات در ایران دانست. صنعتی که بهتازگی در حال برداشتن گامهاي نه چندان مطمئن نخستین است و به طور مسلم راهی بسیار طولانی و پرفراز و نشیب پیشرو دارد. در میان شاخههاي مرتبط با ساختبازی، آشنایی با موتورهای بازی (Game Engines)، جزء ناشناختهترین یا با کمی اغماض، کم شناخته شدهترین زیر مجموعههاي این صنعت در کشورمان است. در میان علل مختلف این موضوع، به طور مسلم کمبود منابع به زبان فارسی، یکی از مهمترین آنها است. در اين مقاله سعي شده تا علاقهمندان به ساخت بازیهاي کامپیوتری با مفاهیم، تعریفها و اصول اولیه انتخاب و شناخت موتورهای بازی آشنا شوند تا شايد اندكي از خلاء موجود در اين زمينه كاسته شود.
برای شروع بهتر است بدانیم مهمترین وظایف یک موتور بازی چیست:
1 – انجام عملیات مربوط به رندر کردن تصویر در بازی يا Rendering
2 – تعیین برخوردهای فیزیکی در محیط بازی يا Collision
3 – تخصیص صدای مناسب به کاراکترها و محیطهاي گوناگون
4 – ایجاد انیمیشنهاي مورد نیاز در بازی
5 – تعیین وظایف و کارکردهای هوش مصنوعی
6 – مدیریت حافظه سیستم هنگام اجرای بازی
7 – تعیین تنظیمات شبکه در بازیهاي چند نفره
همانگونه که مشاهده ميکنید، وظایف مذکور باعث ميشوند، عملاً نحوه تعامل بازیکن با محیط بازی، توسط موتور بازی تعریف شود.
قبل از ورود موتورهای بازی به این عرصه، ساخت بازیها، توسط کد نویسی انجام ميشد که این کار، باعث ایجاد محدودیتهاي فراوانی در این زمینه شده بود. از جمله مهمترین این محدودیتها میتوان به موارد زیر اشاره کرد:
1 – نیاز به زمان زیاد برای تکمیل یک پروژه
2 – امکان بالاي بروز خطا و مشکلات برطرف كردن خطاها
3 – نیاز به برنامه مجزا و جدید برای هر عنوان جديد بازي
4 – شباهت فراوان بازیهایی که از یک منبع برنامه استفاده ميکردند
به عنوان مثال، بازیهاي کنسول محبوب Atari 2600 را در نظر بگیرید که عملاً تمامی بازیهاي نسل نخست این کنسول، از یک منبع منتشر ميشدند و همین موضوع باعث شباهت انکار ناپذیر آنها با یکدیگر میشد. تمامی بازیهاي نسل نخست این کنسول، به نوعی در برگیرنده دو حریف هستند که به سمت یکدیگر شلیک ميکنند و در این میان تنها اختلاف بین این بازیها در نحوه چیدمان گرافیک پیکسلی آنها بود. بعدها در بازیهای متأخر این کنسول نیز، شباهتها از میان نرفت و مجموعه بازیهاي حرکت و شلیکی به این کنسول اضافه شدند.
بعدها بازیهایی مانند Quake III Arena و Unreal نیز به همین شیوه تولید شدند. این کار باعث صرفهجویی بسیار زیاد در هزینهها و مهمتر از آن در زمان ساخت بازی و نیروی انسانی مورد نیاز برای تهیه هر عنوان ميشد.موتورهای بازی امروزی، جزء پیچیدهترین نرمافزارهای نوشته شده هستند. این موتورها، با امکاناتی مجزا برای رندرکردن، اسکریپتنویسی، طراحیهنری و طراحی مراحل بازی، دست سازندگان بازیها را در اعمال تغییرات دلخواه و استفاده از عنصر خلاقیت، بسیار باز گذاشتهاند. عملی که به تولید دهها عنوان بازی بزرگ در هر سال منجر ميشود.
موتور بازی 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
موتور بازی چیست؟
برای شروع بهتر است بدانیم مهمترین وظایف یک موتور بازی چیست:
1 – انجام عملیات مربوط به رندر کردن تصویر در بازی يا Rendering
2 – تعیین برخوردهای فیزیکی در محیط بازی يا Collision
3 – تخصیص صدای مناسب به کاراکترها و محیطهاي گوناگون
4 – ایجاد انیمیشنهاي مورد نیاز در بازی
5 – تعیین وظایف و کارکردهای هوش مصنوعی
6 – مدیریت حافظه سیستم هنگام اجرای بازی
7 – تعیین تنظیمات شبکه در بازیهاي چند نفره
همانگونه که مشاهده ميکنید، وظایف مذکور باعث ميشوند، عملاً نحوه تعامل بازیکن با محیط بازی، توسط موتور بازی تعریف شود.
قبل از ورود موتورهای بازی به این عرصه، ساخت بازیها، توسط کد نویسی انجام ميشد که این کار، باعث ایجاد محدودیتهاي فراوانی در این زمینه شده بود. از جمله مهمترین این محدودیتها میتوان به موارد زیر اشاره کرد:
1 – نیاز به زمان زیاد برای تکمیل یک پروژه
2 – امکان بالاي بروز خطا و مشکلات برطرف كردن خطاها
3 – نیاز به برنامه مجزا و جدید برای هر عنوان جديد بازي
4 – شباهت فراوان بازیهایی که از یک منبع برنامه استفاده ميکردند
به عنوان مثال، بازیهاي کنسول محبوب Atari 2600 را در نظر بگیرید که عملاً تمامی بازیهاي نسل نخست این کنسول، از یک منبع منتشر ميشدند و همین موضوع باعث شباهت انکار ناپذیر آنها با یکدیگر میشد. تمامی بازیهاي نسل نخست این کنسول، به نوعی در برگیرنده دو حریف هستند که به سمت یکدیگر شلیک ميکنند و در این میان تنها اختلاف بین این بازیها در نحوه چیدمان گرافیک پیکسلی آنها بود. بعدها در بازیهای متأخر این کنسول نیز، شباهتها از میان نرفت و مجموعه بازیهاي حرکت و شلیکی به این کنسول اضافه شدند.
تاریخچه موتورهای بازی
بعدها بازیهایی مانند Quake III Arena و Unreal نیز به همین شیوه تولید شدند. این کار باعث صرفهجویی بسیار زیاد در هزینهها و مهمتر از آن در زمان ساخت بازی و نیروی انسانی مورد نیاز برای تهیه هر عنوان ميشد.موتورهای بازی امروزی، جزء پیچیدهترین نرمافزارهای نوشته شده هستند. این موتورها، با امکاناتی مجزا برای رندرکردن، اسکریپتنویسی، طراحیهنری و طراحی مراحل بازی، دست سازندگان بازیها را در اعمال تغییرات دلخواه و استفاده از عنصر خلاقیت، بسیار باز گذاشتهاند. عملی که به تولید دهها عنوان بازی بزرگ در هر سال منجر ميشود.
انواع موتورهای بازی
1 – موتورهای سطح پایین (Roll – your- own Game Engine)
2 – موتورهای سطح میانی ( Mostly – Ready Game Engines )
3 – موتورهای سطح بالا ( Point & Click Game Engines )
شكل 1- نمونه ای از موتورهای بازی سطح میانی
چند نمونه از موتورهای بازی
بررسی سیر تکاملی یک موتور بازی نمونه (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
/ج