علت طولانی بودن لودینگ دربازی های ویدیویی! | شهر ای تی | بیست اسکریپت قالب وردپرس آموزش وردپرس قالب فروشگاهی وردپرس اسکریپت
چهارشنبه , مرداد ۲۵ ۱۳۹۶

علت طولانی بودن لودینگ دربازی های ویدیویی!

با گذشت هر سال، بازی های ویدیویی از لحاظ دیداری بهتر و بهتر می شوند. تنها طی چند ماه گذشته، شاهد پدیده های فنی بسیار زیبایی مانند Horizon: Zero Dawn ،Zelda Breath of the Wild و Injustice 2 بوده ایم. اما در حالی که گرافیک ها روز به روز بهتر می شود، مدت زمان لودینگ -کابوس شب تمام گیمرهای بی تاب و حوصله- ظاهراً هیچ بهبودی نمی یابد. در برخی موارد، مدت زمان لودینگ به قدری فجیع است که باید پس از عرضه، با چندین به روزرسانی برطرف شود. آیا سخت افزارهای گیمینگِ قدرتمندتر و گران قیمت تر ما، یک روز به اندازه ای قدرتمند خواهند بود که این صبر طولانی را کوتاه تر کنند؟

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

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

بله، هارد درایوها می توانند هرچیزی را نسبت به یک دهه پیش سریع تر لود کنند و دستگاه های گیمینگ امروزی به شکل قابل توجهی، حافظه بیشتری نسبت به نسل های قبل دارند، اما افزایش کارایی متناسب نیست. رابرت دایتریچ، برنامه نویسی که روی بازی هایی مانند Elite Beat Agents و Lips فعالیت کرده، به عنوان مثال به اندازه بافت ها -که سبب می شوند اشیای داخل بازی یا محیط، شکلی پر جزییات تر به خود بگیرند- اشاره می کند. اگر یک توسعه دهنده اندازه میانگین بافت ها را از ۱۰۲۴×۱۰۲۴ به ۲۰۴۸×۲۰۴۸ پیکسل افزایش دهد، دیتا ۴ برابر حجیم تر خواهد شد. افزایش رزولوشن به ۴۰۹۶×۴۰۹۶ هم این دیتا تا را ۱۶ برابر حجیم تر خواهد کرد.

وی اما اشاره می کند که وقتی شما از هارد درایوهایی با ۵۴۰۰ گردش بر دقیقه (RPM) که استاندارد چند سال پیش بودند به سراغ هاردهای امروزی با ۷۲۰۰ گردش بر دقیقه می روید، کارایی در خواندن اطلاعات تنها ۳۳ درصد بهبود پیدا کرده است. «روی آوردن به درایوهای SSD، پرفورمنس بسیار بهتری در خواندن به همراه می آورد -البته با هزینه بیشتر به ازای هر گیگابایت- اما شما همچنان باید با افزایش چشمگیر حجم دیتای بازی سر و کله بزنید.»

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

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

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

بسیاری از بازی های مدرن، آنچه می بینید را با برداشتن بخش اندکی از دیتا و استفاده از آن برای جنریت کردن چیزهای بزرگ تر، مثل بافت هایی با وضوح بالا استفاده می کنند. به عنوان مثال آن دیوار آجری که در مقابل تان مشاهده می کنید، ممکن است فایلی با فرمت BMP نباشد و در عوض به کمک معادله ای ریاضی به دست آمده باشد.

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

اما پیش بینی حرکات گیمر همواره کار آسانی نیست؛ خصوصاً با در نظرگیری این موضوع که امروزه بازی های بیشتر و بیشتری به استقبال طراحی باز جهان می روند. «هرچه مقصد گیمر غیرقابل پیش بینی تر باشد، به احتمال کمتری می توانید پیش بینی کنید که وی به چه اطلاعاتی نیاز خواهد داشت.» دایتریچ ادامه می دهد: «به همین خاطر است که اگر از قابلیت Fast Travel برای رفتن به نقطه ای دوردست از محیط در یک بازی جهان-باز استفاده کنید، صفحه لودینگ را می بینید، اما اگر به صورت دستی به آن نقطه بروید، خبری از صفحه لودینگ نخواهد بود.»

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

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

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

