Documentação do Steamworks
Primeiros passos para desenvolvedores

Visão geral


A API da Entrada Steam foi projetada para que o jogo tenha compatibilidade total com controles compatíveis com a Entrada Steam de forma fácil. Um jogo com compatibilidade total:

  • Usa os ícones do controle atual ao exibir quais botões usar;
  • Usa ações realizadas pelo jogador no jogo na tela de configuração de controles do Steam, e não teclas ou botões;
  • Possui uma configuração oficial para o controle publicada;
  • Não impede que o usuário personalize os controles. Ou seja, permite usar entradas de mouse, teclado ou controle simultaneamente;
  • Usa a API para exibir a interface de usuário de entrada de texto quando for necessária entrada do teclado (ex.: ao nomear um personagem);
  • Não tem inicializadores que obrigam o uso de mouse ou teclado — ou, melhor ainda, não possui inicializador algum.

Para garantir que usuários tenham uma boa experiência no sofá, aconselhamos:

  • Ter uma interface de usuário legível a alguns metros de distância. Por via de regra: quando o jogo estiver rodando a 1920x1080, as fontes não devem ser menores que 24 px;
  • Iniciar o jogo em tela cheia se o usuário estiver usando o modo Big Picture (a variável de ambiente "SteamTenfoot" estará definida);
  • Se possível, na primeira inicialização, detectar a resolução da tela do usuário e usá-la para o jogo.

Casos de uso comuns

Estou integrando a API da Entrada Steam antes de lançar o jogo


Ótimo! Siga as direções técnicas na seção Integração da API da Entrada Steam.

Estou integrando a API da Entrada Steam juntamente com outras bibliotecas de entrada


Não há problema em integrar bibliotecas convencionais de entrada de controles juntamente com a Entrada Steam; é uma situação comum se estiver integrando a API da Entrada Steam depois do lançamento ou se o jogo for lançado em diversas plataformas. Coisas para se ter em mente:

1. Use ações analógicas com cuidado
Falaremos disso em detalhes mais adiante, mas, resumindo:
  • Sempre inclua uma ação similar a mouse para um cursor ou controles de mira precisa. Talvez não seja preciso usar a entrada do tipo mouse em títulos de SHMUP de controle duplo ou Esportes, nos quais a posição da alavanca é usada para mira direcional.
  • Evite usar o mouse do sistema (opção "os_mouse"), a menos que tenha um bom motivo para tal. Determinar se a entrada vem de um mouse real ou de um controle é um importante aspecto das práticas recomendadas para uma boa experiência de usuário (UX);
  • Das duas, uma: deixe que o configurador informe a sensibilidade (i.é., não filtre os dados recebidos da Entrada Steam) OU use uma opção de sensibilidade dedicada para a Entrada Steam separada daquela do mouse do sistema.

2. Seja consistente com mira automática em alavancas
Caso aplique mira automática ou auxílio de mira em alavancas XInput, considere aplicá-las em dispositivos de Entrada Steam também, pelo menos para modelos de controle tradicionais configurados pela Entrada Steam. Chame a função GetInputTypeForHandle para determinar o tipo de modelo de um controle específico ou implemente ações independentes de câmera similar a mouse ou alavanca.

3. Use a biblioteca SDL versão 2.0.8 ou superior, se possível
Se estiver usando a biblioteca SDL (Simple DirectMedia Layer), uma das bibliotecas mais usadas por jogos multiplataforma para tratar recursos como entrada, confirme que está usando a versão mais recente ou, no mínimo, a versão 2.0.8 ou superior. Essa versão permite que o Steam diga para a SDL ignorar a entrada de controles configurados pela Entrada Steam, evitando entrada dupla.

4. Tenha um plano para controles de Xbox
Caso o jogo já tenha sido lançado, use a API XInput e não há planos para deixar de usá-la, é uma boa ideia deixar que os controles de Xbox usem essa API por padrão. Se o jogo oferecer um modo multijogador local, confirme que ele aceita a entrada das duas APIs ao mesmo tempo ou então faça todos os controles usarem a Entrada Steam.

