حافظه های SSD این روزها به دلیل سرعت و عملکرد بسیار بهتر نسبت به دیگر حافظه ها، با شتاب بسیار خوبی در حال رشد محبوبیت نزد کاربران هستند. مطمئناً دسترسی به این عملکرد عالی برای گیمرهای حرفه ای نیز می تواند بسیار مناسب باشد اما باید گفت افزایش قابل توجه حجم بازی ها سبب شده نتوان به راحتی PCها را به این نوع از حافظه ها مجهز کرد. به راستی دلایل افزایش چشم گیر حجم بازی ها در طی سال های اخیر چیست؟

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

اخیراً بازی های نظیر Red Dead Redemption 2 و Call of Duty Modern Warfare برای سیستم های خانگی منتشر شده که کاربران به منظور نصب کردن آن ها بر روی سیستم های خود به چیزی در حدود 150 گیگابایت فضای خالی نیاز دارند. در حال حاضر بهترین انتخاب برای فراهم کردن این فضا، هارد دیسک ها هستند که می توان ظرفیت بالایی از آن ها را با قیمتی بسیار کمتر از حافظه های SSD خریداری کرد.

در روزهای نه چندان دور کاربران از شنیدن خبر اینکه یک بازی جدید به 50 گیگابایت فضا برای ذخیره سازی اطلاعات نیاز دارد تعجب می کردند اما این روزها می توان بازی های مختلفی را نام برد که چیزی در حدود 100 یا حتی 150 گیگابایت از فضای ذخیره سازی کاربران را اشغال می کند.

Game-6.jpg

گیمرهای قدیمی به خوبی می توانند زمانی را به یاد بیاورند که امکان ذخیره سازی دنیای بازی ها بر روی یک فلاپی دیسک یا نهایتاً مجموعه کوچکی از آن ها وجود داشت. اما این روزها بازی هایی یافت می شود که نسخه فیزیکی آن ها بر روی 20 DVD عدد عرضه می شود. اگر قصد داشته باشیم این بازی را بر روی CD منتشر کنیم، به 250 حلقه از آن ها نیاز خواهیم داشت و به منظور ذخیره سازی آن بر روی فلاپی دیسک ها باید 121500 عدد از آن ها را خریداری کنیم. البته این در حالی است که از نسخه با ظرفیت بالا و 1.44 مگابایتی از این محصولات مورد استفاده قرار بگیرد.

اما به راستی چه تغییراتی در بازی های امروزی یا روش ساخت آن ها رخ داده است که ناگهان شاهد افزایش حجم آن ها از 50 گیگابایت به سه برابر این مقدار هستیم؟

Game-2.jpg

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

اگر قصد داشته باشیم یک تصویر بافت (Texture) را با وضوح 2K یا با وضوح 2048 در 2048 پیکسل ذخیره سازی کنیم، آن گاه برای هر پیکسل از آن باید حجم 32 بیت را در نظر بگیرم. در حجم یاد شده اطلاعات مربوط به RGBA، متشکل از رنگ های قرمز (Red)، سبز (Green)، آبی (Blue) و Alpha که نام فنی میزان شفافیت است، ذخیره سازی می شود. به این ترتیب باید برای ذخیره سازی 4.2 میلیون پیکسل که هرکدام از آن ها دارای حجم 4 بایت هستند فضا فراهم کنیم. حجم کلی چنین فایلی چیزی در حدود 16 مبی‌بایت (048576 بایت) خواهد بود.

اکنون اگر یک بازی سبک جهان باز را تصور کنیم که انبوهی از بافت ها و مدل ها را در خود جای داده است، با ظرفیتی در حدود 150 گیگابایت، تنها می توان 9600 تصویر با وضوح 2K را بدون فشرده سازی ذخیره کرد. باید توجه داشت که بازی ها علاوه بر مدل ها و بافت ها دارای مضامین دیگری شامل ویدیوها و صداها نیز هستند و نمی توان تمامی ظرفیت 150 گیگابایت را به ذخیره سازی بافت ها اختصاص داد.

Game-8.jpg

روند افزایش فضای ذخیره سازی موردنیاز برای نصب بازی های Call of Duty 

محدودیت در ذخیره سازی بافت ها هنگامی بیشتر نمایان می شود که قصد داشته باشیم آن ها را با وضوح 4K یا 4096 در 4096 پیکسل و بدون فشرده سازی ذخیره کنیم. این موضوع سبب می شود که حجم بافت ها نسبت به حالت قبل چهار برابر بیشتر شود و در ظرفیت 150 گیگابایت تنها بتوان 2400 تصویر را ذخیره سازی کرد. برای یک بازی که در حدود 50 گیگابایت حجم دارد نیز تنها می توان 800 فایل بافت با این وضوح را در اختیار داشت. بدون شک این تعداد از بافت ها برای بازی های مدرن امروزی که دارای محیط وسیعی هستند، حتی نزدیک به کافی هم نیست.

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

نسخه های با کیفیت بالا از فرمت JPEG، می توانند حجم هرکدام از این بافت ها را به حدود 2 مگابایت کاهش دهند. با استفاده از نسخه های فشرده تر (و با کیفیت کمتر) نیز می توان کاری کرد که این تصاویر در حدود 1 یا حتی 0.5 مگابایت حجم داشته باشند. به عنوان جایگزین، فرمت فشرده PNG که از کاهش کیفیت تصاویر نیز جلوگیری می کند سبب می شود که حجم این تصاویر به نصف برسد.

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

Game-3.jpg

فشرده سازی تصاویر همراه با کاهش کیفیت آن ها، چیزی شبیه به فشرده سازی زباله ها

در حال حاضر برای  فشرده سازی این نوع از تصاویر از فرمت DirectX Texture Compression یا به اختصار DXTC استفاده می شود. این فرمت پیش از این با عنوان S3TC شناخته می شد که در اواخر دهه 90 میلادی شرکتی با عنوان S3 Graphics آن را طراحی و معرفی کرد. S3TC به صورت رسمی از سال 1998 با معرفی و انتشار DirectX 6.0 مورد استفاده قرار گرفت و پس از آن با تغییر نام به DXTC، امکان دسترسی به آن در پنج مُد کاری مختلف ممکن شد.

هرچند قصد نداریم در این مطلب به بررسی جزییات این فرمت بپردازیم اما باید گفت که DXTC یک الگوریتم فشرده ساز برای تصاویر است که نسبت فشرده سازی آن تنها می تواند مقادیر مشخصی را اختیار کند. به این ترتیب برخلاف دو فرمت JPEG و PNG، می توان پیش از پیاده سازی این الگوریتم از حجم تصویر نهایی اطلاع پیدا کرد. DXTC همچنین به گونه ای طراحی شده است که ساخت قطعات سخت افزاری برای بازکردن و پردازش تصاویر ذخیره  شده توسط آن کار ساده ای باشد. تمامی کارت های گرافیک مدرن که از سال 2000 تاکنون عرضه شده اند دارای قطعات سخت افزاری موردنیاز برای پردازش تصاویر S3TC یا DXTC هستند.

در حال حاضر اغلب بازی هایی که از فرمت DXTC برای فشرده سازی تصاویر خود استفاده می کنند، یکی از مدهای 6:1 یا 4:1 از این فرمت را به کار می گیرند. این مدها سبب می شوند که حجم تصاویر به ترتیب شش و چهار مرتبه کاهش پیدا کند. به این ترتیب با استفاده از این مدها می توان در ظرفیتی ثابت، تصاویر بسیار بیشتری را ذخیره سازی کرد.

هم اکنون دو موتور بازی Unreal Engine و Unity Engine در کنار دیگر فرمت ها از فرمت DXTC نیز پشتیانی می کنند. اگرچه استثناهایی هم وجود دارد، اما این روزها اغلب بازی ها بافت های موردنیاز خود را با استفاده از این فرمت ذخیره سازی می کنند. از سوی دیگر این روزها همه بافت های موردنیاز برای ساخت بازی ها دارای وضوح یکسان و مشابه ای نیست، چرا که اشیای کوچک که تنها چند صد پیکسل از سطح صفحه نمایش را اشغال می کنند، نیازی به استفاده از بافت های با وضوح 2K یا 4K را ندارند.

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

Game-4.jpg

چرا بازی ها از تصاویر Mipmap استفاده می کنند

به منظور استفاده از این قابلیت، استودیوهای بازی ساز باید از هر بافت ذخیره شده با فرمت DXTC، تصاویر Mipmap متعددی تولید کنند که وضوح آن ها به صورت سریالی نصف می شود تا در نهایت به یک بافت با وضوح 1 در 1 پیکسل ختم شود. به عنوان مثال برای استفاده از این قابلیت برای یک بافت با وضوح 2K، باید 11 تصویر Mipmap با تراکم پیکسلی 1024 در 1024، 512 در 512، 256 در 256، 128 در 128، 64 در 64، 32 در 32، 16 در 16، 8 در 8، 4 در 4، 2 در 2 و در نهایت 1 در 1 آماده کرد.

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

