Se você estiver conectando um controlador de jogo USB ou sem fio ao seu PC com Windows, poderá encontrar termos como “DirectInput” e “XInput”. Mas o que eles significam e qual é a diferença? Nós vamos explicar.
Eles são APIs do controlador de jogos da Microsoft
Em computação, uma API é uma Interface de Programação de Aplicativos , que é uma maneira padronizada de dois programas se comunicarem. Nesse caso, quando você conecta um controlador ao seu PC, o Windows faz a conexão com o hardware do controlador, então a API permite que um jogo leia as entradas do controlador de maneira padronizada. Isso permite que os jogos do Windows suportem facilmente muitos tipos diferentes de controladores, em vez de ter uma colcha de retalhos de drivers e interfaces de controladores personalizados.
As duas principais APIs de entrada de jogos no Windows são chamadas DirectInput e XInput. Em outras palavras, essas APIs são como duas linguagens diferentes que um controlador de jogo pode falar. Alguns controladores podem falar apenas um “idioma” (XInput ou DirectInput), enquanto outros podem “falar” ambas as APIs em modos diferentes. Se o jogo espera XInput, mas o controlador apenas “fala” DirectInput, esse controlador não funcionará com esse jogo e vice-versa.
Aqui está uma rápida olhada nas origens de cada um:
- DirectInput: Esta API de entrada de jogos apareceu pela primeira vez em 1995 como parte do DirectX 1.0 para jogos no Windows 95, depois suportada em versões subsequentes do Windows. É uma interface legada suportada por muitos controladores de jogos para PC lançados antes de 2005, e também alguns controladores (e adaptadores de controlador retro ) após esse período.
- XInput: Esta API foi lançada em 2005 como uma forma de dar suporte aos controladores do Xbox 360 no Windows. Os controladores Xbox One e Xbox Series X|S também usam XInput no Windows. O XInput se originou como uma API exclusiva do controlador Xbox, mas muitos controladores de terceiros (não fabricados pela Microsoft) agora também o suportam. Isso significa que eles funcionarão com jogos programados para usar Xinput.
As duas APIs fazem coisas semelhantes, mas o DirectInput é mais antigo que o XInput e foi preterido pela Microsoft. Ainda assim, o DirectInput suporta alguns recursos que o XInput não suporta, o que é parcialmente o motivo pelo qual o padrão ainda está em uso. Na seção abaixo, vamos comparar e contrastar os dois padrões com mais detalhes.
Diferenças: DirectInput vs. XInput
Embora o XInput já exista há 17 anos, alguns jogos modernos ainda suportam controladores DirectInput. Uma razão é porque há uma grande base instalada de controladores legados por aí que algumas pessoas ainda gostam de usar.
Além disso, DirectInput suporta mais entradas que XInput (8 eixos, 128 botões e POV para DirectInput vs. 4 eixos e 10 botões, dois gatilhos e D-pad para XInput), o que é útil para jogos de simulação complexos, como vôo simuladores e alguns jogos de corrida, onde as pessoas constroem configurações complexas de controle do cockpit. Além disso, o Xinput suporta apenas quatro controladores. Se você precisar de mais do que isso, o DirectInput é sua melhor escolha.
As vantagens do XInput sobre o DirectInput estão principalmente no lado do desenvolvedor. A Microsoft diz que o XInput é “mais fácil de usar” e requer menos configuração para os programadores. Um desenvolvedor de jogos que cria um jogo do Xbox pode traduzir o jogo mais facilmente para o Windows com suporte ao controle do Xbox. Além disso, os controladores do Xbox vibram apenas com o XInput, e a API lida com os botões de disparo como duas entradas separadas, em vez de um único eixo positivo/negativo no DirectInput.
Em outra vitória para o XInput, a API entenderá automaticamente o layout do controlador sem precisar vincular manualmente cada botão a uma função em um jogo. Com DirectInput, o jogo não pode necessariamente assumir a forma ou o layout do controle. Com o XInput, os jogos usam um esquema de controle padrão no estilo Xbox que mapeia universalmente para todos os jogos, semelhante a um console de jogos Xbox.
Em geral, o futuro dos jogos do Windows está no XInput, mas, como muitas tecnologias herdadas do Windows, o DirectInput continua a ser usado em casos de uso de nicho. Felizmente, se você tiver um controlador DirectInput favorito que deseja usar com um jogo somente XInput, poderá usar um utilitário como o x360ce para adaptá-lo ao XInput. Feliz jogo!