سه سال پیش بود که شرکت مایکروسافت با DirectX12 پا به مراسم GDC 2014 گذاشت و آن را آینده API نامید. حالا که حدود دو سال از عرضهی این API میگذرد، میتوان تا حد زیادی دربارهی این ادعای مایکروسافت قضاوت کرد. در این مقاله قصد داریم تا وضعیت بازیهایی را که در سال ۲۰۱۷ از DX12 پشتیبانی میکردند، بررسی کنیم.
سال ۲۰۱۶ و در زمانی که فقط یک سال از انتشار DirectX12 بر روی ویندوز ۱۰ میگذشت، چندین بازی برای اولینبار از DX12 پشتیبانی کردند. با نگاهی نهچندان تخصصی و عمیق هم مشخص بود که ورژن DX12 بازیهای ذکرشده، بازده پایینتری نسبت به ورژن DX11 همان بازیها دارند که به شدت غافلگیرمان کرد و به همین دلیل DX12 در معرفی خود به عنوان یک API نوظهور و بزرگ شکست خورد؛ با اینکه سال پیش این بازیها با کارتهای گرافیک Nvidia تست شدند، اما اکنون و برای سال ۲۰۱۷ قصد داریم تا به بررسی تمام بازیهای DX12 برروی کارتهای گرافیکی Nvidia و AMD بپردازیم.
قبل از شروع مطلب، بهتر است اشاره کنیم که در سال ۲۰۱۷، فقط ۵ بازی از DX12 و ۱ بازی هم از Vulkan به عنوان API پشتیبانی کردند که به ترتیب عبارتند از Forza Motorsport 7، Star Wars Battlefront II، Sniper Elite 4، Halo Wars 2 و Total War: Warhammer 2 برای DX12 و Wolfenstein II: The New Colossus برای Vulkan. شاید بد نباشد که بدانید در سال ۲۰۱۶، ۱۱ بازی از DX12 و ۲ بازی از Vulkan استفاده میکردند. خیلی خندهدار و عجیب است که تعداد بازیهای DX12 در سال ۲۰۱۷ نسبت به سال پیش به جای افزایش، با کاهش ۵۰% مواجه شده است!
یکی دیگر از نکات جالبی که دربارهی DX12 وجود دارد، این است که در سال ۲۰۱۷ بیشتر توسعهدهندگان بهسادگی از کنار DX12 گذشتهاند و ترجیح دادهاند که از این API استفاده نکنند. این موضوع در حالی است که بعضی از این توسعهدهندگان اعلام کرده بودند که در حال ارزیابی و بررسی DX12 هستند. یکی از این توسعهدهندگان، استودیوی Codemasters بود که در سال ۲۰۱۶ اعلام کرده بود که موتور بازیسازی آنها با نام EGO از DX12 پشتیبانی خواهد کرد. با این وجود بازی F1 2017 که امسال منتشر شده است، فقط از DX11 استفاده میکند. نمونهی دیگر هم شرکت یوبیسافت است. این شرکت فرانسوی در سال ۲۰۱۶ ادعا کرد که در حال آزمایش DX12 است، اما دو بازی بزرگ این شرکت با نامهای Watch Dogs 2 و Assassin’s Creed Origins هیچکدام از DX12 پشتیبانی نمیکنند و تنها به استفاده از DX11 اکتفا کردهاند.
اما در بررسی بازیهای ۲۰۱۷ با Sniper Elite 4 شروع میکنیم که به تنها بازی امسال تبدیل شده است که نسخهی DX12 آن از نسخهی DX11 آن برروی کارتهای گرافیک AMD عملکرد بهتری داشته است. در نظر داشته باشید که دو بازی Forza Motorsport 7 و Halo Wars 2 تنها از DX12 پشتیبانی میکنند؛ بنابراین نمیتوان عملکرد این دو بازی برروی DX11 را مورد بررسی قرار داد. از طرف دیگر عناوین Total War: Warhammer 2 و Battlefront II با استفاده از DX11 سرعت بهتری را نسبت به نسخهی DX12 خود ارائه میدهند. این موضوع چندان غافلگیرکننده نیست؛ زیرا سال پیش هم بازیهای Warhammer 1 و Battlefield 1 دقیقا همین وضعیت را داشتند.
در تصاویر زیر میتوانید عملکرد ۵ بازی ذکرشده در استفاده از DX11 و DX12 را مشاهده کنید.
در حالی که Forza Motorsport 7 و Halo Wars 2 عملکردی فوقالعاده برروی رایانههای شخصی دارند، اما این دو بازی از نهایت قدرت پردازندههای چند هستهای (Multi-Core CPU) استفاده نمیکنند. وجود این مشکل به هیچوجه قابلقبول نیست؛ زیرا از نظر تئوریک، انتظار میرفت تا DX12 در این زمینه، بهتر عمل کند، اما این دو بازی فقط از ۲ رشتهی پردازنده (Thread) استفاده میکنند. بله، درست است که این دو بازی میتواند با نرخ بیش از ۱۰۰ فریم در ثانیه اجرا شود، اما کاملا مشخص است که پردازنده دچار افت بازده (به اصطلاح Bottleneck) شده است؛ در حالی که بیشتر رشتهها و هستههای پردازنده از حداکثر توان خود استفاده نمیکنند و حتی بعضی از آنها در حال استراحت هستند.
اما با این وضعیت، آیندهی DX12 چگونه خواهد بود؟ با عرضهی دو کنسول ایکسباکس وان ایکس و پلیاستیشن ۴ پرو احتمال میرود که از این به بعد، حتی سازندگان کمتری منابع خود را به API جدید مایکروسافت اختصاص بدهند. بله، کاملا درست است که استفادهی درست از DX12، باعث ارتقای عملکرد بازیها میشود و آزادی عمل بیشتری به سازندگان میدهد، اما آنطور که به نظر میرسد، این API چیزی نیست که بیشتر سازندگان در این مقطع به آن نیاز داشته یا به عبارت دقیقتر، قصد استفاده از آن را داشته باشند. مشخصا آزادی عمل بیشتر به این معناست که سازندگان باید منابع بیشتری را صرف بازسازی و بهینهسازی موتور بازیسازی خود برای بهرهمندی از این API بکنند. برای مثال قابلیت پشتیبانی از چند کارت گرافیک (Multi-GPU Support) در DX12 را درنظر بگیرید. این ویژگی برروی کاغذ بسیار جذاب به نظر میرسد، زیرا به گیمرهای PC این امکان را میدهد تا از کارتهای گرافیکی از دو شرکت متفاوت استفاده کنند. با این حال و برخلاف DX11 که دو شرکت Nvidia و AMD خودشان پیشقدم شدند و به ترتیب تکنولوژیهای SLI و Crossfire را معرفیکردند، در بازیهای DX12، سازندگان مجبورند تا تمام کارهای اضافی مربوط به Multi-GPU را خودشان انجام دهند و آن طور که از شواهد پیداست، به نظر میرسد که سازندگان حاضر به انجام این کارهای اضافی نیستند و ترجیح میدهند منابع خود را برروی بازی متمرکز کنند.
این قضیه دقیقا همان چیزی است که آقای «جورجن کتسمن» (Jurjes Katsman) مدیرعامل شرکت Nixxes در ماه فوریهی ۲۰۱۷ به آن اشاره کرده بود. کتسمن ادعا کرده بود که تغییرات حاصل از استفادهی DX12 در پردازندهها جزئی و ناچیز است؛ به خصوص برای گیمرهایی که از یک پردازندهی حرفهای و گرانقیمت استفاده میکنند یا کسانی که بازیها را با رزولوشن ۱۴۴۰p ،۴K و با بالاترین تنظیمات گرافیکی اجرا میکنند. البته کتسمن تایید کرد که با DX12 میتوان تا حدی از افت بازده (Bottleneck) پردازنده در اجراهای سنگین جلوگیری کرد و ۱۰% هم به حداکثر کارایی کارت گرافیک اضافه کرد، اما کدگذاری DX12 به قدری مشکل است که ارتقای عملکرد بازی با DX12، ارزش هزینهی چندبرابری را برای سازندگان ندارد.
DX12 تواناییهای بیشتری از فقط محاسبهی Async دارد، اما بیشتر بازیسازانی که بازیهای مبتنی بر DX12 میسازند، تنها از این مزیت DX12 استفاده میکنند. DX12 قابلیتهای بیشتری برای Multi-Tasking پردازنده ارائه میدهد، میتواند میزان استفادهی بازیها از پردازندهی مرکزی را کاهش دهد و میتواند Draw Call بیشتری را بکار ببرد. مورد آخری در بهبود اجرای بازیهای جهانباز و بازیهایی که به هر دلیلی از حداکثر قدرت سیستم استفاده نمیکنند، نقش بسیار موثری دارد. در ضمن این API میتواند دسترسی و استفادهی بازیها از کارت گرافیک را کاهش دهد؛ چیزی که کار را برای توسعهدهندگان باتجربه آسان میکند و البته ممکن است سازندگان نوپا را به دلیل بعضی پیچیدگیها بترساند!
در یک جمعبندی کلی باید بیان کنیم که در حال حاضر، DX12 وضعیت خوبی ندارد و اکثر بازیسازان بزرگ این صنعت از آن پشتیبانی نمیکنند. همانطور که «تیاگو رودریگز» (Tiago Rodriguez) برنامهنویس ۳D شرکت یوبیسافت بیان کرده است، اکثر سازندگان از DX12 راضی نخواهند بود؛ مگر اینکه فقط به فکر افزایش کیفیت اجرای بازی خود، بدون درنظر گرفتن هزینهها باشند. ضمنا رودریگز اشاره کرده است که کار و هزینه زیادی لازم است تا سرعت اجرای یک بازی DX12 با ورژن DX11 آن برابر شود؛ به همین دلیل است که استفاده از DX12 در شرایط کنونی، چندان عقلانی و منطقی به نظر نمیرسد. البته با عرضهی جدیدترین کارت گرافیک شرکت Nvidia که GTX Titan V نام دارد و از معماری Volta این شرکت رونمایی میکند، میتوان مشاهده کرد که این کارت گرافیکی به خوبی میتواند از قابلیتهای DX12 استفاده کند، اما این موضوع که در حال حاظر، فقط یک کارت گرافیک در بازار برای استفاده از این API بهینه شده است، اصلا قابل قبول نیست. در صورتی که این روند نزولی ادامه پیدا کند، DX12 که با شعار بزرگترین API برای بازیسازی معرفی شده بود، به بدترین API تولیدشده توسط مایکروسافت تبدیل خواهد شد! به عقیدهی بسیاری از کارشناسان و طرفداران، DX12 تنها به این دلیل عرضه شده تا کاربران رایانههای شخصی را مجاب به خرید ویندوز ۱۰ بکند و با شرایط اسفباری که این API دارد، این تئوری کاملا درست به نظر میرسد.
نظر شما در این مورد چیست؟ آیا شما با پشتیبانی بازیهای روز دنیا از DirectX12 موافقید؟ نظر خود را با ما به اشتراک بگذارید.
7 دیدگاه
madman
بر خلاف DX11 که کلی اسم ازش بود، این روزا DX12 به کل فراموش شده!! اصلا اسمی ازش نیست….
محمد امین باکرم
“کار و هزینه زیادی لازم است تا سرعت اجرای یک بازی DX12 با ورژن DX11 آن برابر شود”
همین یه جمله نشون میده که DX12 چه افتضاحی ـه.
البته نمیشه مشکل رو فقط گردن مایکروسافت انداخت. درسته که استفاده از این API خیلی پیچیده و سخته، اما اگه قِلِق ـش بیاد دست سازنده ها، خروجیهای فوقالعادهای میده که کار DX11 نیست.
قضیه مثل PS3 ـه. اوایل که اومده بود، اکثر سازنده ها میگفتن که معماری ـش پیچیدس و سخته واسش بازی ساخت، اما دیدیم که اواسط نسل هفتم که سازنده ها با معماری PS3 آشنا شدن، فهمیدن که با چه کنسول قدرتمندی طرفن. همین شد که اواخر نسل، همه بازی های PS3 از نظر گرافیکی واسه خودشون خدایی بودن!
DX12 هم تو همچین شرایطی ـه. احتمالش هست که عاقبت بخیر بشه. مخصوصا که معماری جدید کارتهای Nvidia همخونی خوبی با DX12 داره. شاید همین معماری Volta نجاتش بده!
saeed313
البته یه خوبی هم داره این ماجرا
تعداد بازیهای جدیدی که با reshade سازگارن کم نشدن هیچی زیادم میشن!
هر بازی میاد میشه با reshade گرافیکشو طوری سینمایی کرد که بیننده و سازنده هردو حیران شن. و البته dx12 رو ساپورت نمیکنه :))
محمد امین باکرم
Reshade چیز خیلی خوبیه و تو یه سری بازی ها مثل همین PUBG که تازه اومده یه نعمتی ـه! منتها هنوز اول راهه و استفاده ازش، پدرِ فریمریت بازی ها رو در میاره ولی واقعا تغییرات خوبی در Visibility ایجاد میکنه…
DX12 هم فعلا یه شکست به تمام معنا بوده. به شخصه Vulkan رو بیشتر قبول دارم. کافیه Wofenstein جدید رو بازی کنید تا بفهمید چی میگم.
saeed313
منم عاشق ولکانم. همون موقع که دوم جدید اومد اورجینال پی سیشو خریدم هم بخاطر دوم هم ولکان. ولفن اشتاین جدید هم عالی بود. هم گرافییک هنری هم فنی هم راندمان عالی.
reshade هم البته از نسخه 3 به بعد خیلی بهترشده و نصب و استفادش خیلی آسونتره. موقع نصب آدرس بازیو میدید افکتارو خودش موقع نصب دانلود میکنه از داخل بازی منو داره میتونید تک تک افکتارو فعال یا غیرفعال کنید. البته کارت گرافیک قوی داشته باشید افت راندمان عملا میشه نامحسوس. درعوض زیبایی خارق العاده
محمد امین باکرم
کار Reshade که درسته. خودِ سازندهی PUBG گفته ازش استفاده کنید! افت فریم ـش ارزش داره در برابر کیفیتی که ارائه میده. منتها بستگی به سیستم داره. مثلا برای کسی که داره از بازی 80 فریم میگیره، 6-7 فریم پایینتر تاثیر آنچنانی نداره، ولی کسی که بازیش رو 30 قفله، اصلا نمیصرفه…
saeed313
کاملا باهات موافقم.
reshade رو بعنوان طنز تلخی درمورد حال و روز DX12 بیان کردم. چون درحال حاظر حتی داشتن کارت گرافیک جدید و قوی و استفاده از reshade با دایرکت اکس پایینتر، مزیت و جذابیت بیشتری داره نسبت به DX12!