«وقتی شما به مرحله پایانی عرضه یک بازی می رسید، لیستی از تمام مشکلات تهیه می کنید و بعد لیستی با توجه به هزینه ها و مزایایی که از برطرف سازی یا بهبود آنها به دست می آید.» جی پی لبرتون، طراحی که روی بازی هایی مانند BioShock و Spacebase DF-9 کار کرده ادامه می دهد: «برای عرضه، توسعه دهندگان معمولاً ثبات را نسبت به پرفورمنس در اولویت قرار می دهند – اطمینان از اینکه بازی هیچوقت کرش نمی کند و کاملاً قابل بازی است.»

«شما به نوعی روی آنچه بیشتر از هر چیز دیگری به تجربه بازی برای بازیکنان آسیب می زند قمار می کنید. بازی ای که عملکرد ضعیفی دارد، کماکان قابل بازی است اما بازی ای که دائماً کرش می کند به کار نمی آید.»

امروز توسعه دهندگان بیشتری را می بینیم که سرعت لودینگ را با به روزرسانی هایی پس از عرضه بهبود می بخشند؛ زیرا تنها پس از انتشار بازی است که آنها به زمان لازم برای رفتن به سراغ اولویت های بعدی خود دسترسی دارند.

رَند میلر، کارگردان بازی Obduction درباره بازی خود می گوید: «فرستادن یک بازی به بازار، جریان آب را باز می کند و همان موقع بود که ما گزارش هایی درباره مدت زمان طولانی لودینگ [در Obduction] شنیدیم». میلر توضیح می دهد که این مسئله از یک سو به مشکلات سخت افزاری ارتباط داشته و از سوی دیگر، تیم توسعه دهنده تا پیش از عرضه بازی از آن اطلاع نداشته است: «به هنگام شروع، ما بخش های بیشتری نسبت به آن چه نیاز بود را لود می کردیم. بنابراین بخش هایی از بازی را برداشتیم و آپدیتی برای آن عرضه کردیم.»

در حالی که به روزرسانی موتور Obduction و بهینه سازی بازی برای پلتفرم های مختلف ادامه می یافت، میلر و تیم او متوجه مشکلاتی شدند که یا به شکلی نادرست پیاده سازی شده بودند یا بهینه نبودند.

میلر می گوید: «ما متوجه شدیم که تمام فیلم های لایو اکشن را به هنگام بارگذاری جهان بازی، لود می کنیم. این موضوع باعث کاهش سرعت لود می شود اما نیازمند بانویسی سیستم های تعاملی یکی از شخصیت ها بود تا برطرف شود.» تیم هنری بازی هم بافت هایی یافت که امکان کاهش اندازه شان وجود داشت، اما این بافت ها باید به صورت دانه به دانه دستخوش تغییر قرار می گرفتند.

توسعه دهندگان بازی جهان باز و مخفیانه Ghost of a Tale و بازی نقش آفرینی فانتزی The Dwarves هم با مسائلی مشابه دست و پنجه نرم کرده اند. برای بهبود مدت زمان لودینگ، توسعه دهندگان باید بازی خود را از درون و بیرون بشناسند. اما حتی در این صورت هم، هدف گذاری برای برطرف سازی یک مشکل خاص نیازمند زمان و دقت است.

کارگردان خلاق The Dwarves که مدت ها بعد از عرضه، به روزرسانی هایی برای بهبود لودینگ ها دریافت کرد می گوید استودیوی وی حالا مدت زمان لود را به هنگام توسعه بازی در اولویت قرار خواهد داد. «ساخت پکیج های هوشمندانه، بهینه سازی حافظه و کاهش مقدار دیتا در حافظه، مسائلی بسیار پیچیده خواهند بود اگر اواخر توسعه به آنها توجه شود.» جان تیسان ادامه می دهد: «بنابراین برای بازی های آتی، ما سیستمی جدید به مراحل کاری خود اضافه کرده ایم که همه را مجبور به در نظر داشتن مدت زمان لودینگ از ابتدای روند توسعه می کند.»

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

ویلیام آرمسترانگ می گوید مدت زمان طولانی لودینگ، «شبیه عرضه یک بازی با باگی در قابلیت های آنلاین یا باگی در یک کوئست است که وقتی بازی را به ترتیبی پیش بینی نشده یا خیلی سریع پیش می برید به وقوع می پیوندد. این باگ ها زمانی دیده می شوند که بازی تکمیل شده باشد. و بازی ها به ندرت تا پیش از همان دقیقه آخر به پایان می رسند.»

منبع:Kotaku

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *