آرمان شهر جادویی | نگاهی بر فرایند ساخت شهر Beauclair بازی ویچر 3
اینها توصیفهایی از قلب تپندهی بسته الحاقی Blood and Wine بازی Witcher 3، مرکز سرزمین توسان(Toussaint)، شهر بوکلر و حالوهوای آن است. سرزمینی که برخلاف دنیای خشن و تقریبا تاریک دنیای ویچر، تداعی کننده جغرافیایی بود که احتمالا هر کسی برای گذراندن تعطیلات خود بدنبال آن میگردد. در این مقاله به بررسی چالشهایی خواهیم پرداخت که تیم توسعهدهنده بازی ویچر برای دستیابی به چنین نتیجهای با آنها روبهرو بودند. در قدم بیایید نگاهی به سرزمین توسان و شهر بوکلر در تریلر بسته الحاقی Blood and Wine بیاندازیم.
همانند بیشتر موارد، اولین ایدهها برای این شهر نیز از منبع اولیه دنیای بازی یا همان کتابهای ویچر گرفته شده بود اما بعدها با همفکریها و البته الهاماتی که از روی کشور ایتالیا انجام گرفت، ایده اولیه به مرور پختهتر شد. کشور ایتالیا به خاطر مشروبفروشیهای متعدد و روزهای بهشدت آفتابی خود یکی از مهمترین منابع الهام برای تیم توسعهدهنده بود. بااینحال آنها مجبور بودند که چنین اتمسفری را به هر شکل ممکن با دنیای تاریک و خشن ویچرها پیوند بزنند.
اعضای تیم نهتنها خودشان را در مقابل یک معماری رنگارنگ با حالوهوای جدید مشاهده میکردند بلکه در نظر داشتند که به نسبت کارهای قبلی، درون این شهر محتوای بیشتری را قرار بدهند، مردم بیشتری را درون خیابانها بگذارند و در یک نگاه کلی فضای زندهتری را به نسبت شهر نُویگراد(Novigrad) در چشمان مخاطب به تصویر بکشند.
بااینحال محتوای بیشتر در یک مقیاس مشخص به معنای این بود که باید بدنبال راه و روشهای خلاقانهتر برای مدیریت اهداف فنی بازی باشند و بیشتر از گذشته روی بهینهسازی آن کار کنند.
طراحی شهر
مهمترین اصلی که برای طراحی شهر بوکلر مورد توجه قرار گرفت این بود که مسیریابی باید تا حد ممکن برای بازیکن ساده باشد و او بتواند در هر نقطه و شرایطی مکانش را تشخیص داده و عملیات مسیریابی را بهراحتی انجام بدهد. اولین مورد در این زمینه در رابطه با مسیریابی به سمت خود شهر بود که برای آن کوه گورگن(Gorgon) بهعنوان بلندترین کوه ناحیه، نشانهای برای این مسئله شد و شهر در دامنه آن قرار گرفت.
در مقیاس پایینتر چنین نقشی را درون شهر، کاخ بزرگ اِلون(Elven) ایفا میکرد که بازیکن با مشاهده آن میتوانست بخش شمالی شهر و راستای آن را از نقاط مختلف تشخیص بدهد. با مشخصکردن این دو نقطه بهعنوان مراکز پایهای مسیریابی و همچنین اینکه شهر روی یک دامنه شیبدار بنا شده است، اولین طرح برای آن آماده شد.
نخستین طرحبندی شهر شامل چهار ناحیه مجزا میشد و بهگفته خود توسعهدهندهها همین مجزا بودن بخشهای شهر مسئله واگذاری طراحی آن به افراد و تیمهای متفاوت را سادهتر کرده بود. همچنین شما میتوانید در پایین نمای خیابانها، میدانها و همچنین دروازههای تعبیه شده در طرح اولیه را مشاهده کنید. بخشهای سبزرنگ اهمیت بالایی برای جنبههای داستانی بازی و البته دریافت مأموریتهای بازی داشتند. شماره یک مربوطبه میدان بازار، شماره دو مربوطبه معبد گورستان، شمارههای سه و و پنچ بهنوعی پارکهای شهر، شماره ۴ اصطبلها و شماره ۶ هم کنار دریاچه و یک مکان تفریحی بود.
خب وقت آن رسیده بود که طرح مورد نظر عملیاتی شود و شما در ویدیوی زیر میتوانید آن را مشاهده کنید. همانگونه که مشخص است هنوز یکسری از ساختمانها در شکل پایهای خود به کار گرفته شده بودند که برای این مرحله اهمیت چندانی نداشت چرا که هدف اول بررسی مسئله مسیریابی و درنظرگرفتن این نکته بود که وضعیت دو نشانهایی که برای مسیریابی بازیکن درنظر گرفته بودند، چگونه خواهد بود. در هنگام تماشای نمونهی زیر به وضعیت کوه گورگن و همچنین کاخ الون دقت کنید.
نکتهی دیگری که در طراحی شهر به توسعهدهندهها کمک میکرد این بود که شهر روی یک شیب قرار داشت و بازیکن بهراحتی میتوانست متوجه این نکته بشود که هر چقدر به سمت بالاتر حرکت میکند، وارد ناحیههای ثروتمندتر شهر میشود و صد البته معماری ساختمانها هم متاثر از این مسئله است. بندرگاه در پایینترین نقطه و کاخ الون با معماری ویژه خودش هم در بالاترین نقطه شهر قرار داشت.
با اینکه نمونه اولیه رضایت نسبی تیم را به همراه داشت ولی وجود سه نکته ذهن آنها را به خود مشغول کرده بود. اولین نکته این بود که درون شهر مکانهایی قرار داشت که بازیکن نمیتوانست در آنها موقعیت خودش را تشخیص بدهد و این مسئله به خاطر این بود که هیچیک از دو شاخص درنظرگرفتهشده برای مسیریابی در آن موقعیتها قابل مشاهده نبودند. یادمان نرود که اصل و اساس طراحی مکانها و موقعیتها در تمامی بازیها روی این مسئله بنا شده است که بازیکن کمترین استفاده ممکن از نقشه را برای مسیریابی داشته باشد.
نکته جانبی که در پیادهسازی اولیه هم کرد پیدا کرده بود، خیابانها طولانی و البته نمایدیدهای وسیع بود که منجر به مصرف بالای منابع سختافزاری میشد و تیم درکنار اینکه نگران وضعیت بهینهسازی آنها بود، بدنبال راهی بود که بتواند بعضی از آنها را نیز حفظ کند. نه صرفا برای زیبایی که بالاخره وقتی قرار بر مشاهده یکسری شاخص ثابت آن هم از هر نقطهای از درون شهر باشد، ما به اجبار با چنین پدیدهای روبهرو خواهیم شد.
در زیر میتوانید یکی از این نمونهها را مشاهده کنید که چگونه در میانه راه نیز به میدانبازار برخورد میکند و تراکم جمعیت و جزییات محیطی در این ناحیه را نیز باید از لحاظ بهینهسازی به وسعت بالای دید این خیابان اضافه کرد.
درنهایت وجود چنین بخشهایی تیم را به این نتیجه رساند که ریسک قبولکردن چنین ترکیبهایی فراتر از حد معمول است و برای همین تصمیم به ایجاد تغییراتی در طراحی اولیه شهر شد.
در این راستا درکنار کاخ شهر، دو نشانه دیگر نیز برای مسیریابی درونشهری درنظر گرفته شد. اولین مورد سالن شهر بود. با اینکه از همان ابتدا چنین چیزی برای شهر درنظر گرفته شده بود، اما هنگامی که بهعنوان یک نشانه مسیریابی برگزیده شد، آن را بلندتر و بزرگتر از حالت اولیه خودش طراحی کردند. دومین مورد هم معبدی در بخش جنوبی شهر بود.
از خردهکاریهای دیگری که انجام گرفت میتوان به خیابانهایی اشاره کرد که به سمت کاخ الون خم شدند و مسیرهای مستقیمی را به این بخش شهر ایجاد کردند. این مسئله برای تیم بسیار مهم بود که بازیکن بهراحتی بتواند به این بخش شهر دسترسی داشته باشد.
کار روی اولین نمونه از شهر، وضعیت منابع سختافزاری و ایدههایی که میتوان درون شهر پیادهسازی کرد را برای تیم بهتر مشخص کرد و به همین خاطر فرایند ایجاد تغییرات درونشهری بیشازپیش سرعت گرفت. بهعنوان نمونه در ویدیو زیر میتوانید تفاوت یک نقطه از شهر را قبل و بعد از تغییرات مشاهده کنید.
چنین تغییراتی به فراوان درون شهر انجام گرفت و در بیشتر موارد سعی میشد با اضافهکردن موانعی جلوی دید بازیکن، نقطه تمرکز او را به بخشهایی که مدنظر تیم بود هدایت کنند و در دیگر بخشها از جزییات اشیا و ساختمانها بهخصوص در فاصلهها کم کنند و به بهینهسازی مورد نظر نزدیکتر شوند.
بهعنوان یک مثال بد نیست بدانید که گاهی یک مانع نصفهنیمه که شاید در نگاه اول تأثیری در پنهان کردن ساختمانهای پشت سرش ندارد، بدین جهت مورد استفاده قرار گرفته است که خاموش و روشن شدن یکسری لامپها را از دید بازیکن پنهان نگهدارد!
اما بیایید این کارها را در رابطه با میدان اصلی شهر بهعنوان مهمترین مکان بازی برای تیم توسعه، مورد بررسی قرار دهیم. در جریان داستان بازی در این بخش ما شاهد جشنواره نوشیدنی هستیم. همین مسئله بهتنهایی بهمعنی دکوراسیون سنگینی از میزها و جزییات و آدمها است و البته نباید از ۷ ساختمان و البته سالن بزرگی که در این میدان است و هر کدام نیز دارای فضای داخلی هستند هم چشمپوشی کنیم.
سالنی که با رنگ سبز نشانشده در اصل بهعنوان یک مسدود کننده دید ایجاد شد تا موتور بازی بتواند زمان کافی برای بارگذاری اقلام مورد نیاز و البته پرتعداد میدان اصلی درون حافظههای سختافزاری را در اختیار داشته باشد. در ویدیو زیر میتوانید نحوهی کارکرد این بخش را مشاهده کنید. در تصویر سمت راست بخش قرمز رنگ، قسمتی است که وظیفه مسدودکردن دید بازیکن را برعهده دارد و مسیرهای ترسیم شده نحوهی عبور بازیکن را به تصویر میکشد.
این روش به فراوان و شکلهای مختلف درون طراحی شهر مورد استفاده قرار گرفت و البته وضعیت ارتفاعی شهر و بالا و پایینهای بسیاری که درون آن هم وجود داشت، به عملیاتی کردن چنین روشی بسیار کمک کرد. با اینکه ایجاد ساختمانها و نماها برای مسدودکردن دید بازیکن، فرصت اکتشاف بیشتر را هم فراهم میکرد ولی گاهی استفاده از یک پلکان یا تغییر ارتفاع محسوس در زمین شهر یا حتی خمکردن یه خیابان، تیم توسعهدهنده را به هدف موردنظرش یا همان کمکردن دید بازیکن میرساند. در ویدیو زیر میتوانید نمونههای مختلف چنین روشی را مشاهده کنید.
البته در رابطه با تمامی این اقدامات، بهطور پیوسته نکات و بازخوردهای زیادی از سایر تیمهای فعال روی بازی از جمله تیم داستان و تیم مأموریتها بهدست تیمطراحی شهر میرسید و متناسب با آنها اصلاحاتی درون طراحی شهر ایجاد میشد.
این بازخوردها حتی یکسری نکات ابتدایی که در ابتدا مشاهده نشده بود را هم مشخص کرد که در ویدیو زیر میتوانید تعدادی از آنها را مشاهده کنید. مسیرهای سبزرنگ، مسیرهای جدیدی هستند که بعد از دریافت بازخوردها، درون شهر ایجاد شدند تا به جذابیت اکتشاف و گشتوگذار در محیط شهر بیافزایند. مسیرهای قبلی در بیشتر موارد بیدلیل طولانی و البته خستهکننده بودند.
در تصویر زیر میتوانید طرح اولیه را با وضعیت فعلی شهر مقایسه کنید که چگونه با حفظ همان نقاط کلیدی در مکانهای خود، الان بازیکن با شهری روبهرو است که گزینههای بیشتری را برای اکتشاف و ماجراجویی در اختیار او میگذارد و در یک کلام جذابتر است.
ساختن شهر
با گذشت از مرحله طراحی، وقت آن رسیده بود که شهر را با ساختمانها و اقلام هنری مورد نظر تکمیل کنند. همانگونه که در ابتدا اشاره شده بود، شهر شامل ۴ بخش کامل مجزا بود. کاخ الون، بخش ثروتمند بالاشهر، پایینشهر فقیر و بندرگاه که در تصویر زیر با رنگهای مختلف مشخص شدهاند.
در نگاه اول پرکردن یک شهر آماده با اقلام هنری کار چندان سختی جلوه نمیکند اما وقتی صحبت از محدودیتهای فنی به میان میآید، تازه متوجه این میشوید که وارد بخش سخت ماجرا شدهاید. بدون پرداختن به جزییات بد نیست بدانید که تیم طراحی هنری محیط بازی در قدم اول محدود به این شده بود که حداکثر به اندازه ۷۰۰ مگابایت از حافظه کارت گرافیک را برای نیازهای خود استفاده کند و البته در این شرایط هم نباید جزییات اقلامی که آماده میکند روی هم از ۵۰۰ هزار مثلث فراتر برود که در رابطه با آن توضیح خواهیم داد. قبل از توضیح بیشتر این بخش بهتر است بدانید که این محدودیتها صرفا برای میدان دید فعلی بازیکن نه برای کل بازی، درنظر گرفتهشدهاند. تیمهای دیگر نیز محدودیتهای خودشان را دارند و در انتهای جمع این موارد است که حداقل سیستم مورد نیاز یا سیستم پیشنهادی اجرای بازی را مشخص میکند.
هنگامی که یک خانه ساده ۲۵ درصد بودجه سختافزاری شما را مصرف میکند، راهحل شما برای ساختن یک شهر چیست؟
بهدلیل اهمیت این محدودیتها به زبان ساده کمی در رابطه با آن توضیح میدهیم. کنسول، پیسی و هر چیزی که روی آن بازی میکنید، برای اینکه تصویر یک مدل سهبعدی را به شما نشان بدهد، آن را به بخشهای خیلی کوچکتری تقسیم میکند. مثلا سطح یک مکعب ساده را درنهایت به مجموعهای از مثلا ۱۸ مثلث تجزیه میکند. پس از این سختافزار سیستم شما براساس مختصات نقاط سهگانه هر یک از این مثلثها اقدام به ترسیم آن روی صفحه کرده و با پرکردن فضای میان این سهنقطه، رنگ مناسب برای هر پیکسل روی صفحه شما را تعیین میکند.
هر چقدر تعداد این مثلثها در یک مدل بیشتر شود، مجموعه سختافزاری باید کار بیشتری را برای ترسیم تصویر نهایی آن مدل انجام دهد و هر گاه زمان آماده شدن هر تصویر که به آن فریم هم میگویم بیشتر طول بکشد، درنهایت ما نرخ فریم پایینتری خواهیم داشت.
هر پستی و بلندی که روی یک مدل سهبعدی وجود دارد، بر تعداد این مثلثها اضافه میکند و وضعیت به سمتی میرود که یک خانه ساده با دکوراسیون داخلی و دیوارهایش در بازی ویچر ۳ در قدم اول چیزی در حدود ۲۰۰ هزار مثلث(Triangle) را شامل میشدند و این بدین معنی بود که اگر تدبیری اندیشه نشود، با در نظرگرفتن محدودیتهای اعلام شده ما حداکثر میتوانستیم دو و نیم خانه در شهر بوکلر داشته باشیم چرا که محدویت دید بازیکن همواره فضای خیلی بیشتری را به نسبت این تعداد خانه را پوشش میدهد.
پایهایترین ترفند برای پوشش چنین مسئلهای فرار از ایجاد هرگونه پستی و بلندی در آمادهسازی مدل سهبعدی است ولی نهتنها در سال عرضه بسته الحاقی Blood and Wine که در سال عرضه خود بازی ویچر ۳ هم ما شاهد تصاویری همانند تصویر زیر نبودیم!
اگر تا به حال به یک تصویر سهبعدی نگاه کرده باشید، متوجه این شدهاید که چقدر جالب یک تصویر دوبعدی در نگاه شما سهبعدی جلوه میکند. پایهایترین ترفند برای کاهش مثلثها هم بسیار شبیه به ترفند تصاویر سهبعدی است و در آن مدلسازان سعی میکنند بهجای اینکه همانند یک مجسمهساز هر جزییاتی را روی بدنه بهطور واقعی ایجاد کنند، آن را به شکل زیرکانهای تداعی کنند. ایجاد عمق کاذب نقطه اشتراک تصاویر سهبعدی و ترفندی است که توسط مدلسازان برای گولزدن مخاطب مورد استفاده قرار میگیرد با این تفاوت که در دنیای بازیها همانند تصاویر سهبعدی به یک زاویه مشخص محدود نیستیم.
از این به بعد به جزییاتی همانند کمربند شخصیتها یا جزییات لباسهای آنها یا حتی طرحهای روی یک بشکه آب دقت کنید و خواهید دید که در بیشتر این بخشها هیچ پستی و بلندی وجود ندارد و شما با یک سطح کاملا صاف و نقاشی شده روبهرو هستید ولی عمق در آنها طوری جعل شده است که در نگاه اول فکر میکنید چنین جزییاتی واقعا روی اجسام حک شدهاند.
ایجاد عمق کاذب رایجترین ترفند دنیای بازیسازی برای مدیریت دوگانه جزییات بیشتر، بهینهسازی کمتر است
از محدودیتها و زنگ خطری که به صدا درآوردن گفتیم. در این نقطه تیم سعی کرد با نشانهگذاری شش نقطه اساسی شهری و بررسی میزان بهینهبودن آنها، تصویری کلی از وضعیت فنی بهدست بیاورد. مثلا اگر میدان شهر که جای شلوغ و پرجزییاتی است به وضعیت مناسبی از لحاظ بهینهسازی برسد، مکانها به مراتب سادهتر احتمالا مشکلی آنچنانی نخواهند داشت. بندرگاه، دو بخش پرتراکم یکی در پایین شهر و یکی در بالاشهر، میدان اصلی، معبد شهر و البته ماندراگورا(Mandragora) که در آنجا میتوانستید نگاهی وسیع به سرزمین توسان بیاندازید.
خب نتیجه اولین بررسیها بسیار جالب بود و تقریبا در تمامی بخشها عبور از محدودیتهای تعیین شده قابل مشاهده بود. البته در تصویر زیر اطلاعاتی وجود دارد که در رابطه با آن توضیح داده نشده است ولی بااینحال توجه به نمودار سمت چپ و میزان تعداد مثلثها، وضعیت بهینهسازی را به خوبی نشان میدهد. بخشهای داخل کادر قرمز نشاندهندهی عبور از محدودیتها هستند.
بیایید مثال همان خانهای که قبلا به آن اشاره کردیم را بررسی کنیم. در اولین عکس از آلبوم تصاویر پایین میتوانید این خانه دو طبقه از بخش بالاشهر بوکلر را مشاهده کنید که دارای نمای خارجی و دکوراسیون داخلی است. نمای سمت چپ، طرح هنری، نمای وسط مدل ساده آن و در سمت راست، نمونه آماده آن برای بازی قابل مشاهده است. در تصاویر بعدی جزییات فنی هر بخش از جمله تعداد مثلثهای تشکیلدهنده آنها آورده شده است که صرفا جمعکردن همین اعداد نشان میدهد که همین یک عدد خانه چقدر از تمامی بودجه سختافزاری تعیین شده را مصرف کرده است.
باتوجهبه زمان محدود تیم و وسعت بزرگی که این بسته الحاقی داشت، آنها بهدنبال اختراع دوباره چرخ نبودند و هدفگذاری کردند که صرفا از همان روشهایی که در ساخت بازی ویچر استفاده کردند البته با مقداری بهبود و بهینهسازی بهره ببرند.
در قدم همانند تمامی بازیهای دیگر، از دو روش استریمینگ(Streaming) و سطوح جزییات(LOD-Level of Details) برای مدیریت منابع استفاده شد. در قدم اول با روش استریمینگ صرفا هر آن چیزی که را به آن احتیاج داریم را وارد صحنه میکنیم و برعکس هر آن چیزی را که نیاز نداریم خارج میکنیم. اینگونه نیست که تمامی یک شهر در یک لحظه ظاهر و آماده باشد و صرفا مواردی که قرار است در دید بازیکن قرار بگیرد از قبل آماده میشود.
بهعنوان مثال سالنی که در مرکز شهر برای پوشاندن مکان جشنواره قرار داده شده بود را درنظر بگیرید. در هنگامی که شما به سمت مکان جشنواره در حال حرکت بوده و از میان راهروهای این سالن در حال عبور هستید، در مکان جشنواره، دکورسیون محیط به ترتیب در حال استریم شدن و ظاهر شدن در صحنه هستند و بر عکس با خروج و فاصله گرفتن شما، ناپدید میشوند. چنین چیزی در رابطه با ساختمانها و هر چیزی دیگری هم صادق است و توسعهدهندهها با استفاده از این روش و پیشبینیهایی که از حرکت شما انجام میدهند، صرفا هر آن چیزی را که به آن نیاز است را وارد صحنه بازی میکنند تا کمترین فضای ممکن از حافظههای رم و کارت گرافیک شما اشغال شود. یک شهر بزرگ همانند بوکلر با تمامی جزییات شاید به چند صد گیگابایت حافظه رم و حافظه گرافیکی برای اجرا شدن نیاز داشته باشد و تازه ما صحبتی از قدرتی که پردازنده و کارت گرافیک برای پردازش این حجم از محتوا داشته باشد هم نکردهایم و صرفا صحبت از فضای مورد نیاز است!
سالن میدان اصلی شهر نه با هدف زیبایی بلکه برای کمکردن میزان دید بازیکن به بازی اضافه شده است
روش سطوح جزییات بیشتر در رابطه با موارد مهمی همانند خانهها و اجزایی به کار میرود که از لحاظ مصرف منابع سختافزاری اهمیت دارند. این روش پس از ظاهر شدن چیزی روی آن شروع به کار میکند و بسته به فاصلهای که بازیکن با آن دارد، میزان جزییات آن شی را کم یا زیاد میکند.
مثلا در شهر بوکلر و در حالت پایه اینگونه در نظر گرفته شده بود که برای یک خانه سه وضعیت پراکسی(Proxy) برای فاصله بیشتر از ۵۰ متر، سطح شمار یک جزییات برای فاصله ۲۰ الی ۵۰ متر و سطح شماره صفر(مدل کامل) برای فاصله کمتر از ۲۰ متر آماده شود. پراکسی صرفا شامل ظاهری است که از فاصله کلیات یک حجم را به تصویر میکشد و هر چیزی در آن به شکل حداقلی و تقریبا با حقه پیاده شده است. با نزدیکتر شدن بازیکن به خانه، سطح جزییات شماره یک به وضعیت قبلی اضافه میشود و با وارد شدن بازیکن به نزدیکترین محدوده، سطح صفر با کاملترین جزییات جای موارد قبلی را میگیرد و حتی دکوراسیون داخلی آن خانه هم ظاهر میشود.
اگر به ارقام فنی سه نمونه آماده شده برای یک خانه در تصویر بالا دقت کنید میتوانید میزان تفاوت چشمگیر آنها را مشاهده میکنید. نکته ریزی که در تصویر بالا احتمالا متوجه آن نشدهاید این است که در وضعیت پراکسی ما چیزی بهعنوان دری که بتوان آن را باز و بسته کرد در اختیار نداریم و صرفا یک طرح دوبعدی نقش در را ایفا میکند. در دو وضعیت دیگر جای دری که بتوان آن را باز و بسته کرد خالی گذاشته شده است تا بعدا این جز متحرک را درون بازی به خانهای که ثابت است اضافه کنند.
چنین سطوح جزییاتی برای فضای داخلی ساختمانها هم در دو سطح وجود دارد که در زیر قابل مشاهده است. این مسئله برای این است که گاهی با اینکه شما کاری به یک خانه نداشته و از آن فاصله دارید، ولی یک NPC (شخصیتهای غیرقابل بازی) تصمیم به ورود به آن را میگیرد و در چنین لحظهای قرار نیست بازیکن با یک فضای کاملا خالی مواجه شود و حداقل باید دیوارها حجم داخلی خانه را به او نشان بدهند. در این هنگام سطح جزییات شماره یک دیوارها که بسیار سبک است استفاده میشود و سطح صفر دیوارها معمولا در زمانیکه بازیکن به اندازه کافی نزدیک است مورد استفاده قرار میگیرد.
دکوراسیون و جزییات داخلی خانه هم بهدلیل سبک بودن آنها با استفاده از روش استریمینگ به سرعت ظاهر و ناپدید میشوند و برای همین نیازی به سطوح مختلفی از جزییات ندارند. بااینحال برای اینکه همین عمل ظاهر کردن و ناپدید شدن آنها از دید بازیکن پنهان شود، پنجرههای ساختمانها را با ترفندی طوری طراحی کردند که همیشه جلوهی کاذبی از دکوراسیون داخلی را به بازیکن نشان دهند حتی اگر در آن لحظه هیچ چیزی درون خانه وجود نداشته باشد. در ویدیو زیر میتوانید این تکنیک را مشاهده کنید. در لحظه ضبط این ویدیو هیچ دکوراسیون داخلی یا حتی دیواری درون این ساختمانها وجود ندارد.
با تمامی این کارها همچنان تیم توسعه بهدنبال رسیدن به یک نرخ فریم روان روی سختافزارهای هدف بود و با وجود مناظر وسیع و صحنههای پرجزییات و سنگین درون بازی چنین چیزی میسر نشده بود.
همانند زمان ساخت بازی ویچر ۳، سیستم رندرینگ UMBRA که بخشی از موتور ساخت بازی ویچر است مهمترین نقش را در به تصویر کشیدن مناظر وسیع با جزییات فراوان را برعهده داشت. این سیستم صرفا هر آن چیزی را که میبیند به تصویر میکشد اما در مقابل باید هر چیزی که جلوی آن قرار میگیرد نیز قابلیت تجزیه شدن همانند یک ساختار لگویی را داشته باشد.
مثلا در تصویر زیر اگر صرفا بخش بالایی ساختمان قابل مشاهده باشد، این سیستم صرفا همین بخش را به تصویر میکشد که بسیار سبکتر از تمامی ساختمان است. ولی خب تیم مدلسازی هم مجبور به تولید خانههایی بود که بتوان همانند اجزای یک لگو، بخشهای مختلف آن را از هم جدا کرد.
البته این آمادهسازی لگووار ساختمانها چندان هم برای تیمتوسعه بد نبود و آنها توانستند با استفاده چندباره از یک قطعه ثابت، ساختمانها متنوعی را با قطعات کمتری ایجاد کنند. در دنیای بازیسازی برای مثلا ساختن یک دیوار شما میتوانید به دو روش عمل کنید. در روش غیر بهینه اول میتوانید ۱۰۰۰ عدد آجر آماده را وارد حافظه سختافزاری کرده و با آن دیواری بسازید و به کاربر نشان بدهید. هر آجر وزن و مشخصات و بهنوعی شناسنامه مخصوص خودش را دارد. اگرچه ممکن است درون همه شناسنامهها مشخصات یکسانی نوشته شده باشد اما به خاطر اینکه هر آجر مجزای از دیگر آجرها است برای ترسیم هر یک باید به شناسنامه خود آن آجر مراجعه شده و اطلاعات لازم استخراج شود.
در روش دوم میتوانید یک آجر را وارد حافظه سختافزاری کرده و با استفاده از شناسنامه آن سعی کنید دیگر آجرها را تولید کرده و از آنها استفاده کنید. در روش دوم سیستم تنها با یک شناسنامه برای به تصویرکشیدن تمامی آجرها مواجه است و نیازی به خواندن ۱۰۰۰ شناسنامه برای ۱۰۰۰ آجر ندارد. در چنین وضعیتی اگرچه ما درنهایت همان ۱۰۰۰ آجر را در اختیار داریم، ولی کار کمتری برای به تصویر کشیدن آنها انجام دادهایم. کاملا واضح است که این روش صرفا برای بخشهای کاملا مشابه قابل استفاده است.
اگر به تصاویر پایین نگاه کنید، میتوانید مشاهده کنید که چگونه در عین وفاداری به اصل متنوع بودن، تمامی این ساختمانها از اجزای مشترک زیادی استفاده کردهاند و اینگونه باز هم قدمی در راستای هرچه بهینهتر شدن دنیای بازی برداشته شد. البته خود سیستم UMBRA هم در فرایند تولید بسته الحاقی Blood and Wine بهطور مدام در حال توسعه و بهینهسازی بود که توضیح آن خارج از حال این مقاله است.
تا این نقطه که آمدیم بد نیست بدانید که تمامی موارد گفته شده در رابطه با حجم اشیا بود و رنگآمیزی آنها هم خالی از چالش نبود. تمامی رنگها و طرحهای دیوارها، سنگفرشها و حتی کثیفیها و سایشهای روی آنها همگی جزوی از این بخش به حساب میآیند. در یک نمونه ساده بد نیست بدانید که در ابتدای فرایند توسعه، رنگها و نقاشیهای چهار دیوار بیرونی یک خانه ساده دو طبقه در شهر بوکلر با استانداردی که تیم بهدنبال آن بود، چیزی در حدود ۷۲ مگابایت از حافظه مثلا یک گیابایتی کارت گرافیک شما را اشغال میکرد و این در حالی بود که قرار نبود این کار برای تمامی خانههای در دید بازیکن، در مجموع بیشتر از ۲۰۰ مگابایت فضا را اشغال کند!
بااینحال پس از مدتها مشورت با تیم فنی و بررسی راهکارهای مختلف درنهایت تیم طراحی محیط بازی روشی را ابدعا کرد که به نحوی مبنای آن بسیار شبیه به روشی بود که در بخش قبلی توضیح دادیم ولی جزییات آن تخصصیتر از آن است که ما در این مقاله بدان بپردازیم.
چیزی که در تمامی این فرایندها اهمیت داشت این بود که تیم توسعه بازی در بیشتر موارد سعی کرد از چشماندازههای هنری خود کوتاه نیاید و در تمامی موارد با ابداع روشهای جدید، بدنبال حفظ هدفگذاریهای هنری خود بود و این مسئله همان چیزی است که تیمهای مطرح بازیسازی را از دیگر تیمها متمایز میکند.
نکات تکمیلی
همچنین در این نقطه بهتر است بدانید که تمامی اقلام درون بازی و جزییات آنها بهطور دستی آماده شدهاند. از دهها ماهی و میوههایی که روی قفسههای یک فروشگاه سیار گرفتهاند بگیرید تا انواع غذاها و منوهایی که میتوانید روی یک میز درون یک خانه مشاهده کنید. البته همین مسئله برای ساخت بازی ویچر ۳ از لحاظ زمانی بهشدت تیم توسعه را تحت فشار گذاشته بود و برای همین در مراحل توسعه بسته الحاقی Blood and Wine تلاش شد که با افزودن امکاناتی در موتور ساخت بازی و ایجاد تغییراتی در فرایند آمادهسازی اقلام، سرعت طراحی و استفاده از آنها را افزایش دهند و نیازی به این نباشد که هر بار تیم طراحی محیط بازی بسته به نیازهای خود به تیمهای دیگر مراجعه کند.
با هدف دستیبابی به بالاترین کیفیت، تمامی اقلام درون بازی با دست آماده شدهاند
همهي این موارد را گفتیم اما بد نیست به این اشاره کنیم که در زمان توسعه بازی ویچر ۳ مسئولان فنی بازی سیستمی را طراحی کردند که بهطور خودکار اطلاعات مرتبط با بهینهسازی بازی را در تمامی بخشها و نقاط نقشه استخراج میکرد که بعدها هم در روند توسعه بستههای الحاقی هم از آن استفاده شد. این سیستم باگها و مشکلات بسیاری را نشان میداد که اصلا با چشم قابل رویت نبودند و ما در ادامه به چند مورد از آنها اشاره میکنیم.
معروفترین اشتباه مرتبط با بهینهسازی که در مسیر ساخت بازی ویچر ۳ صورت گرفته بود، مسئلهای بود که بعدها به «مرغ گرانقیمت» معروف شد. در این مورد سطل چوبی پر از مرغی وجود داشت که شاید در ظاهر حتی اهمیت چندانی برای جلوههای گرافیکی بازی نداشت و بازیکن هم متوجه آن نمیشد اما ساختار آن تشکیل شده از حدود ۱.۵ میلیون مثلث بود و این مقدار بهتنهایی بیشتر از ۷ خانه کامل دوطبقه بالاشهری بوکلر به همراه تمامی دکوراسیون داخلی آن بود!
در مورد دیگری مشعلی در یکی از مکانهای زیرزمینی بازی وجود داشت که وسعتی به شعاع ۴ کیلومتر را تحت تأثیر قرار میداد. همچنین مشکلی در موتور ساخت بازی وجود داشت که در ترکیب با اقدامی از جانب توسعهدهندهها منجر به رخدادن باگی به نام «صفر صفر صفر» میشد. در این وضعیت اگر شی به محیط بازی اضافه میشد و پس از آن فرد مورد نظر از ترکیب مشخصی از کلیدهای کیبورد استفاده میکرد، شی مورد نظر ناپدید میشد. بعدها مشخص شد که تمامی اقلام ناپدید شده به مختصات (0, 0, 0) منتقل شدهاند. در لحظه کشف چنین مشکلی در نقطه مورد نظر انبار بزرگی از هر چیزی که فکرش را میکنید در آن نقطه قابل مشاهده بود. از درختها و سخرهها گرفته تا آدمها و حیوانات و هر چیزی که درون بازی وجود داشت. بعدها به پاس یادبود چنین باگی درخت تصویر زیر در چنین مختصاتی درون بازی کاشته شد!
در این مقاله ما صرفا به بخشی از چالشهای پیشروی طراحی و تولید شهر بوکلر آن هم از دید یک طراحی محیط نگاه کردیم و تمامی اینها صرفا بخشی از تمامی چالشهایی است که تیم CD Projekt Red برای ساخت بسته الحاقی Blood and Wine با آن روبهرو بوده است. بسته الحاقی که در زمان انتشار خود بیشتر از بسیاری از بازیهای هم دوره خودش محتوا داشت و در قامت یک بازی کامل جوایز بسیاری را در جشنوارههای مختلف بهدست آورد.