С контроллерами для консолей проблем нет — покупаешь фирменный и играешь без лишних телодвижений. На 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.
Читайте также:
- Что лучше: NVIDIA GeForce или AMD Radeon ?
- 12 терафлопс: собираем компьютер с мощностью новых консолей
- Какой VR-шлем выбрать?