Quão padronizadas são as configurações de joystick / gamepad?

7

No momento, estou trabalhando na entrada do meu jogo.

O único controlador que possuo é um XBOX 360.

Pelo que posso ver, se o manche de um controlador tem um eixo Z, na verdade, esses são os gatilhos.

Essencialmente, eu estou me perguntando se de um controlador para o próximo, isso será consistente?

jmasterx
fonte

Respostas:

3

Os joysticks e dispositivos de entrada alternativos tendem a variar bastante na maneira como expõem suas entradas aos drivers, portanto nem sempre o eixo Z analógico corresponde aos gatilhos (por exemplo, se os gatilhos do controlador não tiverem analógico valores de entrada, eles podem ser apenas botões adicionais).

A API usada para acessar os joysticks pode fazer parte do trabalho para você e tentar homogeneizar os dados do controlador, mas isso depende muito da API e nem sempre é feito corretamente, infelizmente.

Parece que você está em uma plataforma Windows. O XInput suporta apenas controladores do tipo Xbox, a "próxima melhor coisa" é provavelmente o DirectInput, mesmo que seja um pouco longo e parecido com o COM.


fonte
Gostaria de acrescentar que uma razão técnica para usar XInput para 360 controladores é que DirectInput não suporta adequadamente gatilhos da almofada 360 ( fonte )
NoobsArePeople2
1

Por uma questão prática, nos sistemas operacionais Windows e Mac, diferentes gamepads expõem seus controles por meio de mecanismos muito diferentes.

Sobre a única coisa com a qual você pode contar é que, se houver vários manípulos analógicos, o esquerdo será o número zero e os botões digitais 0 e 1 serão os botões de face acessados ​​pelo polegar direito.

Tudo o resto parece variar de fabricante para fabricante e até de dispositivo para dispositivo. Esta é uma das principais razões pelas quais os jogos de computador precisam absolutamente ter um recurso de "configuração do controlador", que permite aos usuários mapear os botões do seu gamepad e os eixos analógicos para a funcionalidade do jogo. Atualmente, não há outra maneira de fazer os jogos funcionarem corretamente para todos os jogadores com todos os gamepads.

Trevor Powell
fonte
1

Não há praticamente nenhuma padronização. Mesmo se você apenas pegar o controlador padrão para cada plataforma, todos eles mapeiam os controles de maneira diferente e o comportamento esperado difere (por exemplo, qual dos botões deve voltar, qual é a confirmação etc.). E mesmo que houvesse algo comum em todos os controladores, e os outros controles - os usuários podem querer usá-los, especialmente se escolherem esse controlador especialmente para os extras.

No mínimo, você precisa testar com os principais controladores individuais que deseja oferecer suporte. Idealmente, você precisa ser capaz de remapear qualquer botão, gatilho ou eixo para qualquer ação apropriada no jogo, depois enviar com os padrões para controladores comuns e permitir que os jogadores configurem controladores de acordo com a sua satisfação.

Kylotan
fonte