O jogo não usa API da Entrada Steam, mas quero que funcione bem com a Entrada Steam


Antes de tudo, recomendo a leitura do artigo (em inglês) The Five Golden Rules of Input (As cinco regras de ouro da entrada), de Zach Burke.

Resumindo:

  1. Ícones na tela devem corresponder ao dispositivo de entrada;
  2. O cursor do mouse deve corresponder ao dispositivo de entrada;
  3. Todos os dispositivos devem funcionar sempre;
  4. Deve ser possível navegar por menus com um direcional, analógico e mouse;
  5. Um controle desconectado deve pausar o jogo.

Essas são boas práticas para se seguir sempre que possível. Queremos enfatizar esta parte:

A entrada de controles e do mouse deve ser permitida simultaneamente

A maioria dos jogos permite a entrada de mouse ou de controles, mas não ambas ao mesmo tempo; essa é a maior causa de problemas de compatibilidade com o sistema de Entrada Steam.

Além disso:

  1. Defina uma configuração de controle padrão para todos os tipos de controles
    Dessa forma, o Steam não precisa solicitar que o usuário selecione uma configuração ao iniciar o jogo. Aliás, não é necessário oferecer configurações distintas para os controles para Xbox 360 e para Xbox One — a configuração de um funciona no outro;
  2. Ative a Entrada Steam para controles para os quais não possui compatibilidade nativa
    Se o jogo não tiver compatibilidade nativa para esses tipos de controles, use o site de parceiros para ativar a Entrada Steam para tais dispositivos. Consulte a última parte desta seção para mais detalhes;
  3. Se não for possível permitir controle e mouse simultâneos...
    ...pelo menos permita a configuração da zona morta, aceleração e sensibilidade da alavanca. A emulação de alavanca pelo trackpad funciona jogando a alavanca virtual para um lado rapidamente, logo, ela depende dessas configurações. Para um melhor resultado, permita sensibilidades altíssimas, zonas mortas zeradas e uma curva de aceleração linear. As configurações de controle do jogo Sombras da Guerra são um bom exemplo.
  4. Permita que usuários selecionem ícones de Xbox ou PS4 no menu ou detecte o tipo do dispositivo automaticamente pela API
    Quando o Steam enviar entradas de controle, elas serão interpretadas pelo jogo como vindo de um controle de Xbox em vez do dispositivo verdadeiro. Isto é útil, já que permite ao jogador usar dispositivos que normalmente não funcionariam. No entanto, também significa que coisas como verificar pelo ID do dispositivo USB não funcionarão, e você precisará chamar uma função auxiliar do Steam. É importante observar que mesmo controles com os quais o jogo é compatível também podem ser usados por intermédio da Entrada Steam, seja porque o usuário está transmitindo o jogo pelo Steam Remote Play ou porque usou a Entrada Steam para reconfigurá-los.

Saiba mais na página Emulação de controle da Entrada Steam — Práticas recomendadas.

Entrada de texto


A entrada de texto por teclado virtual não é tecnicamente parte da API ISteamInput, mas sim da API ISteamUtils.

Referências rápidas:

Essas funções podem ser úteis mesmo se você não estiver usando a Entrada Steam.

Integração da API da Entrada Steam


O processo de implementação não é nada complexo e não deve levar muitos dias. São quatro passos:

  1. Em um editor de texto, crie um arquivo de ações do jogo que diga ao Steam quais ações do jogo podem ser associadas ao controle;
  2. No Steam, use a interface de usuário de configuração de controles para criar a configuração padrão;
  3. No jogo, use a API da Entrada Steam para ler ações do controle e recuperar os ícones apropriados para exibição;
  4. Atualize o depot do jogo com os binários novos e publique a configuração como sendo a oficial.

1º passo — Criação de arquivo de ações do jogo


