Documentação do Steamworks
Primeiros passos para developers

Vista geral


A API do Steam Input foi concebida para que o seu jogo tenha compatibilidade total com comandos compatíveis com Steam Input de uma forma fácil. A nossa definição de compatibilidade total baseia-se nos seguintes pontos:

  • O seu jogo usa os símbolos corretos do comando atual quando mostra os botões que devem ser pressionados.
  • O ecrã de configuração do Steam Input usa ações que o utilizador faz no seu jogo, em vez de botões ou teclas.
  • Publicou uma configuração oficial para os comandos compatíveis com o seu jogo.
  • O seu jogo não impede os utilizadores de personalizar os controlos. Isto significa que permite qualquer combinação de rato, teclado e/ou comando em simultâneo.
  • O seu jogo usa a API para exibir a interface de introdução de texto quando precisa de utilizar um teclado (para escrever o nome de uma personagem, por exemplo).
  • O seu jogo não tem launchers que obriguem a usar rato ou teclado (ou melhor ainda, não tem launcher nenhum).

Para garantir que os utilizadores tenham uma boa experiência a partir do sofá, também recomendamos que:

  • A interface seja legível a alguns metros de distância. Regra geral: se o jogo estiver a correr a 1920x1080, o tamanho do tipo de letra deve ser, no mínimo, 24 px.
  • O jogo inicie em ecrã completo, por predefinição, se o utilizador estiver a usar o modo Big Picture do Steam (a variável de ambiente "SteamTenfoot" será definida).
  • O jogo detete a resolução de ecrã do utilizador ao iniciar pela primeira vez e que a use automaticamente.

Casos de uso comuns

Vou implementar a API do Steam Input no meu jogo antes de o lançar


Ótimo! Siga as instruções técnicas na secção Implementação da API do Steam Input.

Vou implementar a API do Steam Input no meu jogo juntamente com outras bibliotecas de input


Não há problema em implementar bibliotecas de input convencionais juntamente com o Steam Input e, se implementar a API do Steam Input após o lançamento inicial do seu jogo ou se o lançar em várias plataformas, pode facilmente encontrar-se nesta situação. Algumas coisas que deve ter em mente:

1. Use ações analógicas com prudência
Mais à frente iremos falar disto em detalhe, mas, resumindo:
  • Deve sempre incluir uma ação estilo rato para o cursor ou para controlos de câmara precisos. Pode ser aceitável não incluir input estilo rato em "twin stick shooters" ou em jogos de desporto, onde a posição do joystick é usada para apontar.
  • Evite usar o rato do sistema (opção "os_mouse") a menos que tenha um bom motivo para tal. Ser capaz de determinar se o input vem de um rato a sério ou de um comando é uma parte importante das práticas recomendadas para uma boa experiência de utilizador (UX).
  • Deve ou deixar que o configurador trate da sensibilidade (isto é, não filtre os dados vindos do Steam Input) ou usar uma opção de sensibilidade dedicada para o Steam Input que seja distinta daquela do rato do sistema.

2. Seja consistente com a mira automática de joysticks
Caso aplique mira automática ou auxílio de mira a sticks analógicos XInput, considere aplicá-las também a dispositivos Steam Input, pelo menos aos modelos tradicionais de comandos configurados através do Steam Input. Pode chamar a função GetInputTypeForHandle para determinar o tipo de modelo de um comando específico ou pode implementar ações de câmara de estilos distintos, como rato e joystick.

3. Use a versão 2.0.8 ou superior da biblioteca SDL, se possível
Se usar a SDL (Simple DirectMedia Layer), uma das bibliotecas mais usadas por jogos multiplataforma para gerir recursos como input, certifique-se de que está a usar a versão mais recente ou, no mínimo, a versão 2.0.8 ou superior. Esta versão permite ao Steam dizer à SDL para ignorar inputs de comandos configurados pelo Steam Input, o que evita bugs de inputs duplos.

4. Tenha um plano para comandos da Xbox
Se o seu jogo já foi lançado, é compatível com a API XInput e não está nos seus planos deixar de a usar, recomendamos deixar que os comandos da Xbox usem XInput por predefinição. Se o jogo oferecer um modo multijogador local, certifique-se de que consegue aceitar input das duas APIs ao mesmo tempo ou faça com que todos os comandos usem Steam Input.

O meu jogo não usa a API do Steam Input, mas quero que funcione bem com Steam Input


Antes de mais, recomendamos a leitura do artigo The Five Golden Rules of Input (As cinco regras de ouro dos inputs) de Zach Burke.

Resumindo, as regras são:

  1. Os ícones no ecrã devem corresponder ao dispositivo de input.
  2. O cursor do rato deve corresponder ao dispositivo de input.
  3. Todos os dispositivos devem funcionar a qualquer altura.
  4. Deve ser possível navegar nos menus com d-pad, stick analógico e rato.
  5. O jogo deve ser pausado ao desconectar um comando.

Estas são boas práticas a seguir sempre que possível. Queremos salientar esta parte:

Input do comando e do rato deve ser possível em simultâneo.

A maioria dos jogos permite input do rato ou input do comando, mas não ambos ao mesmo tempo. Isto é a principal causa de problemas de compatibilidade com o sistema do Steam Input.

Além disso:

  1. Prepare uma configuração de comando recomendada para todos os tipos de comandos
    Assim, o Steam não precisa de pedir ao utilizador para selecionar uma configuração ao iniciar o jogo. Já agora: não precisa de fornecer configurações diferentes para comandos da Xbox 360 e para comandos da Xbox One. A configuração para um irá funcionar para o outro.
  2. Ative o Steam Input para comandos com que o seu jogo não tenha compatibilidade nativa
    Se o seu jogo não tiver compatibilidade nativa com estes tipos de comandos, use o site de parceiros e ative o Steam Input para esses comandos. Consulte o fim desta secção para mais informações.
  3. Se não permitir input simultâneo de comando/rato...
    ...então, pelo menos, permita a configuração da zona morta, aceleração e sensibilidade do joystick. A emulação de joysticks em trackpads funciona com um movimento brusco do joystick virtual, o que a torna muito sensível a estas definições. Para melhores resultados, permita sensibilidades muito altas, zonas mortas que cheguem a 0 e uma curva de aceleração linear. As definições de comando do Shadow of War são um bom exemplo disto.
  4. Permita que os utilizadores selecionem os símbolos da Xbox ou da PS4 no menu, ou que o tipo de dispositivo seja detetado automaticamente pela nossa API
    Quando o Steam envia inputs do comando, estes irão aparecer no seu jogo como inputs normais de um comando da Xbox em vez do dispositivo normal. Isto é útil, pois permite ao utilizador usar dispositivos que normalmente não funcionariam, mas também significa que coisas como uma verificação normal do ID do dispositivo USB não irão funcionar e terá de chamar uma função auxiliar do Steam. É importante mencionar que até os comandos com que o seu jogo é compatível podem ser usados via Steam Input, ou porque o utilizador está a transmitir o jogo por Steam Remote Play ou porque ativou Steam Input para reconfigurar os seus dispositivos.

Para mais detalhes, consulte a página Emulação de comandos por Steam Input - Boas práticas.

Entrada de texto


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

Referências rápidas:

Estas funções podem ser-lhe úteis independentemente do uso que estiver a dar ao Steam Input.

Implementação da API do Steam Input


O processo de implementação é muito simples e não deverá demorar mais do que alguns dias. São quatro passos:

  1. Num editor de texto, crie um ficheiro com as ações do jogo para dizer ao Steam que ações do jogo podem ser associadas ao comando.
  2. No Steam, use o configurador do Steam Input para criar a configuração padrão.
  3. No seu jogo, use a API do Steam Input para ler as ações do comando e para obter os símbolos apropriados para exibição.
  4. Atualize o depot do seu jogo com os novos binários e publique a sua configuração como sendo a oficial.

Passo 1 - Criar o ficheiro de ações do jogo (IGA)