با توجه به حجم فایل ها در موتور Unreal Engine، می توان گفت ذخیره سازی این تعداد از بافت ها با وضوح 1K، به ظرفیتی در حدود 13.3 گیگابایت نیاز دارد. در صورت انتخاب وضوح 2K باید ظرفیت 53.3 گیگابایتی را فراهم کنیم و همچنین برای وضوح عالی 4K، این تعداد از بافت ها حجم قابل توجهی در حدود 223.7 گیگابایت خواهند داشت.

باید توجه داشت این ظرفیت تنها برای ذخیره سازی بافت ها در نظر گرفته شده است و بازی های امروزی فایل های صوتی گوناگونی را هم در خود جای داده اند. به ویژه اگر همچون دو بازی Call of Duty و Red Dead Redemption 2، صداگذاری یکی از ویژگی های اصلی این بازی ها باشد، این موضوع دارای اهمیت بیشتری است. اضافه کردن حجم فایل های نقشه و همچنین ویدیوها، مجبورمان می کند که برای نصب بازی های مدرن و با وضوح 4K، ظرفیت قابل توجهی از هارد دیسک را کنار بگذاریم.

Game-5.jpg

استفاده از انبوهی از بافت ها در یکی از صحنه های بازی Red Dead Redemption 2

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

باید توجه داشت داشت این موضوع دستاوردهای بسیاری هم دارد. به لطف استفاده از بافت های متنوع، دیگر در بازی های جدید شاهد تکرار پیاپی بافت ها و یا استفاده از بافت های تکراری نیستیم. این بافت های متنوع همچنین سبب شده اند بازی های امروزی بسیار واقعی تر از گذشته باشند. با نگاهی به بازی های مهمی همچون Half-Life و Deus Ex، به خوبی می توان این بهبود گرافیکی را مشاهده کرد.

اما استفاده از بافت های با وضوح بالا معایب خاصی را هم به دنبال دارد. در حال حاضر به سختی می توان استفاده از بافت های با وضوح کمتر به جای بافت های با وضوح عالی را متوجه شد. به ویژه هنگامی که از نمایشگرهای با وضوح Full HD استفاده می کنیم، امکان تشخیص تفاوت میان وضوح های 2K و 4K یا 1K و 2K به سختی وجود دارد. این اتفاق به این دلیل رخ می دهد که معمولاً بافت ها بر روی بخش کوچکی از صفحه نمایش ظاهر می شوند.

Game-7.jpg

وضوح عالی بافت ها در صحنه ای از بازی Red Dead Redemption 2

حداقل بر روی کاغذ دیواری که با استفاده از یک بافت با وضوح 2K نمایش داده می شود، باید نسبت به دیواری که از بافت با وضوح 1K بهره می برد، دارای جزییات بیشتری باشد. اما در حال حاضر در بسیاری از موتورهای بازی سازی، بافت با وضوح 2K توسط یک Mipmap با وضوح کمتر (معمولاً 1K) جایگزین می شود و بسیاری از کاربران نیز آن را حس نمی کنند.

باید گفت این خبری خوب برای دنیای بازی ها محسوب می شود، چرا که نشان می دهد به این زودی ها استودیوهای بازی ساز قصد ندارند از بافت های با وضوح 8K برای ساخت بازی های خود استفاده کنند. این بافت ها سبب می شوند که حجم بازی ها بازهم چهار برابر شود که خبری خوب برای سیستم های PC امروزی نیست.

به نظر می رسد استفاده از این بافت ها هنگامی اهمیت پیدا می کند که عموم کاربران به نمایشگرهای با وضوح 8K دسترسی پیدا کنند و همچنین قیمت حافظه های SSD با ظرفیت چند ترابایت، به میزان قابل توجهی کاهش پیدا کند. مطمئناً اگر تا آن زمان الگوریتم های بهتری برای فشرده سازی بافت ها معرفی شود، با کاهش قابل توجه حجم بازی ها روبرو خواهیم بود.

نظر خود را اضافه کنید.

ارسال نظر بدون عضویت در سایت

0