Primeiro baixe o arquivo de ações do jogo (arquivo IGA) inicial. Coloque-o no diretório "<Diretório de instalação do Steam>\\controller_config" (crie o diretório se não existir). Renomeie o arquivo para: "game_actions_X.vdf", sendo X o AppID do jogo no Steam. Se não souber o AppID do jogo, consulte-o no site de parceiros Steamworks.

Abra o arquivo no seu editor de texto favorito. O arquivo usa um formato padrão da Valve chamado KeyValues, que é simples e de fácil leitura. Pode ser útil baixar um dos nossos arquivos de modelo ou o arquivo IGA do Portal 2 para referência.

Para mais detalhes, consulte: Arquivo de ações do jogo (arquivo IGA)

Formato do arquivo


Arquivos IGA contêm uma seção "actions", que deve listar todos os conjuntos de ações do jogo (IGASs). Arquivos IGA contêm uma seção "actions", que deve listar todos os conjuntos de ações do jogo (IGASs). Para cada IGAS, a interface de usuário de configuração da Entrada Steam adicionará uma aba que permite ao jogador personalizar como essas ações são vinculadas ao controle.

Uma entrada de IGAS no arquivo IGA deve conter um par de chave e valor "title", e as seguintes subseções: "StickPadGyro", "AnalogTrigger" e "Button". Ambas as seções "StickPadGyro" e "AnalogTrigger" contêm uma lista de ações que o jogador só pode associar a uma alavanca/touchpad/giroscópio e a um gatilho analógico respectivamente. A seção "Buttons" contém ações que só podem ser vinculadas a entradas digitais (como os botões ABXY físicos, um trackpad no modo ABXY ou um gatilho que não está sendo usado para uma ação do tipo AnalogTrigger).

Definição das ações e conjuntos de ações do jogo

Pare um minuto e reflita sobre a funcionalidade do seu jogo — quantos modos distintos há? Crie um conjunto de ações para cada momento ou lugar que deverá ter controles distintos. A maioria dos jogos possui dois conjuntos, um para menus e outro para o jogo em si, mas muitos precisarão de mais. Considere criar conjuntos de ações para casos especiais, como direção de veículos e menus especializados, como uma tela de mapa ou inventário.

Mas nem tudo precisa ter um conjunto de ações distinto de todos os outros; é possível usar camadas para modos que tenham controles similares. Por exemplo, se for possível pilotar carros e barcos no jogo, crie um conjunto de ações "veiculo" e camadas "barco" e "carro", que serão aplicadas sobre o conjunto conforme necessário. Camadas retêm as configurações do conjunto de ações base e facilitam a compreensão e edição de configurações pela equipe de desenvolvimento e por usuários.

Para mais informações sobre camadas de conjuntos de ações, consulte o artigo Camadas de conjuntos de ações.

Limites na quantidade de ações

Atualmente, é possível definir até 16 ações analógicas e 128 ações digitais. É importante saber que ações podem ser compartilhadas entre conjuntos de ações, então na maioria dos casos você não chegará perto do limite. O limite não é definitivo, então se tiver uma boa razão para precisar de mais, fale conosco.

Ações do tipo Button


Ações do tipo "Button" seguem o formato:

"<nome da acao>" "#<chave de traducao>"

<nome da acao> é o nome interno usado para se referir à ação no código do jogo ao comunicar-se com a API da Entrada Steam. <chave de traducao> deve ser o nome de uma entrada na seção "localization" (consulte a seção "Adição de tradução"). Não se esqueça de adicionar o caractere "#" no início da chave de tradução.

Ações do tipo AnalogTrigger


O formato para ações do tipo "AnalogTrigger" é igual ao de ações do tipo "Button". Ações do tipo "AnalogTrigger" são as ações interpretadas como entradas analógicas pelo jogo, como aceleração de um veículo. Se não tiver nenhuma ação que use esse tipo de entrada, basta deixar a seção vazia. A interface de usuário permitirá que jogadores atribuam qualquer ação do tipo "Button" aos gatilhos físicos se não estiverem sendo usados para uma ação "AnalogTrigger".

Ações do tipo StickPadGyro