Comece por fazer download do ficheiro de ações do jogo (ficheiro IGA) inicial. Coloque-o no diretório "<Steam Install Directory>\controller_config" (crie o diretório se não existir). Mude o nome do ficheiro para: "game_actions_X.vdf", sendo X o AppID do seu jogo no Steam. Se não souber o AppID do seu jogo, pode encontrá-lo no site de parceiros Steamworks.

Abra o ficheiro no seu editor de texto preferido. O ficheiro está num formato padrão da Valve chamado KeyValues, que é um formato simples e fácil de ler. Talvez também lhe seja útil fazer download de modelos de ficheiros IGA ou do ficheiro IGA do Portal 2 para referência.

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

Formato do ficheiro


Os ficheiros IGA contêm uma secção de ações ("actions") que deve listar todos os "conjuntos de ações do jogo" (IGAS) referentes ao seu jogo. Um IGAS descreve todas as ações que um jogador pode realizar dentro de um determinado contexto do jogo (por exemplo, quando o jogador está num veículo, a pé ou a navegar no menu). A interface de configuração do Steam Input irá fornecer um separador para cada IGAS, permitindo ao jogador personalizar a forma como essas ações são associadas ao comando.

Uma entrada IGAS no ficheiro IGA deve conter um par de chave e valor "title" e as seguintes subsecções: "StickPadGyro", "AnalogTrigger" e "Button". As secções "StickPadGyro" e "AnalogTrigger" contêm, cada uma, a lista das IGAs que o jogador só pode associar ao stick/touchpad/giroscópio e aos gatilhos analógicos, respetivamente. A secção "Buttons" contém IGAs que só podem ser associadas a inputs digitais (como os botões ABXY físicos, um trackpad em modo ABXY ou um gatilho que não estiver a ser usado como uma ação AnalogTrigger).

Criação de IGAs

Pare um momento e reflita: como é que o seu jogo funciona? Quantos modos distintos contém? Crie um conjunto de ações para cada lugar ou situação que deva ter controlos distintos. A maioria dos jogos terá, pelo menos, dois conjuntos de ações (um para o menu, outro para o jogo em si), mas muitos irão precisar de mais. Se o seu jogo tiver casos especiais, como a condução de veículos ou menus especializados (o ecrã do mapa ou do inventário, por exemplo), poderá ser útil criar conjuntos de ações para tais casos.

Porém, nem tudo precisa de ter um conjunto de ações distinto. Também pode usar layers de conjuntos de ações para modos com controlos semelhantes. Por exemplo, se for possível controlar um carro e um barco no seu jogo, talvez queira incluir um conjunto de ações chamado "vehicle" com uma layer chamada "boat" ou "car". Layers de conjuntos de ações mantêm todas as definições do conjunto principal e podem facilitar a compreensão e a edição de configurações tanto para a sua equipa de desenvolvimento como para os seus utilizadores.

Para mais informações, consulte: Layers de conjuntos de ações.

Limites no número de ações

Atualmente, o número máximo de ações é de 16 ações analógicas e 128 digitais. É importante saber que ações podem ser partilhadas entre conjuntos de ações, o que significa que, na maioria dos casos, só irá precisar de uma parte do número máximo possível. Estes limites não são definitivos, por isso, contacte-nos se tiver uma boa razão para precisar de mais.

Ações Button


O formato das ações "Button" é o seguinte:

"<nome da ação>" "#<chave de tradução>"

<nome da ação> é o nome interno usado para se referir à ação no código do jogo ao comunicar com a API do Steam Input. <chave de tradução> deve ser o nome de uma entrada na secção "localization" (consulte a secção "Adicionar tradução"). Não se esqueça de incluir o carácter "#" no início da chave de tradução.

Ações AnalogTrigger


O formato das ações "AnalogTrigger" é igual ao das ações "Button". Ações "AnalogTrigger" devem ser ações que o jogo irá interpretar como input analógico, como a aceleração de um veículo. Se não tiver nenhuma ação que use este tipo de input, deixe a secção em branco. A interface do configurador do Steam Input permite aos utilizadores associar qualquer ação "Button" aos gatilhos físicos se não estiverem a ser usados como uma ação "AnalogTrigger".

Ações StickPadGyro


O formato das ações "StickPadGyro" é o seguinte:

