Оглавление

Чем отличаются геймпады XInput и DirectInput

История и решение проблем

С контроллерами для консолей проблем нет — покупаешь фирменный и играешь без лишних телодвижений. На PC иная ситуация. С новыми играми сложностей не возникает, поскольку все они, как правило, имеют поддержку XInput. Старые же зачастую создавались с расчетом на DirectInput, и сейчас при их запуске можно столкнуться с тем, что кнопки не распознаются и «шалят» (скажем, возникает эффект зажатой кнопки/стика). Чтобы этого не произошло, давайте разберемся, чем отличаются XInput- и DirectInput-геймпады. И только не говорите, что контроллерам на PC не место. Как минимум для файтингов и платформеров они жизненно необходимы.

Сравнение XInput и DirectInput



API DirectInput и XInput разработаны Microsoft. Через API (интерфейс программирования приложений) программы взаимодействуют друг с другом, в нашем случае — геймпад посылает сигналы игре. DirectInput не получал значительных изменений с эпохи DirectX 8, то есть с начала 2000-х гг. XInput пришел на смену DirectInput с релизом Xbox 360 на исходе 2005 года. С тех пор XInput стал стандартом ввода для контроллеров, совместимых с консолями Xbox и PC под Windows. Хотя оба API — детища Microsoft, они не взаимозаменяемы.



Со стандартом XInput все просто. Игра моментально распознает геймпад. Назначение кнопок стандартное. Конечно, вы вольны поменять их прямо в игре, однако и по умолчанию устройство ввода работает отлично. В то же время XInput поддерживает фиксированное количество кнопок, осей, триггеров, ориентируясь на «формулу» Xbox 360. У DirectInput таких строгих ограничений нет.

В случае с DirectInput придется в каждой игре настраивать управление. С одной стороны — рутина, с другой — меняйте его как хотите. К слову, DualShock 4 определяется в Windows именно как DirectInput-устройство.

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

Решение проблем



Мы бы не написали эту статью, если бы вопрос выбора XInput и DirectInput порой не вставал ребром. Так, изначально Capcom выпустила Street Fighter 5 на PC только с поддержкой XInput. За бортом остались владельцы геймпадов и аркадных стиков для PS4 и PS3. Позже разработчики исправились, подготовив соответствующий патч.



А еще позже, в 2019 году, Capcom удалила из SF 5 поддержку DirectInput-устройств ради оптимизации. Неприятно, но не приговор: можно воспользоваться программой x360ce (эмулятор геймпада Xbox 360, благодаря которому GTA 5 реально пройти на рулевом колесе Logitech) или залезть в глубины Steam. В клиенте нажмите на меню «Steam» в левом верхнем углу, перейдите к «Настройкам», выберите пункт «Контроллер» и нажмите «Основные настройки контроллера». В открывшемся окне отрегулируйте, к примеру, свой DualShock 4 — Steam запомнит ваши данные, а дальше геймпад станет без нареканий функционировать и в классических проектах (вроде Bully), и в новинках.



Напоследок повторимся: XInput-геймпад в два счета найдет общий язык практически с любой игрой, вышедшей с 2006 года (если там вообще предусмотрена поддержка контроллера). У DirectInput-устройств охват уже, что решается отладкой через x360ce или Steam.

Читайте также:


Обсудить