Documentação do Steamworks
Preparando o seu jogo para o Steam Deck
Apesar de o Steam Deck ser essencialmente um computador, ele vem em um formato novo, o que leva os usuários a terem expectativas diferentes quanto ao seu funcionamento. Além dos critérios usados no processo de análise de compatibilidade com o Steam Deck, temos mais algumas recomendações, apresentadas aqui.

Nenhuma das recomendações nesta página afetará a insígnia de compatibilidade do seu jogo, servindo apenas para atender às expectativas dos usuários quanto à imagem e às formas de entrada, aprimorar o desempenho e a duração da bateria, asim como tirar proveito de todas as novas oportunidades oferecidas pelo Deck.

Por mais que as recomendações aqui listadas tenham maior valor para usuários do Deck, elas também ajudarão todos aqueles que jogam em computadores, muitos dos quais só jogam com controles, na TV da sala etc.
SDK do Steamworks: muitas das APIs recomendadas nesta página foram adicionadas na versão 1.52 do SDK do Steamworks, lançada no dia 14 de setembro de 2021.

Entrada

  • Configuração padrão de controle: é altamente recomendado (e obrigatório para a insígnia de "Aprovado no Deck") que a configuração padrão de controle do jogo permita o acesso a todos os seus recursos. Se o jogo não tiver compatibilidade nativa com controles, recomendamos a criação de uma configuração de controle que mapeie as entradas apropriadas do mouse e do teclado. Melhor ainda, implementar a compatibilidade com controles ou com a API da Entrada Steam pode abrir o seu jogo a um novo grupo de usuários.
  • Entrada de texto: é altamente recomendado (e obrigatório para a insígnia de "Aprovado no Deck") que jogos automaticamente abram um teclado virtual quando for necessário que o usuário digite texto. Recomendamos o uso de uma das duas APIs de teclado virtual do SDK do Steamworks, a depender do seu caso de uso: ShowFloatingGamepadTextInput (envia os sinais de tecla diretamente ao jogo) e ShowGamepadTextInput (baseado em retorno de chamada, enviando todo o texto digitado de uma só vez).
  • Giroscópio/Trackpad: recomendamos que jogos compatíveis com os tipos de controle de câmera estilo mouse (movimentação 1:1) e estilo alavanca funcionem corretamente quando ambos os tipos estiverem sendo usados simultaneamente. Recomendamos permitir que eventos do mouse afetem a câmera como de costume, mas sem perturbar o uso simultâneo de um controle, e trocar para o modo mouse/teclado apenas se um evento de clique do mouse for recebido. Problemas comuns incluem: não aceitação da entrada da alavanca ao controlar a câmera com o mouse e vice-versa, falta de resposta ao pressionar botões quando a câmera é controlada com o mouse e alternação entre ícones de controle e de teclado/mouse sempre que o tipo da entrada muda. Tudo isso atrapalha a vida de usuários que querem jogar com o esquema de controle preferido deles. (Aviso: essa funcionalidade vem "de graça" ao usar a API da Entrada Steam.)

Compatibilidade e desempenho no Proton

  • API Vulkan: recomendamos o uso da Vulkan como a API gráfica principal para um melhor desempenho e menor uso de bateria. Caso o jogo use uma engine como Unity ou Unreal, ativar a Vulkan ao gerar a versão para todos os usuários resultará no maior desempenho/duração. (Aviso: o Proton inclui uma camada de tradução de chamadas DirectX para chamadas Vulkan. Se o seu jogo ou engine tiver uma ótima implementação da DirectX, mas nenhuma implementação da Vulkan, é provável que a camada de tradução automática terá um melhor desempenho que uma implementação manual da Vulkan.)
  • Video/Audio Codecs: We recommend using standalone codecs (eg., VP9 or AV1) rather than codecs that are tied to a specific vendor (eg., WMF).

Integração com o Steam

  • Jogos salvos na nuvem: para jogos que permitem salvar o progresso, é recomendada a ativação do armazenamento de jogos salvos na nuvem: usuários devem poder salvar o jogo em um Deck e continuar de onde pararam em um computador diferente e vice-versa, sem que seja necessário transferir arquivos manualmente. Isso significa que os jogos devem oferecer uma forma de salvar o jogo na nuvem, seja por meio da Nuvem Steam ou por um serviço automático de terceiros (como uma conta do jogo ou da distribuidora com jogos salvos no servidor). É altamente recomendado o uso da Nuvem Steam para transferências automáticas. É recomendado que configurações relativas ao dispositivo (como a resolução da tela) não sejam sincronizadas entre dispositivos diferentes.
  • Modo off-line: é altamente recomendado que todo conteúdo feito para um jogador possa ser acessado sem uma conexão à internet. Teste o jogo sem qualquer conexão à internet, incluindo a primeira execução em uma conta Steam nova. Esse recurso é ainda mais importante para usuários do Deck, cuja conectividade será mais esporádica que de um computador para jogos tradicional.
  • Inicializadores: é recomendável que todos os recursos necessários sejam integrados ao cliente do jogo em vez de obrigar os usuários a interagir com um inicializador antes de abrir o jogo. Tais inicializadores costumam ser baseados em frameworks específicos da plataforma (como .NET e WPF), que podem dificultar a navegação por um controle em telas pequenas. Quando for necessário o uso de um inicializador com interface gráfica nativa, use a API SetGameLauncherMode para automaticamente traduzir a entrada do controle em eventos de teclado e mouse para auxiliar o usuário.