شما هم بازی بسازید! | معرفی موتور قدرتمند Unity
هیچگاه فراموش نمیکنم، اولین بازی کامپیوتری که بازی کردم «فیفا ۲۰۰۰» با گزارش عادل فردوسیپور بود. هنوز خوب یادم است که گاهی اوقات از روی عصبانیت و عمدا، آنقدر روی دروازهبان تیم حریف خطا میکردم تا بازی نیمهکاره تمام میشد. از همان موقع این سوال در ذهنم نقش بست که «چگونه این بازیها ساخته میشوند؟». در دنیای کودکی خودم پاسخهایی ساده، گاه با چاشنی تخیل، صرفا برای آرام کردن چند ماههی ذهنم ساخته و پرداخته میکردم. زمان گذشت و کمکم فهمیدم که از چه راهی به پاسخ این سوال برسم. راهی که مرا با صنعت بزرگ بازیسازی و سپس با پدیدهای به نام موتور بازی آشنا کرد.
شاید کم و بیش دربارهی موتورهای بازی شنیده یا خوانده باشید. شاید در حد چند کلمه آن هم موقع خواندن نقد و بررسی بازی مورد علاقهتان؛ اما به شما توصیه میکنم با آنها بیشتر آشنا شوید حتی اگر نمیخواهید یک بازیساز شوید. شاید با خواندن این مطلب دِین خود را تا حدی به موتورهای بازیسازی ادا کرده باشید؛ چراکه آنها بودند که واسطه شدند و خلاقیت ذهن بازیسازها را بهحقیقت بدل کردند و بسیاری از خاطرات زیبای کودکی ما را رقم زدند. بسیاری از خندهها، گریهها، شببیداریها و سوزش چشمهای همهی ما متعلق به آنهاست. با معرفی موتور قدرتمند Unity همراه دنیای بازی باشید.
تاریخچه
تا قبل از دههی ۸۰ میلادی، ساخت بازیهای ویدیویی به چنین و چنانی امروزه نبود. در آن زمان تنها چند شرکت خاص آن هم با هزینههایی گزاف این دست بازیها را تولید میکردند؛ بازییهایی که بعضا با سخت افزار مخصوص خود عرضه میشدند. از اوایل دهه ۸۰ میلادی بود که با سرعت گرفتن روند رو به رشد تکنولوژی کامپیوترها، سرعت رشد و توسعه ساخت بازیهای کامپیوتری نیز افزایش پیدا کرد تا اینکه ابزارهای مستقل و مفیدی جهت ساخت بازیهای ویدیویی دو بعدی معرفی شدند که معروفترین آنها عبارت اند از:
- Pinball Construction set (1983)
- ASCII’s War Game Construction set (1983)
- Thunder Force Construction set (1984)
- Adventure Construction set (1984)
- Garry Kitchen’s Game Maker (1985)
- War Game Construction set (1986)
- Shoot’Em_up Construction set (1987)
- Arcade Game Construction kit (1988)
- ASCII’s RPG Maker Engines (1988)
از اواسط دههی ۹۰ میلادی موتورهای بازی که امروزه نسل جدیدترشان را میبینیم، به منظور ساخت بازیهای ویدیویی سه بعدی بهوجود آمدند که میتوان به «موتورهای اکشن اول شخص» (First Person Shooter engine) به عنوان اولینهای این عرصه اشاره کرد. از شناخته شدهترین بازیهای آن دوران نیز میتوان به «دووم» (Doom) و «دووم ۲» (Doom II) اشاره کرد که هر دو توسط موتور «آیدی تک ۱» (idTech 1) ساخته شدند. موتورهای «آنریل ۱»، «دارک استار»، «آیدی تک ۲»، «ماراتن ۲»، «کوآک»، «بیلد» و در نهایت «گولد سورس» (Gold Source)، خالق بخش عظیمی از خاطرات بازی کردن ما یعنی «ضد حمله» (Counter Strike)، همگی از بهترینهای حوزه خود در بین سالهای ۱۹۹۰ تا ۲۰۰۰ میلادی بودند.
آیدی تک، لیت تک و آنریل نسخههای جدیدتر خود را در سالهای بعد عرضه کردند. در کنار این غولهای پردازش گرافیکی، موتورهای جدیدی نیز مانند IW، که هسته مرکزی «ندای وظیفه Call of Duty) «۴) بود، به دنیای بازیسازی معرفی شدند. امروزه نیز دائما خبرهای مختلفی از شاهکارهای جدید «یونیتی» (Unity) و «فراست بایت» (Frostbite) مانند «میدان جنگ ۱» (Battlefield1) را میشنویم.
تا اینجا با هم تا حدودی با سرگذشت موتورهای بازیسازی آشنا شدیم. حال این سوال پیش میآید که اصلا چرا به موتورهای بازی قلب و هسته مرکزی بازی میگویند؟ پاسخ این سوال واضح است! در واقع سازندگان بازیها، با استفاده از یکی از همین موتورها، بازی خود را خلق میکنند. اما چگونه؟ برای پاسخ به این سوال از یک مثال خیلی ساده و قابل فهم استفاده میکنیم: قطعا همهی شما حداقل یک بار بازیهای شهرسازی یا از این قبیل بازیها را امتحان کردهاید، حال فرض کنید که آن بازی موتور بازیسازی شماست و شهری که درحال ساخت و توسعهی آن هستید بازیتان است؛ با این تفاوت که ساختن بازی آنقدرها هم ساده نیست. برای بررسی بیشتر چیستی و نحوه عملکرد موتورهای بازی، به بررسی یکی از بهترینهای آنها میپردازیم.
معرفی و بررسی موتور بازی Unity | آقای خاص!
موتور یونیتی امروزه یکی از معروفترین و رایجترین موتورهای بازیسازی در این صنعت است که اولین نسخه آن یعنی Unity 1.0.0 در سال ۲۰۰۵ میلادی توسط «یوآخین آنته»، «دیوید هلگاسون» و «نیکولاس فرانسیس» (David Helgason ،Joachin Ante و Nicholas Francis) به همگان معرفی شد.
برخی ویژگیهای این موتور قدرتمند عبارتند از: قابلیت ساخت بازیهای دو بعدی و سه بعدی، قابلیت ساخت بازیها در ژانر و مکانیزمهای متفاوت، قابلیت نورپردازی و رندرینگ فوقالعاده، دارای موتور پردازش و ویرایش صدا، دارای تعداد زیادی از ابزارهای مفید (asset) رایگان و پیش ساخته، مستندسازی کامل و حرفهای، پشتیبانی از ساخت بازی تحت پلتفرمهای ویندوز، مک، اندروید، لینوکس و وب و از همه مهمتر دارای رابط کاربری ساده و روان.
یونیتی برای پیادهسازی گرافیکی دو بعدی از دو مدل «بیت مپ» (Bitmap) و «وکتور» (Vector) استفاده میکند. مدل پیادهسازی گرافیکی بیت مپ به این صورت است که رنگ هر پیکسل در یک نقشه ذخیره میشود و در نهایت از شکل مورد نظر یک نقشهی پیکسلی رنگی ایجاد میکند. مدل پیادهسازی گرافیکی وکتور نیز به این صورت است که یک شکل گرافیکی را بهصورت مجموعهای از اطلاعات هندسی ذخیره میکند. فرض کنید شما دایرهای با شعاع ۵ و با ضخامت حاشیهی ۱ رسم کردهاید؛ در مدل پیادهسازی وکتور اطلاعات بهصورت عبارت «یک دایره با شعاع ۵ و ضخامت ۱» (a circle with radius 5 and border 1) ذخیره میشود.
فرمت فایلهای قابل استفاده در مدل بیت مپ عبارتند از: psd ، .tiff ، .png ، .jpg ، .jpeg. و gif. .همچنین فرمت فایلهای قابل استفاده در مدل وکتور عبارتند از: ai ، .eps ، .pdf ، .fla ، .swf و svg.؛ به منظور پردازش سه بعدی نیز میتوان از فرمتهای mb ، .ma ، .max ، .blend ، .fbx ، و obj. در موتور یونیتی استفاده کرد.
برای کار با فایلهای صوتی شما میتوانید از دو روش «صدای دیجیتال» (Digitized Audio) و «همگذاری» (Synthesized) استفاده کنید که در مقالهی بعدی مفصلا درباره آنها حرف خواهیم زد. برای فرمت فایلهای قابل استفاده در موتور، مختصر میتوان به sesx .aup ، .wav ، .aif ، .mp3 و agg. اشاره کرد.
تمام مواردی که تا اینجا مطرح شد به شما این امکان را میدهند که عکس یا مدلهای شبیهسازی سه بعدی یا دو بعدی خود را به عنوان محیط یا اجسام موجود در بازی به موتور اضافه کنید و با توجه به نیاز خود از آنها استفاده نمایید. همچنین فایلهای صوتی مورد نیاز خود را نیز میتوانید همانند عکسها و مدلهای گرافیکی به راحتی از طریق قسمت ابزارهای مفید به موتور اضافه کنید. مثلا فایل صدای ترمز کردن ماشین را به موتور اضافه کرده و سپس به آن میگویید زمانی که کاربر در بازی عمل ترمز کردن را انجام داد (فرض کنید با فشاردن کلید s روی کیبورد) این فایل صدا را پخش کند؛ البته لازمهی چنین تعاملی با موتور، دانش برنامه نویسی است.
بخش کار با صدا و طراحی گرافیکی بازی یک طرف، بخش برنامهنویسی بازی یک طرف. تمامی این روابط در یک بازی در واقع همان اجرای توابع و قطعه کدهای از پیشنوشته شده توسط برنامه نویس است. به طور مثال هروقت کاربر با موس چپ کلیک کرد، اسکریپت شلیک کردن فراخوانی شود. برنامهنویسی در یونیتی به دو زبان «سی شارپ» (C#) و «جاوا اسکریپت» (JavaScript) انجام میپذیرد که سی شارپ در مقابل جاوا اسکریپت به دلیل قدرت و توانایی بالاتر و امکانات بیشتر، از اقبال بیشتری برخوردار است.
یونیتی با ابزارهای قدرتمند دیگری مانند «ویژوال استودیو» (Visual Studio) نیز هماهنگ است که امکان برنامهنویسی بازی برای شما را بسیار راحتتر میکند. کافی است از طریق منوی ابزارهای مفید در نوار بالای موتور یک فایل جدید C# Script باز کنید. سپس میتوانید هر آنچه که بازی شما برای تبدیل شدن به یک بازی کامل نیاز دارد را کد نویسی کنید. البته لازم به تذکر است که بسیاری از ابزارها و امکاناتی که شما برای ساختن یک بازی نیاز دارید از قبل مهیا شده است. در سایت یونیتی نیز یک فروشگاه کامل از لوازم و طراحیها تعبیه شده است. بهطور مثال چند مدل درخت را میتوانید با پرداخت هزینهای جزیی تهیه کنید و از آن در طراحی محیط بازی خود استفاده نمایید. رنگآمیزی محیط و اشیاء درون بازی نیز کار بسیار سادهای است. تنها با ایجاد ماده (Material) از طریق ابزار مفید، بدون حتی یک خط کد زدن تمام محیط خود را آنگونه که میخواهید رنگآمیزی کنید.
روشن است که بازیها هرچقدر حرفهایتر و پیچیدهتر میشوند؛ به طراحی گرافیکی و برنامهنویسی پیچیدهتری نیازمند هستند. در این مقاله تلاش کردیم شما را کمی بیشتر با این ناشناختههای همهکاره آشنا کنیم. نحوه عملکرد آنها را از طریق بررسی یکی از بهترینهای این عرصه یعنی موتور یونیتی تا حدودی به شما شناساندیم. در هرحال هر مخاطبی باید تا حدودی در مورد چگونگی ساخت و توسعه بازیها اطلاعات داشته باشد تا بازیهایی را که بازی میکند درک کند و فقط یک بازیکن نباشد؛ چه بسا یک منتقد خوب و یا حتی یک بازیساز خوب شود.
از آنجایی که بهخوبی میدانیم ذهن شما هماکنون سرشار از سوالات بیجواب است نوید این را میدهیم که در قسمت بعدی این مقاله به اکثر آنها پاسخ دهیم. در قسمت بعدی مفصل در مورد بازیسازی با موتور یونیتی بحث خواهیم کرد و ساختن یک بازی نسبتا جالب و ساده را از صفر تا صد برای شما توضیح خواهیم داد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.
ممنون واسه مقاله
من چند سالی هست با این موتور اشنا شدم واقعا موتور عالی و قدرتمندیه
حتما نمیخواد برنماه نویس حرفه ایی باشی متوسط رو به پایین هم از پسش بر میایی
پروژه دانشگامم با همین بازی اول شخص مثه فارکرای ساختم :۲۴: :۲۴: :۲۴: :۲۴: :۲۴: :۲۴: :۲۴:
مقاله خوبی بود.
جسارتا “آیدی تک” غلط هستش “اید تِک” عبارت صحیح می باشد.
سلام دوست عزیز، ممنون بابت اهمیت و نظری که دادید اما تا جایی که بنده مطالعه کردم iD Tech یا همان آیدی تک صحیح است.
مقاله خوبی بود :۱۵:
جالب بود . حتما این بخش رو ادامه بدید