Вы любите современные компьютерные игры? Если да, вам наверняка знакомо такое слово, как DirectX.
По своей сути, DirectX являет набор стандартизованных интерфейсов, облегчающих разработку приложений (не обязательно игровых) по работе с компонентами компьютера. Раньше производители устройств — будь то видеокарта или звуковая карта — действовали, что называется, «кто во что горазд». Разработчикам игр приходилось самостоятельно разбираться с принципом работы и добавлять поддержку в свои проекты.
Если посмотреть системные требования игр начала-середины 90-ых, можно встретить что-то вроде такого: видеоадаптер VGA, Sound Blaster совместимая звуковая карта. Если разработчик внедрял поддержку других стандартов или устройств, указывались и они.
С одной стороны, подобный подход позволял выжать максимум при должной оптимизации, с другой — разбираться со спецификой работы каждой «железки» сомнительное удовольствие. Но была и третья сторона: выпущенная Windows 95 накладывала слишком много ограничений по доступу к компонентам и быстродействию в частности. Это вынуждало разработчиков продолжать выпускать игры под DOS.
Microsoft с этим мириться не хотела. Так появился DirectX.
Теперь разработчикам не нужно было задумываться о принципах реализации каких-то вещей. Был стандартизованный интерфейс, который предписывал устройствам единообразно делать некие вещи. Программист не задумывался о тонкостях реализации, он просто отправлял данные и получал то, что ожидал.
В общем-то, всё было хорошо. Пока не появился Windows 10. С этого момента момента Microsoft занялась планомерным истреблением всего «инакомыслящего». Новые процессоры официально поддерживаются только в этой системе. Новая версия DirectX 12 тоже. Даже обновлённый браузер Edge работает лишь под «десяткой». А голубой мечтой «Редмондского гиганта» стало простое желание видеть все новые игры работающими только под DirectX 12 (читай, Windows 10).
В июне 2016 года, после выхода четырёхсотой линейки видеокарт от AMD, фанаты фирмы стали ванговать скорейшее наполнение рынка играми под «DX12 only». А всё потому, что видеокарты от NVidia показывали себя хуже. И вот, прошло уже 2 года, без квартала. Что мы имеем?
Самое главное, Microsoft проделала огромную работу по навязыванию пользователям своей новой системы. По разным источникам, доля Windows 10 составляет от 34 до 43,5%. Ещё одна популярная операционная система Windows 7 имеет долю в 41,6%.
С точки зрения бизнеса очевидно, что создавать программные продукты только под новую ось не выгодно — это потеря минимум половины аудитории. Посему, часть разработчиков вообще не заморачивается с DirectX 12 — зачем, если интерфейсы обратносовместимы и Windows 10 прекрасно тащит проекты под старый добрый DirectX 11?
Некоторые разработчики всё же добавляют своим играм поддержку DX12, но здесь нужно понимать, что это именно поддержка, а не полноценная разработка. И поддержка эта порой либо не даёт ничего, либо наоборот ухудшает производительность.
На данный момент число игр, поддерживающих DirectX 12, составляет менее 30 штук. А игры, поддерживающие только DX 12, можно пересчитать по пальцам рук. Это проекты, где издателем выступает Microsoft. Список всего безобразия есть тут.
Наиболее примечателен Quantum Break. Он должен был стать первой игрой, работающей только на DirectX 12, и сперва так и было. Потом игра вышла в сервисе Steam, для неё «завезли» поддержку DirectX 11 и… внезапно, игра стала работать на 20–33% быстрее! На одинаковом разрешении, с одними и теми же настройками — и такой существенный рост производительности.
Тут не нужно быть 7 пядей во лбу, чтобы сообразить, под какой интерфейс игра изначально разрабатывалась. Очевидно, DirectX 12 решили прикрутить в конце по настоянию издателя. Но случилось как в анекдоте: «ну не шмогла я».
Так что мы имеем сейчас? Нужен ли современным играм DX 12?
Пока можно однозначно утверждать, что это совершенно не обязательно. Если вы, конечно, не фанат конкретной игры из таблицы.
Список игровых эксклюзивов под DirectX 12:
днём интернета
шоколадкой для работы мозга
коробочкой ароматного чая для бодрости
продлением хостинга на +1 месяц