Documentação do Steamworks
Conceitos gerais

Entrada Steam

O termo "Entrada Steam" se refere a toda a coleção de programas, dispositivos e utilitários de configuração que o Steam usa para se comunicar com jogos.

Configurador de controles do Steam

O configurador de controles do Steam (SIC) é integrado ao cliente Steam e fica entre o jogador e o jogo/aplicativo. O SIC recebe a entrada do dispositivo de entrada e o traduz de forma apropriada, de acordo com as configurações do jogador, antes de passá-la ao jogo.

O SIC pode ser usado de duas formas: modo clássico e modo nativo.

Modo clássico

O modo clássico é um modo de compatibilidade projetado para jogos que não implementaram a API da Entrada Steam. Nesse caso, o SIC funciona como um mapeador de entradas robusto que qualquer jogador pode usar para qualquer jogo no Steam.

O jogador pode remapear qualquer entrada física para qualquer outra entrada física — como fazer com que o botão "A" simule a tecla "Enter", fazer com que pressionar o gatilho analógico esquerdo até o fim simule um clique do mouse etc. Esse modo funciona com qualquer dispositivo de entrada compatível, não apenas com o Controle Steam.

O modo clássico é ótimo para usar com jogos que nunca foram compatíveis com a API, mas há limitações. Primeiro, jogos feitos de forma que um controle e mouse não possam ser usados simultaneamente terão vários problemas quando a configuração viola essa limitação. Além disso, o jogo não terá ideia de que está usando o configurador (por estar apenas recebendo as entradas de hardware simuladas pelo configurador), então os ícones das entradas na tela não serão os dos botões que deverá usar.

Modo nativo

No modo nativo, o jogo recebe os dados de entrada diretamente do configurador na forma de "ações". A ideia é que o jogo não tenha conhecimento das entradas que levam a essas ações, mas apenas de que estão sendo disparadas. Todas as configurações de controle são delegadas ao configurador de controles do Steam. Dito isso, o jogo pode requisitar dados por uma API especial para saber os controles físicos associados a cada ação, de forma a exibir os ícones apropriados na tela.

API da Entrada Steam

A API da Entrada Steam é a interface de programação de aplicativos que desenvolvedores usam para se comunicar diretamente ao configurador de controles do Steam no modo nativo. A API não é necessária para o modo clássico.

Consulte a documentação completa da API aqui: ISteamInput.

Configuração do controle

Jogadores podem configurar mapeamentos de entrada completamente personalizados para qualquer jogo na biblioteca, usando o modo nativo, clássico ou ambos. Esses mapeamentos são chamados de "configurações do controle" e um jogador pode criar quantas quiser para um único jogo, assim como compartilhá-las com outros jogadores on-line.

Hierarquia de entradas

Entradas físicas

Uma "entrada física" é um mecanismo físico em qualquer dispositivo de entrada com o qual o usuário interage para gerar dados de entrada para o computador. Há tanto mecanismos digitais quanto analógicos, como botões, alavancas, direcionais, botões superiores, gatilhos, interruptores, chapéus, trackballs, touchpads, giroscópios etc.

Mergulharemos em conceitos mais abstratos adiante, então lembre-se de que "entradas físicas" são as pecinhas do controle que você mexe com as mãos (ou até mesmo com os pés, se preferir).

Fontes de entrada

Uma "fonte de entrada" é uma região do controle que pode ser vista como uma unidade modular maior, na qual um de vários modos diferentes pode ser aplicado para alterar o modo em que dados são enviados.

Não venha dizer que não avisamos que mergulharíamos na abstração!

Em termos concretos: qual a diferença entre um direcional e quatro botões frontais em uma disposição diagonal?

input_dpad.pnginput_bpad.png

Ambos possuem quatro "botões" digitais, mas o mecanismo de muitos direcionais impedem o pressionamento de cima+baixo ou esquerda+direita ao mesmo tempo. Contudo, a Entrada Steam permite forçar as restrições de um direcional nos seus botões frontais.

Logo, por mais que o direcional e o grupo de botões frontais sejam cada um compostos por quatro "entradas físicas" independentes, é conveniente considerá-los unidades singulares, permitindo que mudemos como funcionem com relação às entradas contidas.

A lista completa de "fontes de entrada" reconhecidas é:

  • Trackpad esquerdo
  • Trackpad direito
  • Trackpad centralizado
  • Alavanca esquerda
  • Alavanca direita
  • Botões ABXY
  • Direcional
  • Gatilho esquerdo
  • Gatilho direito
  • Giroscópio
  • Interruptor
AVISO: A fonte de entrada "Interruptor" é um tipo genérico para todas as entradas físicas que não fazem parte de outro grupo, como os botões Back e Start, botões superiores e "pedais" traseiros.

Consulte também:

Modos da fonte de entrada

Fontes de entrada podem ter modos diferentes aplicados, que mudam o comportamento. Esses são chamados de "modos da fonte de entrada" e por mais que sejam úteis para entradas digitais, eles são mais usados em controles analógicos, em especial os touchpads, que podem ser configurados de várias formas diferentes.