"<nome da ação>" { "title" "#<chave de tradução>" "input_mode" "<modo analógico>" }

<nome da ação> e <chave de tradução> são iguais aos do formato "Button". <modo analógico> diz-nos como interpretar os dados dos controlos físicos antes de os passarmos ao seu jogo através da API do Steam Input.

Seguem-se alguns <modos analógicos> válidos:

  • "absolute_mouse" - para quando espera que a ação se comporte como um rato. É útil para câmaras na primeira ou na terceira pessoa ou para um cursor do rato.
  • "joystick_move" - para quando está a usar a ação para mover uma personagem.

"absolute_mouse" vs. "joystick_move"

Temos de salientar que, ao criar um input de câmara para um jogo na primeira/terceira pessoa ou para qualquer ação que use o cursor, deve sempre incluir uma ação do tipo "absolute_mouse" e reagir a deltas como se fosse um rato, pois os dados 1:1 são necessários para implementar boa precisão com giroscópio ou com trackpad. O Steam Input consegue converter input de joysticks de comandos em inputs estilo "absolute_mouse" mas, devido às curvas de aceleração e zonas mortas aplicadas no jogo, não é possível fazer a conversão no sentido contrário.

Pode incluir uma ação estilo "joystick_move" sem problemas se quiser que apontar com o joystick seja tal e qual como nas versões para consolas, mas teste se o jogo aceita input em simultâneo de "absolute_mouse" e "joystick_move", para que os comandos da PlayStation e da Switch possam apontar com o giroscópio e com o joystick ao mesmo tempo. Também aconselhamos que implemente uma ação digital "Repor câmara" para recentrar a posição vertical da câmara. Se o seu jogo aplicar mira automática com comandos XInput, aplique a mesma lógica ao input de joystick através da API do Steam Input e considere aplicá-la, com menor intensidade, ao apontar com trackpad/giroscópio.

Existe uma definição opcional para ações StickPadGyro que usem "absolute_mouse" como o seu input. Se definir "os_mouse" como "1", o input do utilizador passará também para o sistema operativo. Isto é útil se o jogo tiver um cursor do SO visível que deva ser controlado por esta ação.

Exemplo:

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

Aviso

  1. Não aconselhamos que use a definição "os_mouse" para controlos de câmara. Se for difícil ajustar certas partes do seu jogo, lembre-se de que pode sempre ter ações analógicas exclusivas para o menu, separadas do conjunto de ações do jogo.
  2. Usar "os_mouse" fará com que os inputs do comando sejam controlados pela sensibilidade do rato definida no jogo e só funcionará para um jogador local.

Passo 1.1 - Adicionar tradução


A secção "localization" (tradução) do seu ficheiro IGA contém uma lista de idiomas e cada um destes é uma secção com chaves e valores de tradução. Por exemplo:

"localization" { "english" { "Action_Jump" "Jump" "Action_Camera" "Camera" } "portuguese" { "Action_Jump" "Saltar" "Action_Camera" "Câmara" } }

As ações no seu ficheiro IGA devem depois especificar os respetivos nomes referindo-se à chave de tradução desejada, precedida pelo carácter "#". Seguem-se alguns exemplos de ações que usam as chaves de tradução acima:

"StickPadGyro" { "Camera" { "title" "#Action_Camera" "input_mode" "absolute_mouse" } } "Button" { "Jump" "#Action_Jump" }

Se o idioma que o jogo estiver a usar não for encontrado na secção de tradução, será usado o idioma inglês. Se a secção de inglês não for encontrada, a string será exibida como está no ficheiro. Para mais detalhes, consulte a documentação sobre idiomas suportados.

Passo 1.2 - Títulos e descrições


As configurações também precisam de um título e descrição traduzidos. Caso esteja a criar apenas uma configuração oficial para o seu jogo, então não precisa de se preocupar com esta parte. Nós forneceremos um título e descrição padrão e pode saltar este passo. Mas se quiser ter mais do que uma configuração oficial para o seu jogo, terá de fornecer os respetivos títulos e descrições traduzidos.

