آموزش بازی سازی: اصول پیاده سازی یک مرحله
با این که چندین بار به آزادی کامل شما در پیشبرد فرآیند بازیسازی تاکید کردهایم ولی بدون شک پیروی از روشهای آزموده شده همواره یکی از بهترین گزینههای پیش روی شما خواهد بود. چنین چیزی در مورد فرآیند پیادهسازی مراحل یک بازی هم وجود دارد و گفتنی است که تقریبا همهی استودیوها و توسعهدهندگان بازی، در این زمینه از روش تقریبا یکسانی استفاده میکنند.
نکتهی دیگری که باید قبل از پرداخت به موضوع اصلی مقاله به آن اشاره کنیم، مبحث «چرخهی بهینه بازتولید» مراحل است که به نوعی مبنای روش پیشنهادی این مقاله است و حتی پیروی از آن میتواند در دیگر کارها به شما کمک زیادی بکند. موضوعی که در این مبحث اهمیت دارد، کم کردن هزینههای بازگشت به عقب و تولید دوباره محصول است چرا که در بیشتر موارد تنها عملی که میتواند شما را در رابطه با کیفیت یک مرحله طراحی شده مطمئن کند، آزمایش عملی آن در کنار دیگر اجزای بازی همانند هستههای اصلی گیم پلی است. مثلا در یک بازی تیراندازی همانند Conter Strike یا حتی بازی همانند Playerunknown’s battlegrounds اگرچه شما با یکسری پیشفرضهای اولیه اجزای بازی، موانع و محیطها را طراحی میکنید، اما تا زمانی که آنها را در کنار گیمپلی بازی امتحان نکنید، نمیتوانید از مواردی همچون متعادل بودن نقشه و تاثیراتی که روی پیروزی تیمها دارد مطلع شوید. برای همین گاهی اوقات مجبور میشوید که یک مرحله را پس از آزمایش عملی چندین بار از نو طراحی کنید تا به یک قالب پذیرفته شده برسید. بدون شک چنین چیزی برای تیم توسعهدهنده هزینهبر خواهد بود و باید تا حد ممکن این هزینه را کاهش داد. در کنار این موضوع باید این نکته را هم در نظر بگیرید که زمان همیشه عنصری ارزشمند در فرآیند بازیسازی است و هر فعالیتی باید تا در کمترین زمان ممکن به سرانجام رسیده یا چارچوب اصلی آن مشخص شود تا بتوانید برای ادامهی آن به همین ترتیب تصمیمگیری کنید.
موتور بازیسازی آنریل با استفاده از ویرایشگر قدرتمند خود در زمینهی نمونهسازی عملکردی به مراتب بهتری به نسبت موتور یونیتی دارد
شاید کمی تعجب کنید اما مثلا توجه به همین موارد یکی از نقاط قوت موتور آنریل در مقابل یونیتی است. در این مقاله ما نمیخواهیم مقایسهای بین این دو موتور محبوب داشته باشیم اما با توجه به مبحث پیادهسازی مراحل و رابطهی تنگاتنگ آن با قابلیتهای موتورهای بازیسازی، یک بررسی مختصر موضوعی اجتناب ناپذیر است. یکی از شاخصههایی که بر اساس آن موتور آنریل برتری قابل توجهای بر موتور یونیتی دارد، توانمندیهای ویرایشگر و قدرت نمونهسازی سریع آن است که شما با استفاده از آن و بدون هیچ گونه نرمافزار دیگری میتوانید شمایی اولیه از مرحلهی مورد نظرتان را در کمترین زمان ممکن بسازید که از آن با نام Rapid Prototying نام میبرند. در مقابل اگر تجربهی کار کردن با موتور یونیتی را داشته باشید مشاهده کردهاید که حتی برای ساخت یکسری حجمهای ساده هم مجبور به استفاده از نرمافزارهای جانبی همانند نرمافزارهای مدلسازی هستید. این مسئله اگرچه با ترفندهایی همانند همگامسازی لحظهای بعضی نرمافزارها با یونیتی تا حدودی برطرف شده اما همچنان ضعیف بودن ویراشگر مرحله یونیتی یکی از بزرگترین نقاط ضعف آن تا به امروز بوده است.
نکتهی دیگری که در این بین وجود دارد وجود سیستم Blueprint در موتور آنریل است که موجب میشود کسانی که با برنامهنویسی مشکل دارند به راحتی بتوانند یکسری اعمال اولیه را به راحتی و آن هم بدون نوشتن یک خط کد در مراحل خود پیاده بکنند و این گونه حالتی واقعیتر به ساختهی خود بدهند. موضوعی که در موتور یونیتی صرفا باید با استفاده از کدهای برنامهنویسی انجام پذیرد.
موضوع بعدی در این زمینه نمونههای از پیش آمادهی این موتور است که سرعت بالایی به شما در ارزیابی مراحل ساخته شده میدهند. مثلا اگر شما در حال ساخت یک بازی از دید اول شخص هستید به راحتی میتوانید از بخش پروژههای آمادهی موتور آنریل، پروژهی شوتر اول شخص را انتخاب کرده و مرحله خود را بر اساس آن بسازید. این گونه پس از اجرای مرحله خود میتوانید از دید یک کاراکتر اول شخص به گشتوگذار در محیط بپردازید و نیازی نیست که اصلا وقتی را برای پیادهسازی نمای اول شخص به همراه فیزیک اولیه کاراکتر درون بازی خود صرف کنید. برای همین در یک نگاه کلی و در زمینهی پیادهسازی و امتحان ایدههای اولیه یا حتی نهایی، موتور آنریل سرعت و سهولت به مراتب بیشتری را به نسبت موتور یونیتی در اختیار شما میگذارد و به هیچ وجه نمیتوان از چنین مواردی چشم پوشی کرد.
پس از گذر از مقدمههای گفته شده به مراحل پیشنهاد شده برای پیادهسازی یک مرحله میرسیم که بخش اصلی مقالهی ما را تشکیل میدهد.
گام اول: نمونهی اولیه (Prototype)
هدف از این گام ساخت یک نسخهای اولیه از طرح کلی ما در سادهترین و سریعترین زمان ممکن است. در این مرحله صرفا با استفاده از یکسری اشکال اولیه و با رعایت یک نسبت قابل قبول سعی میکنیم شکل کلی مرحله را پیادهسازی کنیم. مثلا اگر به عکس زیر نگاه کنید میبینید که چگونه با استفاده از یکسری حجمهای ساده، شکل کلی مرحله آماده شده است.
در این گام نباید اصلا به مباحث بافت و متریال دهی یا حتی جایگذاری مدلهای دقیق بپردازید و صرفا تمرکز شما ایجاد یک شمای کلی از آن چیزی است که قبلا طراحی کردهاید. در مبحث نورپردازی هم صرفا توجه به نیازهای اولیه کافی است و نیازی نیست که هیچ نوری دقیقا در جای خود و به شدت و رنگ خودش باشد. این که محیطی به اندازی کافی روشن باشد برای این بخش کفایت میکند. بد نیست بدانید که عکسی که در بالا مشاهده کردهاید کاملا در محیط آنریل آماده شده و باید بیان کنیم که پیادهسازی چنین چیزی در این موتور به راحتی صورت میگیرد چرا که حتی حجمهای اولیهای همانند پلهها نیز در این موتور برای نمونهسازی وجود دارند که کاربر میتواند به دلخواه خودش تغییراتی را نیز در آنها ایجاد کند.
یک طراح مرحله صرفا یک طراح نقشه نیست و به نوعی باید چالشهای درون یک مرحله را هم طراحی کند
البته گاهی اوقات یک مرحله همانند یک نقشهی بازی کانتر یا PUBG نیست و باید در یک شکل حداقلی به بعضی از تعاملهای ما واکنش نشان دهد. مثلا پس از انجام یک اقدامات اولیه، مسیر برای پیشروی درون بازی باز میشود که به شکلی خیلی ساده و مثلا کنار رفتن چندین مکعب درون بازی نشان داده شده است. پیادهسازی چنین چیزهایی درون بازی و آن هم به شکلی ساده میتواند بازخورد شما از مرحله مورد نظر را بیش از پیش کامل کند. در نظر داشته باشید که یک طراح مرحله صرفا یک طراح نقشه نیست و به نوعی باید چالشهای درون یک مرحله را هم طراحی کند. بنابراین بد نیست به خصوص در نگاه اول بتواند نمایی از آن چه که در ذهن دارد نیز به تصویر بکشد تا بتواند با دیگر اعضای تیم برای پیادهسازی ایدههایشان ارتباط بهتری برقرار کند.
دقت کنید که گام اول جدای از فراهم کردن امکان آزمایش سریع گیمپلی بازی و همچنین کیفیت طراحی مرحله، میتواند به شما در موارد زیر هم کمک کند:
- تعیین دقیق اجزای مورد نیاز برای طراحی و مدلسازی
- امکان بررسی نسبتهای درنظر گرفته شده برای اجزای محیط
باید توجه کنید که مجوز شما برای ادامهی فرآیند تکمیل یک مرحله باید گرفتن نمره قبولی آن مرحله پس از انجام گام اول باشد. چرا که مواردی همچون مدلهای دقیقتر به همراه متریالها و بافتهایی که جزییات گرافیکی را به محیط ما اضافه میکنند عملا یا تاثیری بر گیمپلی بازی ما یا حتی داستان آن ندارند یا مثلا اگر هم تداخلی هم داشته باشند که بعید است، به راحتی میتوانیم تغییرات مد نظرمان را در آنها اعمال کنیم بدون آن که تغییری در شکل محیط یا مسیرهای پیشروی بازیکنان بهوجود بیاید. برای همین همان نمونهی ساده و بدون جزییات با دقت بالایی میتواند کیفیت طراحی ما را نشان بدهد و منبعی برای رد یا قبول آن باشد.
گام دوم: قالبدهی
در این گام موضوع بسیار سادهتر از گام قبلی است و باید تمامی اشکال اولیه خودمان را با مدلها و طرحهای گرافیکی آماده شده جایگزین کنیم. دقت کنید که اگر شما بدون تایید مرحلهی قبلی اقدام به تولید مدلها و طراحهای گرافیکی خود کنید ممکن است با رد شدن طرح در هر جایی از فرآیند توسعه بازی مجبور شوید که بخشی زیادی از تولیدات خودتان را دور بریزید که موضوع ناخوشایندی است.
البته بد نیست بدانید که همواره در طول فرآیند بازیسازی شرایطی پیش میآید که شما مجبور به کنار گذاشتن یکسری طرحها و تولیدهای اولیه خود میشوید که تنها فایدهی آنان این است که پس از انتشار بازی بتوانید با استفاده از آنها کتابهنری بازی را غنیتر کنید یا همانند بعضی از اخباری که شنیدهاید با استفاده از انتشار آنها در میان رسانهها سعی کنید ضمن ایجاد یک محرک رسانهای برای بازی خود، ایدههای دیگری را هم که برای بازی داشتهاید و به آن راه پیدا نکرده است را به گوش مخاطبان و به خصوص علاقمندان بازی رسانده و از آنان بازخورد بگیرید. مثلا نمونهی اخیر چنین چیزی در دنیای سینما را میتوانیم در خبر تصویر مفهومی استفاده نشده فیلم Justice Leagueمشاهده کنیم که بحثهای جدیدی را پیرامون این فیلم بهوجود آورد و خط خبری این فیلم را تقویت کرد.
تنها نکاتی که در این گام باید به آن توجه کنید این است که همچنان نورپردازی مرحلهی ما در همان مقدار اولیه باقیمانده است و هیچ تلاشی هم برای پیادهسازی افکتهای محیطی بازی صورت نگرفته است. صرفا در این مرحله باید بر جایگزینی مدلها و طرحهای گرافیکی تمرکز کنید.
گام سوم: نورپردازی
اگرچه بسیاری از افراد قدرت گرافیکی یک بازی را بیشتر در مدلهای پرجزییات یک بازی جستوجو میکنند اما به عنوان یک توسعهدهنده شما نباید در دام چنین موضوع سطحی گیر کنید. بیاغراق نیست که بگوییم یک نورپردازی نامناسب میتواند تمامی زحمات تیم گرافیکی بازی را از بین ببرد و البته چنین چیزی در حالت برعکس هم صادق است. نورپردازی موضوع دقیقی است و در این مرحله شما باید بخش زیادی از وقت خود را به جایگذاری دقیق منابع نوری خود اختصاص دهید.
البته در این گام میتوانید افکتهای پسپردازشی و همچنین سیستمهای ذرات مورد نیاز خود را هم به مرحله اضافه کنید تا بتوانید یک برآیند کلی از قیافهای اصلی مرحلهی خود به دست آورید. البته گاهی پیش میآید که پس از نورپردازی اول به این نتیجه میرسید که باید ظاهر بخشی از مرحله را تغییر دهید که این نیاز به تغییر مواردی همچون متریالهای یک قسمت دارد. این موضوع به خصوص در مباحث ایجاد انعکاس نوری از روی مدلها رایج است و تا هنگامی که نورپردازی مرحله را تکمیل نکنید نمیتوانید در رابطه با آنها تصمیم نهایی را بگیرید.
گام چهارم: پرداخت نهایی
در این مرحله هیچ اقدام مشخصی نداریم و تنها سعی میکنیم جزییات نهایی را به مرحله اضافه کرده یا اصلاحاتی را در جهت هر چه بهتر شدن آن اعمال کنیم. مثلا افکتهای لنزفلیر را به نورهایمان اضافه کرده یا مکان و جزییات یک مدل را کمی تغییر دهیم.
نکات تکمیلی
اما در پایان توجه به چند نکته در این بین بسیار اهمیت دارد. اولین نکته این است که اگر چه در بازیهای بزرگ چنین کارهایی (همانند پیادهسازی یک مرحله) معمولا هر کدام توسط چندین تیم جداگانه (نه فرد) صورت میگیرد اما در یک تیم کوچک چند نفره معمولا تمامی این کارها برعهدهی یک نفر است و برای همین در این بین ممکن است مواردی همچون بهینه بودن مرحلهی طراحی شده از قلم بیفتد. دقت کنید که هر کسی به غیر از شما هم مایل است که بخشها و جزییات فراوانی را به بازی خود اضافه کند اما مهمتر از این موارد در درجهی اول عملکرد فنی بازی شماست که باید در اولویت باشد. برای همین سعی نکنید از همان اول، مرحلهی خود را با جزییات هر چه تمامتر بسازید و ابتدا از موارد ساده شروع کرده و به مرور جزییات را به آن اضافه کنید. مثلا اگر عکسهای گام سوم و چهارم را مقایسه کنید میبینید که تغییرات جزیی در محیط داده شده و مثلا یک مدل به دیوار انتهایی، افکت دود به آتشها و یکسری جزییات به پایهی مجسمه اضافه شده است.
بهینهسازی ترفندهای مخصوص خودش را دارد اما با یکسری آزمایش میتوانید از همان ابتدا یک تخمین تقریبی از محدودیتهای طراحی خود به دست آورید
فرض کنید بازی شما در گام سوم و از لحاظ عملکرد فنی در این صحنه در مرز عملکرد مطلوب قرار داشت. در چنین حالتی افزودن مدلهای سهبعدی جدید که هر کدام جدای از تعداد پالیگانهای خود، محاسبات سنگین نوری را هم تحت تاثیر قرار میدهد اقدام نامطلوبی بود و برای همین شما باید تصمیم خود را عوض کرده و مثلا صرفا به یک طرح دوبعدی روی دیوار عقبی اکتفا میکردید و جزییات جدیدی را هم به پایه مجسمه اضافه نکرده و افکت دود را هم حذف میکردید.
دقت کنید که اگر چه مسئلهی بهینهسازی ترفندهای مخصوص خودش را دارد اما با یکسری آزمایش و مشاهدهی تاثیر آنها روی عملکرد بازی میتوانید از همان ابتدا یک تخمین تقریبی از محدودیتهای طراحی خود به دست آورید که کسب مهارت در این زمینه میتواند مزیت بزرگی برای شما به به عنوان یک طراح به حساب بیاید، چرا که فرآیند بهینهسازی بازی به خاطر طراحی بهینهی شما به شدت کم هزینه خواهد شد.
نکتهی بعدی این است که اگرچه بهینهسازی مسئلهی بسیار مهمی است ولی جایگاه آن هر کجا که باشد در گام اول پیادهسازی یک مرحله نیست و نباید سعی کنید ساختهی خودتان در این گام را از این جهت مورد ارزیابی قرار دهید. چرا که نه تنها هیچ چیزی دائمی نیست و ممکن است با تایید نشدن مرحله همه چیز عوض شود، بلکه سطح جزییات به کار رفته هم به هیچ وجه نزدیک حالت نهایی نیست.
نظرات