DirectInput и XInput для игровых контроллеров: в чем разница?

Рука человека, держащего контроллер Xbox One.ArtSimulacra/Shutterstock.com

Если вы подключаете USB- или беспроводной игровой контроллер к ПК с Windows, вы можете столкнуться с такими терминами, как «DirectInput» и «XInput». Но что они означают и в чем разница? Мы объясним.

Это API Microsoft Game Controller.

В вычислительной технике API — это интерфейс прикладного программирования, который представляет собой стандартизированный способ взаимодействия двух программ друг с другом. В этом случае, когда вы подключаете контроллер к компьютеру, Windows подключается к аппаратному обеспечению контроллера, а затем API позволяет игре стандартизированным образом считывать входные данные контроллера. Это позволяет играм для Windows легко поддерживать множество различных типов контроллеров, вместо того, чтобы иметь лоскутное одеяло из пользовательских драйверов контроллеров и интерфейсов.

Два основных игровых API ввода в Windows называются DirectInput и XInput. Другими словами, эти API похожи на два разных языка, на которых может говорить игровой контроллер. Некоторые контроллеры могут говорить только на одном «языке» (XInput или DirectInput), в то время как другие могут «говорить» на обоих API в разных режимах. Если игра ожидает XInput, но контроллер «говорит» только на DirectInput, этот контроллер не будет работать с этой игрой, и наоборот.

Вот краткий обзор происхождения каждого из них:

  • DirectInput: этот игровой API ввода впервые появился в 1995 году как часть DirectX 1.0 для игр в Windows 95, а затем поддерживается в последующих версиях Windows. Это устаревший интерфейс, поддерживаемый многими игровыми контроллерами для ПК, выпущенными до 2005 года, а также некоторыми контроллерами (и адаптерами ретро-контроллеров) после этого времени.
  • XInput: этот API был запущен в 2005 году как способ поддержки контроллеров Xbox 360 в Windows. Контроллеры Xbox One и Xbox Series X|S в настоящее время также используют XInput в Windows. XInput возник как эксклюзивный API для контроллера Xbox, но многие сторонние контроллеры (не произведенные Microsoft) теперь также поддерживают его. Это означает, что они будут работать с играми, запрограммированными на использование Xinput.

Два API делают похожие вещи, но DirectInput старше, чем XInput, и признан устаревшим Microsoft. Тем не менее, DirectInput поддерживает некоторые функции, которых нет в XInput, поэтому стандарт все еще используется. В разделе ниже мы сравним и сопоставим эти два стандарта более подробно.

Отличия: DirectInput и XInput

Несмотря на то, что XInput существует уже 17 лет, некоторые современные игры все еще поддерживают контроллеры DirectInput. Одна из причин этого заключается в том, что существует большая установленная база устаревших контроллеров, которые некоторым людям все еще нравится использовать.

Кроме того, DirectInput поддерживает больше входных данных, чем XInput (8 осей, 128 кнопок и POV для DirectInput по сравнению с 4 осями и 10 кнопками, двумя триггерами и крестовиной для XInput), что удобно для сложных игр-симуляторов, таких как полет. симуляторы и некоторые гоночные игры, где люди создают сложные установки управления кабиной. Кроме того, Xinput поддерживает только четыре контроллера. Если вам нужно больше, DirectInput — ваш лучший выбор.

Преимущества XInput по сравнению с DirectInput в основном касаются разработчиков. Microsoft говорит, что XInput «проще в использовании» и требует меньше настройки для программистов. Разработчик игр, создающий игру для Xbox, может более легко перевести игру на Windows с поддержкой контроллера Xbox. Кроме того, контроллеры Xbox вибрируют только с XInput, а API обрабатывает триггерные кнопки как два отдельных входа вместо одной положительной/отрицательной оси на DirectInput.

Еще одна победа XInput заключается в том, что API автоматически распознает макет контроллера без необходимости вручную привязывать каждую кнопку к функции в игре. С DirectInput игра не обязательно может принимать форму или компоновку контроллера. С XInput игры используют стандартную схему управления в стиле Xbox, которая универсально сопоставляется с каждой игрой, аналогично игровой консоли Xbox.

В целом, будущее игр для Windows связано с XInput, но, как и многие устаревшие технологии Windows, DirectInput продолжает оставаться в нишевых вариантах использования. К счастью, если у вас есть любимый контроллер DirectInput, который вы хотите использовать с игрой, поддерживающей только XInput, вы можете использовать такую ​​утилиту, как x360ce, чтобы адаптировать его к XInput. Удачной игры!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.