Títulos e descrições de configurações devem estar listados juntamente com o resto das chaves de tradução. A chave do título deve começar por "Title_" e a chave da descrição por "Description_". Exemplo:

"localization" { "portuguese" { "Title_Config1" "Configuração oficial" "Description_Config1" "Esta configuração foi criada pelos developers do Jogo X." "Title_Config2" "Configuração oficial para esquerdinos" "Description_Config2" "Esta configuração foi criada pelos developers do Jogo X e está preparada para utilizadores esquerdinos." "Action_Jump" "Saltar" "Action_Camera" "Câmara" } }

Ao publicar uma configuração (consulte Passo 4 - Publicação), poderá selecionar qual destes títulos e descrições traduzidos quer usar.

Passo 2 - Criar uma configuração padrão


Assim que tiver criado o seu ficheiro IGA, confirmado que o ficheiro está no diretório correto e que o nome inclui o AppID do seu jogo, está preparado para criar uma configuração.

Abra o Steam no modo Big Picture e aceda à página de detalhes do seu jogo.

Selecione "Gerir jogo" e depois "Configuração do comando". Se lhe aparecer alguma mensagem de erro, isso significa que há problemas no seu ficheiro IGA e terá de os corrigir. Os erros mais comuns são aspas ou parênteses em falta.

Se não aparecer nenhuma mensagem de erro, estará a ver uma configuração de comando vazia do seu jogo que deverá reconhecer as ações do seu jogo. Use a interface para criar uma configuração padrão. Não se esqueça de configurar predefinições para todos os conjuntos de ações do jogo, não só para o primeiro.

Assim que a configuração estiver pronta, guarde-a em privado. Não a publique já, pois o seu jogo ainda não está pronto para receber IGAs.

Passo 3 - API do Steam Input


Certifique-se de que tem a versão mais recente da API do Steamworks. Pode obtê-la a partir da página Steamworks - Primeiros passos.

O Steam Input permite especificar mapeamentos de comandos para cada aplicação. O mapeamento usado será sempre o da aplicação com a janela em primeiro plano. Tal pode dificultar a depuração, pois o comando irá mudar de configuração quando chegar a um ponto de interrupção no depurador. Existem duas formas de forçar o Steam a focar-se na janela do seu jogo durante a depuração. Abra o seguinte URL do Steam:
steam://forceinputappid/ <AppID_do_seu_jogo ou 0 para voltar ao funcionamento normal>

ou adicione o seguinte parâmetro de linha de comandos ao seu atalho do Steam:
-forcecontrollerappid <AppID_do_seu_jogo>

ATENÇÃO:

"Atalho do Steam", refere-se a um atalho para a aplicação Steam em si. Os parâmetros da linha de comandos têm de ser passados para a aplicação Steam, não para o seu jogo.

Também pode fazer download dos símbolos oficiais de comandos ou os ficheiros originais em PSD. Isto só é necessário se os quiser usar como ponto de partida para criar os seus próprios símbolos. Caso contrário, pode simplemente usar a API para ter um caminho direto para o ficheiro do símbolo de qualquer input de comando (os ficheiros estão incluídos na aplicação Steam).

Passo 3.1 - Resumo do funcionamento da API


A API do Steam Input baseia-se nas ações e conjuntos de ações do jogo que especificou no seu ficheiro IGA no passo 1.

Para um guia de referência completo da API, consulte ISteamInput Interface.

Segue-se o resumo do funcionamento:

Interfaces seguras

Dados de comandos são recolhidos quando a função ISteamInput::RunFrame é chamada. Isto normalmente é feito a cada frame pela função SteamAPI_RunCallbacks. Contudo, se usar interfaces seguras e constatar que não está a obter bons dados do polling, terá de chamar ISteamInput::RunFrame a cada frame.

Se encontrar o seguinte #define no seu código, isso significa que tem interfaces seguras ativas:
VERSION_SAFE_STEAM_API_INTERFACES

Passo 3.2 - Gestão de inputs


No que toca a ações digitais, os dados retornados por ISteamInput::GetDigitalActionData são simples:

bState: será "true" se a ação for enviada pelo comando (um botão ou gatilho premido, etc.)