A lista completa de "modos da fonte de entrada" reconhecidos é:

  • Direcional
  • Quatro botões
  • Mouse absoluto
  • Mouse relativo
  • Alavanca (movimentação)
  • Mouse similar a alavanca
  • Alavanca (câmera)
  • Roda do mouse
  • Gatilho
  • Menu de toque
  • Alavanca similar ao mouse
  • Região do mouse
  • Menu radial
  • Interruptores

Consulte também:

Em resumo:

Entradas físicas:
Os objetos físicos com os quais você interage no dispositivo. Ex.: o botão A, apertar "para cima" no direcional etc.

Fontes de entrada:
Um agrupamento de entradas físicas em uma unidade modular maior. Todo o direcional, os quatro botões frontais, a alavanca esquerda como um todo (incluindo o clique) etc.

Modos da fonte de entrada:
Um comportamento específico sendo imposto a uma fonte de entrada. Ex.: "Faça os botões frontais agirem como um direcional", "Faça a alavanca esquerda agir como quatro botões frontais" etc.

Ações

Ações são os eventos que a API da Entrada Steam usa para orquestrar tudo. No modo nativo, o jogo não recebe um evento "Botão A pressionado", apenas um evento "Pular" (ou o que for), e o tipo de entrada que faz "Pular" é escolhido pelo jogador.

Ações digitais

Ações digitais são o tipo de ação mais simples e comuns, estando ligadas ou desligadas. O jogo simplesmente verifica repetidamente e observa o estado dessas ações.

Ações analógicas

Ações analógicas têm um ou mais eixos de dados e são usadas para coisas como movimentação suave de personagens, direção de carros, controle de câmeras etc. Ações usadas com uma alavanca ou mouse costumam ter dois eixos, X e Y, mas ações analógicas unidimensionais também são possíveis (como as usadas com gatilhos analógicos); nesses casos os dados da ação também terão dois eixos, mas o eixo Y sempre será zero.

Nome da ação

Todas as ações precisam de um nome de identificação, como "pular" ou "soco". Essas strings são separadas dos valores exibidos ao jogador (os "Rótulos da ação", que podem ser localizados).

Handles de ação

Verificar ações usando strings é custoso e ineficiente, então, ao inicializar a API, o jogo deverá registrar todas as ações pelo nome, recebendo handles de ação (que contêm números inteiros) como valor de retorno.

Origem da ação

Uma "origem da ação" é uma string que identifica o tipo de entrada associado a uma dada ação na configuração do controle do jogador.

Conjuntos de ação

Um conjunto de ações é um agrupamento lógico de ações associadas. Apenas um conjunto de ação pode estar ativado em um dispositivo por vez. Por exemplo, é possível criar um conjunto de ações "menu" ativo apenas com algum menu aberto, assim como conjuntos "carro", "a pé" e "avião" para um jogo como GTA V, que tem várias formas de se locomover. Conjuntos de ação existem tanto no modo clássico quanto no modo nativo. No modo nativo, os conjuntos são definidos pelo desenvolvedor e o jogo fará chamadas à API para designar o conjunto ativo. No modo clássico, o conjunto de ação deve ser alterado manualmente pelo jogador. Em ambos os casos, conjuntos de ação são uma forma de liberar espaço no controle, tirando a necessidade de vincular permanentemente todas as ações que podem vir a ocorrer no jogo, não importa o contexto.

Camadas de conjuntos de ações

Camadas de conjuntos de ações são conjuntos opcionais de ações que podem sobrepor um conjunto de ações existente. Diferentemente de conjuntos de ações, camadas se baseiam nas ações do conjunto sobre o qual foi aplicado e não substitui o que já está configurado, realizando apenas pequenas modificações. Essas modificações podem alterar configurações e/ou alterar ou remover comandos do conjunto de ações base. É possível ter mais de uma camada aplicada simultaneamente, mas serão aplicadas uma por uma.

Para mais detalhes, consulte Camadas de conjuntos de ações.

Resposta física

Além do que ocorre na tela, alguns controles têm recursos para responder às ações por meio de vibrações e luzes.

Resposta tátil

Permite sensações físicas com maior nuance, que ajudam o jogador a orientar onde as mãos e dedos estão posicionadas em grandes superfícies de toque, assim como passar a sensação de movimento, como o momento de uma trackball. A resposta tátil está disponível no Controle Steam e em alguns controles para Nintendo Switch. Dispositivos incompatíveis ignorarão chamadas à API que causam resposta tátil.

Vibração

Uma forma mais tradicional de resposta física, a vibração é causada por motores internos que fazem o controle se mexer. Esse recurso está disponível nos controles DUALSHOCK 4 e de Xbox (assim como vários dispositivos genéricos compatíveis com PlayStation 4 ou XInput). O Controle Steam não possui vibração, mas pode emular usando a resposta tátil (logo respondendo a chamadas à API que causam vibração).

LED

O Controle Steam e o DUALSHOCK 4 têm um LED no controle. A luz do Controle Steam sempre é branca, mas o DUALSHOCK 4 vem com um LED colorido completamente programável. Ambos os dispositivos responderão a chamadas à API que alteram a cor da luz, mas o Controle Steam converterá para valor monocromático e a usará apenas para alterar o brilho, enquanto o DUALSOCK 4 a usará para controlar a cor e o brilho. Dispositivos incompatíveis ignorarão chamadas à API que alteram o LED.