Ações do tipo "StickPadGyro" seguem o formato:

"<nome da acao>" { "title" "#<chave de traducao>" "input_mode" "<modo analogico>" }

[code-inline]<nome da acao>[/code-inline] e <chave de traducao> são iguais aos do formato "Button". <modo analogico> nos diz como interpretar os dados recebidos dos controles físicos, antes de passá-los ao jogo pela API da Entrada Steam.

Valores possíveis para <modo analogico>:

  • "absolute_mouse" — Para quando espera que a ação se comporte como um mouse. Útil para câmeras em primeira ou terceira pessoa ou um cursor do mouse.
  • "joystick_move" — Para quando usar a ação para mover um personagem.

"absolute_mouse" X "joystick_move"

Que fique extremamente claro: ao criar uma entrada de câmera para um jogo em primeira/terceira pessoa ou qualquer ação que use o cursor do mouse, sempre inclua uma ação do tipo "absolute_mouse" e reaja a deltas como se fosse um mouse, pois os dados 1:1 são essenciais para implementar uma entrada de qualidade de mira por giroscópio ou trackpad. A Entrada Steam pode converter a entrada da alavanca de um controle em "absolute_mouse" para você. No entanto, devido a curvas de aceleração e zonas mortas aplicadas no jogo, a conversão no sentido contrário não é possível.

Não há problema em pode incluir uma ação de estilo "joystick_move" caso queira que a mira com a alavanca funcione exatamente como as versões do jogo para consoles, mas teste que o jogo aceite simultaneamente as entradas "absolute_mouse" e "joystick_move". Desta forma, controles de PlayStation e de Nintendo Switch poderão mirar com o giroscópio e com a alavanca ao mesmo tempo. Também aconselhamos implementar uma ação digital "Reiniciar câmera" para recentralizar a posição vertical da câmera. Caso o jogo ofereça assistência de mira para controles XInput, aplique a mesma lógica à entrada da alavanca por meio da API da Entrada Steam e considere oferecê-la em menor intensidade caso a mira seja controlada pelo trackpad/giroscópio.

Há uma configuração opcional para ações do tipo StickPadGyro que usam o modo "absolute_mouse". Se definir a chave "os_mouse" com valor "1", a entrada do jogador será também repassada ao SO. Útil se tiver um cursor do mouse do SO visível que deve ser controlado pela ação.

Por exemplo:

"menu_mouse" { "title""#Menu_Mouse_Titulo" "input_mode""absolute_mouse" "os_mouse""1" }

Cuidado

  1. Não é aconselhável usar a opção "os_mouse" para controle de câmera. Se for difícil mexer em certas partes do jogo, lembre-se de que é possível ter ações analógicas exclusivas para o menu, separadas do conjunto de ações para o jogo em si;
  2. Usar "os_mouse" fará com que a entrada do controle seja afetada pela configuração de sensibilidade do mouse do jogo e só funcionará para um jogador local.

1.1 — Adição de tradução


A seção "localization" do arquivo IGA contém uma lista de idiomas, cada um deles é uma seção com chaves e valores de tradução. Por exemplo:

"localization" { "english" { "Acao_Pular" "Jump" "Acao_Camera""Camera" } "brazilian" { "Acao_Pular" "Pular" "Acao_Camera""Câmera" } }

As ações no seu arquivo IGA devem então especificar os nomes se referindo à chave de tradução desejada, precedida pelo caractere "#". Seguem ações de exemplo usando as chaves de tradução acima:

"StickPadGyro" { "Camera" { "title" "#Acao_Camera" "input_mode""absolute_mouse" } } "Button" { "Jump" "#Acao_Pular" }

Se o idioma de execução do jogo não for encontrado na seção de tradução, o idioma inglês será usado no lugar. Se não houver tradução para inglês, a string será exibida como está no arquivo. Para mais informações sobre os idiomas compatíveis, confira a documentação dos Idiomas disponíveis.

1.2 — Títulos e descrições