Porém, com ações analógicas, os dados retornados por ISteamInput::GetAnalogActionData são ligeiramente mais complexos:

x,y: depende do modo a que associou a ação do jogo no ficheiro IGA. - "absolute_mouse": x e y serão diferenças (deltas) em relação à posição anterior do rato. - "joystick_move": x e y serão valores entre -1 e 1, o que representa a posição atual do joystick.

Já que está a trabalhar no código, certifique-se de que não está a impedir o utilizador de combinar tipos diferente de inputs em simultâneo. É um erro que temos visto muitas vezes: jogos que começam a ignorar o input do comando quando detetam um rato/teclado ou vice-versa.

Passo 3.3 - Símbolos no ecrã

Para mostrar no ecrã o símbolo certo do botão do comando, terá de obter as origens físicas associadas a uma ação no jogo. O utilizador pode ter associado mais do que uma origem física à mesma ação, então é melhor que a interface percorra e mostre cada origem. ISteamInput::GetDigitalActionOrigins e ISteamInput::GetAnalogActionOrigins irão retornar o número de origens de uma determinada ação e irão preencher o array originsOut passado.

Para cada origem, pode usar a enumeração ISteamInput::EControllerActionOrigin para associar a origem a uma imagem correspondente. Ao chamar esta função com o valor da enumeração de origem, irá retornar um caminho para um ficheiro .png ou .svg local que corresponde ao símbolo devido do comando no conjunto de imagens oficiais da Valve (situado na pasta de instalação da aplicação Steam). Este método é compatível com todos os dispositivos de hardware reconhecidos por Steam Input (assim, um comando da PlayStation vai mostrar botões da PlayStation, um comando da Xbox vai mostrar botões da Xbox, etc.) E o melhor de tudo é que este método está preparado para o futuro: quando a Valve implementar compatibilidade com novo hardware, esta função irá obter automaticamente símbolos atualizados sem que tenha de recompilar o seu jogo com símbolos novos.

Pode sempre fornecer as suas próprias imagens de símbolos de comandos, mas aconselhamos que pense a longo prazo, pois o Steam Input está sempre a implementar compatibilidade com novos dispositivos e a única coisa que os impede de funcionar bem no seu jogo é a presença de símbolos inválidos ou em branco. Pode:

Faça polling constantemente!

Lembre-se de que o utilizador pode mudar a configuração a qualquer altura. Para ajudar nessas situações, fizemos com que as funções ISteamInput::GetDigitalActionOrigins e ISteamInput::GetAnalogActionOrigins não sejam custosas.

Quando mostrar um símbolo do comando no ecrã, não guarde as origens em cache, continuando a mostrar os primeiros resultados. Em vez disso, recomendamos que volte a recolher as origens a cada frame e mostre os símbolos correspondentes. Assim, se um utilizador resolver mudar a configuração por ter visto o símbolo, irá reparar que os símbolos serão atualizados automaticamente para corresponder às origens novas quando voltar do ecrã de configuração.

Passo 4 - Publicação


Assim que o seu jogo estiver a funcionar com o comando, está pronto para publicar. Terá de lançar a nova atualização do jogo e fazer com que a sua configuração seja a oficial. Configurações oficiais são carregadas automaticamente quando um utilizador inicia um jogo pela primeira vez. Isto permite-lhe simplesmente abrir o jogo e jogar sem sequer ter de aceder ao ecrã de configuração.

Os passos recomendados são:

Passo 4.1 - Atualize o seu jogo

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

Passo 4.2 - Publique a sua configuração

  • Abra o Steam no modo Big Picture e aceda à página da configuração padrão que criou na configuração do comando.
  • Pressione o botão (Y) ou clique em "Guardar como" na parte inferior do ecrã.
  • Na janela resultante, selecione o título e descrição traduzidos que desejar, mude para perfil PÚBLICO e clique em PUBLICAR.
  • Receberá então uma confirmação e o ID do ficheiro da configuração pública. Copie/guarde o ID.