نظرات (18)

  • مهمان - بامداد

    دارن Ray tracing میارن که کلی حجم میبره ...

  • مهمان - بامداد

    تبانی صنعت بازی سازی با صنعت سخت افزار

    برای زنده نگه داشتن پی سی

  • مهمان - محمد

    در پاسخ به: مهمان - بامداد

    چی میگی ?

  • مهمان - محمد

    در پاسخ به: مهمان - بامداد

    شما دوغتو بنوش..

  • مهمان - Saeed

    در پاسخ به: مهمان - بامداد

    جوک قرن:D:D:D:D:D:D:D:D
    مردم از خنده لطفا ادامه بده....:p

  • مهمان - hamed ghiasi

    در حال حاضر برای این سوال که در بازی ها چگونه بافت ها، ویدیوها و صوت های موردنیاز ذخیره سازی می شود، پاسخ دقیق و مشخصی وجود ندارد.!!!!
    دوست عزیز این جمله شما کاملا غلطه. مگه ممکنه این همه بازی توسط شرکتهای ریز و درشت تولید بشه اما برای سوالی با این درجه از اهمیت پاسخ دقیق و مشخصی وجود نداشته باشه؟ نکته اول اینکه Mipmap ها هنگام نصب بازی روی هارد ذخیره نمیشن و انجین بازی هر زمان که تکسچری رو فراخوانی میکنه Mipmap ها رو میسازه. به همین دلیل هم هست که بین مراحل مختلف بازی معمولا یک لودینگ طولانی وجود داره. طی این مدت انجین تکسچرهایی که برای اون لول نیاز هست رو فراخوانی میکنه و پردازشهای لازم رو انجام میده.
    نکته دوم اینکه بسیاری از تکسچرها مثل آجر و زمین قابل تکرار هستند و روشهایی برای پنهان کردن پترن تکرار شونده وجود داره که باعث میشه یک تکسچر 2K بتونه برای پوشش دادن سطح بسیار وسیعی مورد استفاده قرار بگیره.
    نکته سوم اینکه علت عدم فشرده سازی بعضی از تصاویر حساسیت بالای اونهاست. به عنوان مثال نرمال مپ ها نقش بسیار مهمی در کیفیت رندر نهایی دارند و هر تغییری در اطلاعات فایل نرمال مپ اثرش در خروجی به شکل بزرگتری خودش رو نشون میده. یا دیسپلیس مپ ها که توی گیم انجین هایت مپ خونده میشن معمولا در فرمت 16 بیتی ذخیره میشن چون در غیر اینصورت اگر برای پوشش سطح وسیعی مثل سطح زمین و کوهها استفاده بشن سطحی که در حالت 8 بیتی تولید میشه بصورت پله پله نمایش داده میشه و به همین دلیل این فایلها رو نمیشه به سادگی تکسچرها فشرده کرد.

  • مهمان - پدارم

    super mario 64 با حجم 8 مگابایت !!:o:o
    هنوز موندم چطوری نینتندو تونست بازی با این کیفیت بالا محیط جهان باز بزرگ و کلی مراحل طولانی و کلی افکت های صوتی رو در 8 مگابایت جا بده :o

  • مهمان - r

    من که کلا خیلی وقته بازیهای بزرگ رو رو انجام نمیدم البته بعد gtav و قبلشم بازیهای دیگرو نسخه dvd تا نهایت 4 حلقه رو میگرفتم و الانم یه دلیل اصلیش همین حجمشه که کاملا ضد حاله برام نه حجمشو دارم نه وقت و حوصله نصبشو و الانم دیگه حوصله ی خوده بازیهای حجیم و بزرگ رو ندارم کلا...همون بازیهای کوچیک دم دستی مثلا بلازیهای انلاین که با مرورگر انجام میشه فقط..

  • مهمان - yasin

    من هنوز 4-5 تا فلاپی خام دارم کسی خواست بگه:p:D;)

  • مهمان - hassan

    در پاسخ به: مهمان - yasin

    منم فلاپی خورشو دارم اصل asus واسه ۲۰ سال پیش، نوستالژی عجیبیه!

بارگذاری بیشتر ...

ورود به شهرسخت‌افزار

ثبت نام در شهر سخت افزار
ورود به شهر سخت افزار

ثبت نام در شهر سخت افزار

نام و نام خانوادگی(*)
لطفا نام خود را وارد کنید

ایمیل(*)
لطفا ایمیل خود را به درستی وارد کنید

رمز عبور(*)
لطفا رمز عبور خود را وارد کنید

شماره موبایل
Invalid Input

جزو کدام دسته از اشخاص هستید؟(*)

لطفا یکی از موارد را انتخاب کنید