Configurações também precisam de um título e descrição traduzidos. Se estiver criando apenas uma configuração oficial, não é necessário defini-los — o Steam usará um título e descrição padrão automaticamente. Mas, se quiser ter várias configurações oficiais, será necessário informar títulos e descrições traduzidos para cada uma.

Títulos e descrições de configurações devem ser listados junto às chaves de tradução. A chave do título deve começar com "Title_", e a da descrição, com "Description_". Por exemplo:

"localization" { "brazilian" { "Title_Config1" "Configuração oficial" "Description_Config1" "Esta configuração foi criada pelos desenvolvedores do Jogo X." "Title_Config2" "Configuração oficial — canhotos" "Description_Config2" "Esta configuração foi criada pelos desenvolvedores do Jogo X para usuários canhotos." "Acao_Pular" "Pular" "Acao_Camera" "Câmera" } }

Quando quiser publicar uma configuração (consulte 4º passo — Publicação), será possível selecionar qual desses títulos e descrições traduzidos deseja usar.

2º passo — Criação de uma configuração padrão


Com o arquivo IGA criado, no diretório correto e com o nome correto para o AppID, você está pronto para criar uma configuração.

Inicie o Steam no modo Big Picture e acesse a página de detalhes do jogo.

Selecione "Gerenciar jogo"; e então "Configuração do controle". Se houver alguma mensagem de erro, ela estará identificando problemas no arquivo IGA, e você deverá corrigi-los — o erro mais comum é esquecer de fechar aspas ou chaves.

Não havendo erros, uma configuração do controle vazia para o jogo deve ser exibida, com as ações devidamente listadas. Use a interface de usuário para criar uma configuração padrão. Não se esqueça de configurar padrões para todos os conjuntos de ação, não apenas o primeiro.

Depois de criar uma configuração, salve-a localmente. Não a publique agora, porque o jogo ainda não está pronto para processar IGAs.

3º passo — A API da Entrada Steam


Confirme que está usando a versão mais recente da API do Steamworks — baixe-a na página Visão geral da API do Steamworks.

A Entrada Steam fornece mapeamentos de controles para cada aplicativo. O mapeamento ativo será sempre o do aplicativo cuja janela está em primeiro plano. Isso pode dificultar a depuração do controle, já que o controle mudará de configuração quando chegar em um ponto de parada no depurador. Há duas formas de fazer o Steam sempre usar o mapeamento de um aplicativo para fins de depuração. A primeira é acessar o seguinte URL do Steam:
steam://forceinputappid/<AppID do jogo (ou 0 para restaurar a operação normal)>

e a segunda é adicionar os parâmetros de linha de comando a seguir ao atalho do Steam:
-forcecontrollerappid <AppID do jogo>

AVISO:

"Atalho do Steam", se refere a um atalho para o cliente Steam. Os parâmetros de linha de comando devem ser passados para o cliente Steam, não para o jogo.

Disponibilizamos os ícones oficiais de controles ou os arquivos-fonte (PSD). Isso é necessário apenas como ponto inicial para criar os seus próprios ícones. Caso contrário, use a API para recuperar o caminho direto para um arquivo com a imagem do ícone da entrada associada (as imagens vêm com o cliente Steam).

3.1 — Visão geral da API


A API da Entrada Steam se baseia nas ações e conjuntos de ações do jogo especificadas no arquivo IGA criado no 1º passo.

Referência completa da API: Interface ISteamInput

De forma geral, a API funciona desta forma:

Interfaces seguras

Os dados de controles são recuperados ao chamar a função ISteamInput::RunFrame. o que costuma ser feito ao chamar, a cada quadro de renderização, a função SteamAPI_RunCallbacks. Porém, caso faça uso de interfaces com segurança de versão e não esteja recebendo bons dados, chame a função ISteamInput::RunFrame diretamente a cada quadro.

Para saber se faz uso de interfaces com segurança de versão, verifique se possui este #define no seu código:
VERSION_SAFE_STEAM_API_INTERFACES

3.2 — Tratamento de entradas