Passo 4.3 - Adicione a configuração como oficial

  • Abra a página do seu jogo no site de parceiros Steamworks.
  • Selecione "Steam Input" no separador "Aplicação".

    steamworks_steam_input.png

  • Desça até à secção "Configuração padrão - Steam Input". Selecione a opção "Configuração personalizada" no menu pendente. (Se não estava a planear adicionar compatibilidade nativa e só pretende selecionar uma predefinição clássica comum, é aqui que o deve fazer).

    steamworks_steam_input_custom_config.png

    Da seleção abaixo, selecione "Adicionar configuração personalizada".

    steamworks_steam_controller_custom2.png

  • Cole o ID da sua configuração pública na caixa e clique em OK.

    steamworks_steam_controller_custom3.png

  • Publique as suas alterações à aplicação no site de parceiros como habitual.

Se quiser, também pode especificar várias configurações oficiais para o seu jogo. Por exemplo, pode querer criar um modo oficial para esquerdinos.

Para o fazer, crie as configurações que desejar e publique-as tal como dita o passo 4.2. Depois, no passo 4.3, cole todos os ID dos ficheiros das suas configurações na caixa, separadas por vírgulas (,). A primeira da lista terá maior prioridade e será selecionada como predefinição para novos utilizadores. Não se esqueça de escrever títulos e descrições para cada uma delas.

Quando as suas configurações oficiais estiverem publicadas, irão aparecer na secção "Configuração personalizada".

steamworks_steam_input_branch_settings.png

Em cada configuração, pode obter um link direto, ver para que tipo de comando é, controlar em que ramos beta está disponível ou removê-la por completo. Se criar uma nova configuração oficial, pode usar as funções para remover/adicionar nesta secção para substituir uma já existente.

Definição de comandos que vão usar Steam Input


A seguir, deve definir que comandos vão usar o Steam Input. Se estiver a usar a API do Steam Input, aconselhamos que marque a opção "Dispositivos futuros" para garantir que novos comandos funcionem por predefinição sem que tenha de ajustar definições assim que o Steam os suportar oficialmente.

steamworks_steam_input_optin_settings.png

Ao marcar estas opções, estes tipos de comandos irão usar o Steam Input em vez dos seus protocolos de input padrão.

Atualização das suas configurações oficiais

Existem duas formas de atualizar a sua configuração:
  1. Para realizar uma alteração que seja incompatível com as configurações atuais, como adicionar/remover um conjunto de ações ou adicionar ações que precisam de ser associadas, envie uma nova configuração para cada tipo de comando compatível e remova a antiga. Também deve ir ao seletor de configurações do Steam Input com a conta que criou a configuração para a eliminar através da opção:

    steamworks_remove_community_config.png
  2. Para realizar uma alteração opcional, como adicionar um novo idioma à tradução dos nomes de uma ação ou adicionar uma nova ação opcional que não precisa de ser usada em todas as configurações, envie uma nova configuração e marque a opção "Usar bloco de ações" para garantir que o bloco de ações dessa configuração tenha prioridade nos ramos selecionados.

    steamworks_steam_input_use_action_block.png

Dicas

Ações de menu dedicadas

Recomendamos que crie um conjunto de ações do jogo separado para os controlos do menu, em vez de usar só ações do seu conjunto principal. A maioria dos utilizadores não vai precisar de modificar este conjunto para controlos de menus, mas é uma forma fácil de oferecer a possibilidade de o fazer conforme necessário (como pode ser o caso de alguns utilizadores com algum grau de incapacidade, por exemplo).

Ícones personalizados

O sistema do Steam Input também pode criar vários estilos de menus no ecrã. Colocar os seus próprios ícones .png em <diretório do jogo base>/TouchMenuIcons/*.png fará com que apareçam primeiro na lista de ícones para menus tácteis/radiais do seu jogo. Isto permite-lhe configurar os seus próprios menus tácteis/radiais com ícones associados a ações específicas sem que tenha de alterar o código do jogo ou da interface. Como developer, talvez queira fazê-lo mesmo que não tenha nenhum destes menus na sua configuração padrão. Dado que qualquer configuração modificada por utilizadores também terá acesso a estes ícones, os utilizadores poderão criar belos menus temáticos usando os seus ícones oficiais.