DirectInput и XInput какая разница?

DirectInput и XInput какая разница?

Подключая геймпад к ПК с Windows, вы можете встретить такие термины, как «DirectInput» и «XInput». Так что это такое, и зачем нужно?

API Microsoft Game Controller.

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

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

Краткая история происхождения обоих API:

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

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

XInput существует уже 17 лет, но многие современные игры все еще включают поддержку этого API. В основном для поддержки устаревших устройств ввода.

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

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

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

DirectInput и XInput какая разница?
33
3 комментария

Отличная статья!

2
Ответить

Стараемся!

1
Ответить