Para ações digitais, os dados retornados pela função ISteamInput::GetDigitalActionOrigins são simples:

bState: true se a ação estiver sendo enviada pelo controle (botão ou gatilho pressionado etc.)

Para ações analógicas, os dados retornados pela função ISteamInput::GetAnalogActionData são ligeiramente mais complexos:

x,y: dependem do modo associado à ação no arquivo IGA. — "absolute_mouse": x e y serão diferenças (deltas) com relação à posição anterior do mouse. — "joystick_move": x e y serão valores que vão de -1 e 1, representando a posição atual da alavanca.

Aproveitando que está mexendo no código, confirme que o jogo não impede que o usuário combine formas diferentes de entrada. Um erro comum que vemos é jogos que começam a ignorar a entrada do controle assim que houver entrada do mouse ou teclado e vice-versa.

3.3 — Ícones na tela

Para exibir um ícone do controle certo na tela, recupere as origens físicas associadas a uma ação do jogo. O jogador pode ter vinculado mais de uma origem física a uma ação, então faça com que a interface de usuário circule por cada origem. As funções ISteamInput::GetDigitalActionOrigins e ISteamInput::GetAnalogActionOrigins retornarão a quantidade de origens associadas à ação especificada e preencherão o vetor originsOut passado.

Para cada origem, use a enumeração ISteamInput::EControllerActionOrigin para remapear a origem à imagem correspondente. Ao chamar a função com o valor da enumeração de origem, ela retornará um caminho para um arquivo PNG ou SVG local que corresponde ao ícone correto do conjunto de imagens oficial da Valve (localizado na pasta de instalação do Steam). Esse método é compatível com todos os dispositivos reconhecidos pela Entrada Steam (então um controle para PlayStation exibirá botões de PlayStation, um controle para Xbox exibirá botões de Xbox etc.). Além disso, a API cuida de atualizações futuras — quando a Valve adicionar compatibilidade com outros dispositivos, a função recuperará ícones atualizados automaticamente, sem precisar recompilar o jogo com imagens novas.

É possível incluir ícones próprios, mas recomendamos fortemente preparar o código para receber novidades no futuro, pois a Entrada Steam está sempre adicionando compatibilidade com novos dispositivos e o único impedimento para que funcionem bem com o seu jogo será a presença de ícones quebrados ou transparentes. Você pode:

Verifique sempre!

Esteja ciente de que o usuário pode alterar a configuração quando quiser. Para ajudar os desenvolvedores, garantimos que as funções ISteamInput::GetDigitalActionOrigins e ISteamInput::GetAnalogActionOrigins não fossem custosas.

Ao exibir um ícone na tela, não armazene as origens e exiba sempre os primeiros resultados. Em vez disso, recomendamos que recupere as origens a cada quadro e exiba os ícones correspondentes. Dessa forma, se um usuário decidir alterar a configuração porque viram os ícones, quando terminarem de alterar os ícones serão automaticamente atualizados para as origens novas.

4º passo — Publicação


Assim que o jogo estiver funcionando com o controle, você está pronto para publicar. Lance a atualização para o jogo e adicione a sua configuração na lista de configurações oficiais. Configurações oficiais são carregadas automaticamente quando um jogador inicia o jogo pela primeira vez. Isso permite que usuários iniciem o jogo e comecem a jogar sem precisar ver a tela de configuração.

Confira abaixo o processo recomendado:

4.1 — Atualize o jogo

  • Atualize o depot no Steam com a nova versão do jogo.

4.2 — Publique a configuração

  • Inicie o Steam no modo Big Picture e acesse a configuração padrão que criou na configuração do controle.
  • Aperte o botão (Y) ou clique no botão "Salvar como" na parte inferior da tela.
  • Selecione o título e descrição traduzidos desejados, altere o perfil para PÚBLICO e clique no botão PUBLICAR.
  • Uma confirmação será exibida junto do ID do arquivo da configuração pública. Copie ou salve o ID.

