چرا حجم بازیها بسیار زیاد است و روز به روز این حجم بیشتر هم میشود؟
“به قلم Tyler Wilde از وبسایت PC Gamer”
‘Crunch’ یا همان بحران اصطلاحی مدرن به معنای کار بیش از حد و ناسالم در طول ساخت و عرضه بازی میباشد اما در گذشتهای نچندان دور به عنوان طبیعت کلمه کار نیز توصیف میشد. از طرف دیگر خرد و جمعآوری کردن دادههای اضافی میتواند در حد یک یا دو DVD باشد و یا این که این دادههای اضافی با حجمی معادل ۱۰۰ گیگابایت در یک هارد درایو کوچک یا بلوری ارائه شوند.
اندازه حجمی بازیها همیشه با توجه به نحوه ارائه و مقیاسبندی آنها محدود شدهاند. این قضیه معروف است که بازی Myst در زمان عرضه با توجه به وجود CD-ROM قابلیت توسعه پیدا کرد اما در سال ۲۰۰۴ وقتی دی وی دیهای دو لایه معرفی شدند، باز هم برای بازیهای PC در قفسههای خرده فروشیها دیر شده بود. از طرف دیگر Steam در همین دوره راهاندازی شد و به دلایلی مختلف محبوبیت زیادی را در میان بازیکنان کسب کرد، یکی از علتها این بود که هیچ مقیاس فیزیکی نمیتواند با مقیاس دیجیتالی و دانلودی رقابت کند. به لطف اینترنت، پهنای باند و هارد درایو بازیها میتوانند بدون هیچ وقفه و نگرانی رشد کنند. نتیجه این رشد، بازیهایی با بیش از ۱۰۰ گیگابایت حجم شد که دی وی دیهای دو لایه که هیچ حتی دیسک بلو-ری هم ظرفیت آنها را ندارد.
این شروع بدبختیها و ناراحتیهای بازیکنانی است که اینترنت پرسرعت ندارد و یا هارد درایو خوب با ظرفیت بالا خریداری نکردهاند. (و یا قدرت خرید آن را ندارند) کسانی که در کشورهای مختلف اینترنت حجمی دارند و سرویسهای مختلف ارائه دهنده اینترنت (ISP) به آنها اینترنت حجمی تحمیل میکنند، در بدترین حالت ممکن قرار دارند.
برای بازیکنان PC که اینترنت ضعیف دارند دو راه حل وجود دارد؛ یا باید حجم بازیها کمتر شود ( و یا حداقل بیشتر از این نشود) و یا این که شرکتهای محتلف ارائه دهنده اینترنت عملکرد خود را ارتقاء دهند که شامل افزایش کیفیت و حذف روش حجمی برای مشتریان میشود. با توجه به صحبتهای متعددی که با سازندگان بازیهای ویدیویی داشتم با اطمینان میتوانم به شما بگویم که مشکل بالا رفتن حجم بازیها به هیچ عنوان حل شدنی نیست و اندازه بازیها همواره بیشتر و بیشتر خواهد شد.
چه چیزی تمام ظرفیتها و فضای هارد درایو شما را پر میکند؟
فایلهای صوتی نقش زیادی در بالا بردن حجم بازیها دارند اما به طور کلی عامل اصلی این موضوع نیستند. رزولوشن (نمونه نرخ) صداها و فایلهای شنیداری بسته به انتخابها و تولیدات سازنده تغییر میکند. به عنوان مثال برنامه Tripwire برای صدای تفنگ از نرخ ۴۴Khz و برای دیالوگها از نرخ ۲۲Khz استفاده میکرد اما این موضوع به زمان بازی Red Orchestra: Ostfront 41-45 یکی از اولین عناوین عرضه شده بر روی استیم بر میگردد. استفاده از صدای فراگیر ۵٫۱ به جای حالب مونو یا استریو دلیل اصلی بزرگتر شدن عناوین مختلف است اما به دنبال بالا رفتن حجم فایلها، کیفیت صدا و افکتها نیز بهتر شد. از آن به بعد ما انتظار داشتیم که شاهد کیفیت بهتر صداگذاری بر روی شخصیتها باشیم.
از نظر ویدیویی و بصری نیز در این سالها شاهد تغییرات گستردهای بودیم (از میان پردهها با رزولوشن ۶۴۰x480 گرفته تا کاتسینهایی با رزولوشن ۴K) که باعث شد حجم بازیها به صورت قابل توجهی بالا برود. البته میتوان این ویدیوها را تا حد بسیار زیادی فشردهسازی کرد. با توجه به پیشرفتهای اخیر ما H.264 codec را داریم که با استفاده از آن میتوانیم ویدیوهای مختلف را به شدت فشرده کنیم. البته با توجه به حجم بازیهای امروزی هر چقدر هم از روشهای فشردهسازی استفاده شود باز هم با مشکلات قبلی رو به رو خواهیم شد. یک المان اصلی در افزاش حجم تمامی عناوین به صورت مشترک وجود دارد و آن هم چیزی نیست جز بافتها (Textures). بافتها همانند ویدیوها در رزولوشن افزایش مییابند اما تفاوت مشکل ساز آنها این است که قابلیت فشرده سازی ندارند. تصاویر نیز قابلیت فشرده سازی زیاد را دارند (همانند فرمت JPGS) اما کمی مصنوعی جلوه میکنند. با توجه به کار ویژه “هانیش” کارگردان استودیو Stardock Games تصاویر باید از یک فضای GPU جانبی استفاده کنند. او در این مورد گفت:
” این تصاویر از حالت فشرده سازی بلوک محلی استفاده میکنند، فشرده سازی آنها از مقایس ۸ به ۱ میرسد.”
به غیر از حجیم شدن بافتها، پیچیدگی آنها نیز رشد داشته است. “جان گیبسون” از Tripwire Interactive در بیانیهای گفته بود:
“در سال ۲۰۰۵ شما فقط یک تکسچر (بافت) داشتید، فقط یک بافت خالی که بعدها بر روی آن نام Diffuse Texture (بافت پراکنده) را قرار دادند اما در نسل بعد شما به غیر از یک “بافت پراکنده” (Diffuse Texture) دو مورد دیگر با نامهای “بافت نقشه عادی” (normal map texture) و ” بافت چشمانداز”(Shininess texture) را نیز داشتید. بنابراین شما به دلیل افزایش حافظه کارت گرافیک و رم، نه تنها باید از بافت رزولوشن بالاتر استفاده کنید بلکه برای هر شیء سه مقیاس و جزئیات مختلف دارید که باید به خوبی پیادهسازی شوند.”
“جزئیات مشخص شده از موارد مختلفی که حجم Killing Floor 2 را بالا برده است. بر روی تصویر کلیک کنید”
اشیاء مختلف نیز پیچیدگی مختص به خودشان را دارند، بررسی ریز به ریز بازیهای Tripwire قضیه را به طور کامل به ما توضیح میدهد. در اواسط دهه ۲۰۰۰ عنوان Red Orchestra 1 با حجمی معادل ۲٫۶ گیگابایت به انتشار رسید که برای زمان خودش واقعاً فضای زیادی را اشغال میکرد. (با توجه به گفتههای گیبسون یکی از سازندگان بازی، اگر پچ ۱۰۰ مگابایت برای این عنوان منتشر میشد مردم شاکی میشدند.) از این حجم ۲٫۶ گیگابایتی ۳۲۷ مگابایت به فایلهای صوتی اختصاص داشت اما بافتها و اطلاعات محیطی ۱٫۴ گیگابایت حجم داشتند. نکته عجیب اینجا است که اگر عنوان Killing Floor 2 را که سال پیش عرضه شد را در نظر بگیریم متوجه میشویم ۱٫۱ گیگابایت از حجم بازی به فایلهای صوتی اختصاص دارد. بافتها و اطلاعات محیطی چقدر حجم گرفتند؟ ۱۷٫۴ گیابایت!
گیبسون در این مورد گفت:
“یکی از سریعترین راهها برای افزایش کیفیت و بهتر نشان دادن بازی بالا بردن رزولوشن بافتها است. اطلاعات بدون توجه به این که چه بازیای میسازید در رزولوشن بسیار بالایی قرار میگیرد و حالا مسئله حافظه مطرح میشود. هر چقدر حافظه گسترش پیدا کند از طرف دیگر سازندگان رزولوشن بافتهای خود را بالا و بالاتر خواهند برد.”
روندی مشابه به این از سال ۲۰۰۳ تا به امروز در Stardock Games دیده میشود که با عنوان Civilization 1: Ultimate Edition و به وسیله فایلهای ویدیویی بسیار حجیم شروع شد. در سال ۲۰۱۱ و در بازی Civilization 2: Ultimate Edition نیز شاهد افزایش ۱۵ درصدی اندازه حجمی بافتها بودیم. در سال ۲۰۱۵ باز هم شاهد افزایش ۵ درصدی حجم بافتها بودیم و به طور کل نسبت به نسخه اول افزایشی ۲۰ درصدی داشت. نکته شگفتآور اینجا است که طبق گفتههای هانیش، در عنوان Ashes of the Singularity: Escalation اندازه ححمی بافتها ۶۰ درصد سایز کل فایلها را شامل میشد.
البته بافتها تنها عامل بالا بردن حجم بازیها نیستند. اول از همه برخی بازیها هیچ بافتی در بحث پردازش ۳D ندارند و از طرف دیگر برخی عناوین حجم بسیار بالایی در مبحث ویدیوهای با رزولوشن بالا دارند که میتواند سایز بازی را تا حد بسیار زیادی بالا ببرد. بسیاری از عوامل دیگر نیز رشدهای عجیب و غریبی داشتهاند، در مواردی مانند برنامههای اجرایی مختلف، هندسه، عوامل توزیع پذیر و … نیز شاهد افزایش اندازه بودهایم اما در این میان عاملی که رشد آن به شدت به چشم میآید بافتها یا همان تکسچرها هستند و با فاصله بسیار زیادی نسبت به فاکتورهای دیگر حجم بازیها را بالا میبرند. پس با توجه به گفتههای هانیش، اگر میخواهید مقصر را پیدا کنید به صورتهای کک مکی، سنگهای خزه گرفته و پسزمینه لایهای نگاه کنید.
چرا برخی بازیهای به ظاهر خطی و کوچک نسبت به عناوینی با جهانهای وسیع حجیمتر هستند؟
سایز بازیها میتواند گیجکننده باشد. برای مثال هر دو عنوان The Witcher 3 و Rainbow Six: Siege نزدیک به ۵۰ گیگابایت حجم دارند اما مورد اول یک نقشآفرینی جهانباز است و دومی یک شوتر چندنفره، چرا این دو بازی با توجه به سبکهای کاملاً متفاوت حجمهای یکسانی دارند؟ چنین مقایسهای به ما نشان میدهد که محدوده یا سایز یک بازی در مقایسه با دنیا و طول بخش داستانی آن هماهنگ نیست. جالب است بدانید که بافتهای دشتهای وسیع و علفزارهای تکرار شده در دنیای یک بازی که در تصور ما به فضای بسیار زیادی نیاز دارد میتواند در مقایسه با یک مدل اسلحه پیچیده حجمی ناچیز داشته باشد.
NBA2K17 بیش از ۶۶ گیگابایت حجم دارد و عنوان بزرگی به حساب میآید. چطور یک بازی ورزشی که تنها در یک ورزشگاه جریان دارد نسبت به Witcher 3 با آن دنیای بزرگش حجم بیشتری را اشغال میکند؟ خب باید بدانید که هر کدام از بازیکنان تیمهای مختلف در NBA2K17 شامل بافتهای بسیار با کیفیت و در نتیجه پر حجمی میشود که مدلهای پیچیدهای را در خود جای داده است در حالی که Witcher 3 شامل چهرهها و مدلهای بدن منحصر به فرد کمتری میشود. از طرف دیگر NBA2K17 اطلاعات انیمیشنی موشن-کپچر شده زیادی دارد که فضای قابل توجهی را طلب میکند.
حال یک سوال دیگر نیز پیش میآید. در عناوین مختلف تا چه میزان ویدیو و فایل صوتی وجود دارد؟ و آیا این فایلها فشردهسازی میشوند؟ بازی Titanfall بعد از نصب فضای زیادی را اشغال میکرد (۴۸ گیگابایت) چون برای کم کردن ذخیرهسازیهای پردازنده فایلهای صوتی آن فشرده نشده بود. اگر از دیدگاه Respawn به این قضیه نگاه کنیم متوجه منطقی بودن آن میشویم چرا که جلب نظر کسانی که پردازنده دو هستهای دارند بسیار اقتصادیتر و موفقیتآمیزتر از جلب توجه کسانی است که خواهان حجم کمتر هستند.
چرا همه چیز را نمیتوان فشرده کرد و چرا فشردهسازی اهمیت بالایی برای سازندگان ندارد؟
Titanfall در زمان نصب به ۴۸ گیگابایت فضای خالی نیاز داشت اما دانلود آن فقط ۲۱ گیگابایت بود، پس بازی به شدت فشرده شده بود بنابراین چرا بازیهای دیگر این کار را انجام نمیدهند؟ جواب ساده است، چون بیشتر فضای مورد نیاز Titanfall را فایلهای صوتی تشکیل میداد که از همان اول قابلیت فشرده سازی شدید را داشت.
مشکل عدم فشردهسازی در همه مواقع باز هم به بافتها بر میگردد. همانطور که در طول مقاله اشاره شد اصلیترین عامل حجیم شدن بازیهای مختلف همین تکسچرهای با کییفیت و پیچیده هستند که قابلیت فشرده سازی شدید را ندارند. متاسفانه حتی قابلیت فشرده سازی آنها به طور کامل در زمان دانلود نیز وجود ندارد (به شکلی که پس از دانلود به حجم اصلی خود برگردند) چون به شدت باید بر روی پردازنده و حافظه متمرکز شد و این عملی است که باید در استودیو بازیسازی انجام شود. البته جالب است بدانید که فشردهسازی در بیشتر مواقع به طور خود کار انجام میشود مثلاً خود پلتفرم استیم بازیهای مختلف را فشردهسازی میکند و پس از دانلود آنها را از این حالت به بیرون میآورد و از طرف دیگر این بدان معنی نیست که سازندگان مختلف در بحث فشردهسازی سختیهای مختلفی را متحمل نمیشوند و برایشان مهم نیست بلکه فشردهسازی یکی از سختترین کارها در بازیسازی میباشد که توسعهدهندگان بر روی آن وقت زیادی میگذارند. مشکل تنها این است که فشردهسازی بر روی همه اطلاعات موجود و با هر فرمتی قابل انجام نیست.
طبق نظر کدنویس Oculus VR آقای “تام فورسایس” که قبلا بر روی بازیهای مختلفی برای PC ، Xbox و Dreamcast کار کرده بود خرد کردن و فشردهسازی در اواخر سال ۱۹۹۰ و اوایل ۲۰۰۰ بسیار لازم و ضروری بود چرا که تنها مقیاس موجود دیسکهای با ظرفیت بسیار کم بودند. طبق گفتههای فورسایس، باید فایلهای فشرده شده بافتها را با فایلهای فشرده نشده مقایسه کرد چرا که اولاً همه آنها با هم فشرده نمیشوند و دوماً بعد از فشردهسازی شاهد افت کیفیت هستیم، به همین دلیل باید به دقت کیفیت نهایی را مورد بررسی قرار دهیم و بافتهای قابل قبول فشرده شده را استفاده و فایلهای فشرده شده با کیفیت غیرقابل قبول را به همان حالت فشرده نشده رها کنیم. از طرف دیگر یک سری بافتهای تکراری و غیر ضروری به وجود میآیند که باید آنها را حذف کرد. آقای فورسایس در زمان ساخت بازی StarTopia یک فرمت فشردهسازی مخصوص را اختراع کرد که یک هفته قبل از عرضه بازی مشکل حجم زیاد آهنگهای این عنوان را حل کرد. از آنجایی که باید بازی را بر روی سی دی جای میداد حل کردن این مشکل در آخرین دقایق کمک بسیار زیادی به او کرد.
امروزه نیز چنین اعمالی شبیه به گذشته رخ میدهد اما از آنجایی که ۲۰۰ مگابایت بیشتر مشکلی برای توسعه یک بازی پیش نمیآورد و عرضه آن را به تعویق نمیاندازد، استیم هم خواهان فشردهسازی نیست. در واقع اگر کم کردن یک گیگابایت حجم به معنای تاخیر یا استفاده بیشتر از امکانات و منابع باشد، هیچ استودیویی وقت خود را بر روی فشردهسازی و کم کردن آن یک گیگابایت حجم نمیگذارد چرا که امروزه دیگر این مسئله همانند گذشته مهم نیست. فورسایس در این مورد گفت:
” شما میتوانید سالها روی فشردهسازی یک پروژه وقت بگذارید. وقتی به اواخر کار نزدیک میشوید مشکلات را بیشتر احساس میکنید. حالا شما بازی خود را یک ماه تاخیر میزنید تا بازی را ۲۰ درصد کاهش دهید؟ این یک مبادله بسیار بد است و هیچکس حاضر به انجام چنین چیزی نیست.”
من با سازندگان بسیاری صحبت کردم و همه آنها گفتههای فورسایس را تایید میکنند. با زمان و نیروی کار کافی میتوانید حجم پروژه خود را بایت به بایت کاهش دهید تا به یک محدوده تئوری معقول برسید اما کم کردن ۵۰ مگابایت حجم از یک بازی ۳۰ گیگابایت چه اهمیتی دارد؟ مخصوصا در این دوره که بازیها روز به روز گسترش پیدا میکنند و با به روز رسانیهای مختلف نقشههای جدید، مودها، اسکینها، آیتمها و … دریافت میکنند.
در این بین بازیهای دو بعدی که شامل چندوجهیهای کمی میشوند همیشه حجم کمی داشتند و خواهند داشت. به عنوان مثال Stardew Valley تنها ۴۶۲ مگابایت حجم دارد اما Forza Motorsport 7 فضایی معادل ۹۶٫۵ گیگابایت را اشغال میکند و به نظر میرسد راهی برای جلوگیری این افزایش حجم وجود ندارد.
در انتها گیبسون به شوخی گفت:
“نکته اخلاقی داستان این است که در سرویسهای ارائه دهنده اینترنت و شرکتهای سازنده هارد درایو سهام خریداری کنید! تا زمانی که سختافزارها بهتر و قویتر شوند سازندگان هم برای کیفیت بیشتر در صدا، تصویر، هندسه و بافتها به حافظه بیشتری نیاز دارند که در نهایت به بازیهای عظیم با حجمی فراتر قبل میرسیم. تنها راه ما تکیه بر ISPهای بهتر بدون محدودیت ترافیک است. همه این مشکلات وجود دارد اما حداقل بازیها درخشانتر از همیشه به نظر میرسند!”
مترجم: علیرضا کریمی
برگرفته شده از PardisGame
جالب بود ! سپاس از اطلاعات تان !
1 نفر این دیدگاه را پسندیده