4.3 — Adicione a configuração como oficial

  • Abra a página do jogo no site de parceiros Steamworks.
  • Selecione "Entrada Steam" na aba "Aplicativo".

    steamworks_steam_input.png

  • Role até a seção denominada "Modelo para configuração de controles pelo Steam". Selecione a opção "Configurações personalizadas" no seletor. (Se não está planejando integrar a API nativamente e só deseja selecionar um dos modelos prontos, é aqui que você escolhe o modelo).


    steamworks_steam_input_custom_config.png

    Na seção logo abaixo, selecione "Adicionar configuração personalizada".
    steamworks_steam_controller_custom2.png

  • Cole do ID do arquivo da configuração pública na lacuna e clique no botão OK.

    steamworks_steam_controller_custom3.png

  • Publique as alterações do aplicativo no site de parceiros, como de costume.

Se quiser, também é possível especificar mais de uma configuração oficial para o jogo, como por exemplo, uma configuração oficial para canhotos.

Para isso, crie e publique cada configuração como no passo 4.2. Depois, no passo 4.3, cole os IDs de todos os arquivos das configurações na lacuna, separados por vírgula (,). A primeira configuração da lista terá maior prioridade e será escolhida como a configuração padrão para jogadores novos. Não se esqueça de definir títulos e descrições para cada uma.

Quando as configurações oficiais forem publicadas, elas serão exibidas na seção "Configuração personalizada&quot:

steamworks_steam_input_branch_settings.png

Cada configuração tem um link direto para vê-la no configurador, o tipo de controle associado, controles para escolher em quais ramos está disponível e um botão para removê-la. Caso crie uma nova configuração oficial, use as funções de remover / adicionar nesta seção para substituir uma existente.

Definição de controles que usarão a Entrada Steam


Agora, você deverá definir quais tipos de controles devem usar a Entrada Steam — se estiver usando a API da Entrada Steam, não se esqueça de assinalar a opção "Dispositivos futuros" para garantir que controles novos funcionem por padrão, sem precisar ajustar as configurações depois que integrar a API.

steamworks_steam_input_optin_settings.png

Assinalar uma caixa fará com que o tipo de controle associado faça uso da Entrada Steam e não dos protocolos de entrada padrão.

Atualização das configurações oficiais

Há duas formas de atualizar as configurações:
  1. Para realizar uma alteração incompatível com as configurações atuais, como a adição/remoção de um conjunto de ações ou a criação de ações obrigatórias, envie uma nova configuração para cada tipo de controle compatível e remova a configuração antiga. Também aconselhamos acessar o seletor de configurações com a conta que criou a configuração antiga e excluí-la por meio da opção:

    steamworks_remove_community_config.png
  2. Para realizar uma alteração opcional, como a adição de um novo idioma na localização dos nomes de ações ou a criação de uma ação que não precisa ser usada em todas as configurações, envie uma única configuração nova e assinale a caixa "Usar bloco de ações" para garantir que o bloco de ações da nova configuração tenha prioridade nos ramos selecionados.

    steamworks_steam_input_use_action_block.png

Dicas

Conjunto de ações dedicado para menus

Aconselhamos a criação de um conjunto de ações separado para controles de menu em vez de usar ações do conjunto principal do jogo. A maioria dos usuários não precisará modificar o conjunto de menu, mas é uma forma fácil de permitir que jogadores o modifiquem se necessário (o que pode ser o caso para jogadores portadores de deficiência, por exemplo).

Ícones personalizados

A Entrada Steam permite a criação de vários estilos de menus. Adicione ícones PNG na pasta <diretório do jogo base>/TouchMenuIcons/*.png para que sejam exibidos primeiro na lista de ícones para menus radiais e de toque do jogo. Isso permite que configure menus radiais ou de toque com ícones do jogo associados a ações específicas sem precisar alterar o código do jogo ou de interface. Como desenvolvedor, é aconselhável fazê-lo mesmo se não usar menus de toque ou radiais na configuração oficial; como configurações modificadas por usuários também terão acesso aos ícones, eles poderão criar menus temáticos usando imagens oficiais do jogo.