Documentação do Steamworks
Envio e execução de jogos no Steam Deck

Visão geral

Para ajudar os desenvolvedores a trabalharem com o Steam Deck, providenciamos a SteamOS Devkit Client Tool (Ferramenta de cliente do kit de desenvolvimento do SteamOS) e o SteamOS Devkit Service (Serviço do kit de desenvolvimento do SteamOS). Essas ferramentas permitem que você envie versões do jogo diretamente da sua máquina de desenvolvimento ao seu kit de desenvolvimento do Steam Deck (ou máquina com Linux), assim como realizar outras atividades relacionadas ao desenvolvimento do jogo.
Importante:
Antes de enviar e testar o seu jogo usando as instruções abaixo, aconselhamos que instale e execute outro título do Steam que use o Steam Play (Proton) no Steam Deck. Isso garantirá que o Proton e todas as suas dependências serão instaladas.

Instalação das ferramentas

Configuração do cliente (na máquina de desenvolvimento)

  • O SteamOS Devkit Client é executado na sua máquina de desenvolvimento e permite que desenvolvedores se conectem a um Steam Deck ou a um sistema com Linux para implantar / depurar programas.
  • Instale o "Steam OS Devkit Client" pelo Steam — acesse aqui o link de instalação.
  • A ferramenta pode ser iniciada pela categoria "Software" da Biblioteca Steam. Caso prefira executá-la a partir da linha de comando ou terminal:
    • No Windows, execute windows-client/devkit-gui.exe
    • No linux, execute python3.9 ./devkit-gui-cp39.pyz no diretório linux-client

Configuração do servidor (no Steam Deck)

  • O SteamOS Devkit Service é executado no Steam Deck / sistema com Linux de destino e permite que desenvolvedores se conectem a partir de outro computador para implantar / depurar programas.
  • Caso tenha um kit de desenvolvimento do Steam Deck, o "SteamOS Devkit Service" já vem pré-instalado — não é necessário fazer mais nada.
  • Caso não tenha um Steam Deck e esteja testando em um sistema próprio com Linux instalado, você precisará instalar o "SteamOS Devkit Service" e executá-lo manualmente. Acesse o link de instalação para a ferramenta do "Devkit Service". (O serviço só funciona em computadores que estejam executando o "Manjaro", de acordo com as instruções descritas aqui.)

Conexão ao Deck

Na máquina de desenvolvimento, inicie o "SteamOS Devkit Client". O kit de desenvolvimento precisa estar em uma rede local (LAN) e permitir DNS multicast com a máquina de desenvolvimento para que seja descoberto e listado. Isso funciona tanto por Wi-Fi quanto por Ethernet (usando um hub USB-C).

  • Certifique-se de que o seu Steam Deck esteja conectado à rede e que todas as atualizações tenham sido aplicadas (Configurações > Sistema).
  • No Steam Deck: acesse "Configurações" > "Sistema" e selecione Ativar modo de desenvolvimento na seção "Configurações do sistema". Então, em Configurações > Desenvolvedor, selecione Parear novo host na seção "Kit de desenvolvimento".
  • Na máquina de desenvolvimento: na ferramenta do kit de desenvolvimento, procure o seu sistema Linux (os kits EV2 aparecerão como "callistoXXX", já as unidades DV mais novas aparecerão como "Valve Aerith"). Clique no botão Register (Registrar) à direita para registrar o kit de desenvolvimento com a ferramenta. (Isso configura uma chave SSH no dispositivo e concede controle completo.)
  • No Steam Deck: aprove a solicitação de pareamento da máquina de desenvolvimento.
  • Caso não veja um kit de desenvolvimento na interface da ferramenta, certifique-se de que a máquina e o kit de desenvolvimento estejam conectados à mesma rede local. Dependendo do seu ambiente, pode ser necessário usar o campo Add by IP (Adicionar por endereço IP).

dev-kit_landing.png

Na imagem abaixo, callisto530 é um kit de desenvolvimento registrado.

Envio de uma versão do jogo para o Steam Deck

Clique na aba Title Upload (Envio de título) para configurar um jogo para envio da máquina de desenvolvimento para o kit de desenvolvimento do Steam Deck. Quando terminar de preencher tudo, a tela se parecerá com a imagem abaixo:

title-upload-20211111.png

A imagem acima é um exemplo de envio da versão de teste para Windows de um jogo ao kit de desenvolvimento.
  • Local Folder (Pasta local) — o diretório base, que contém todos os arquivos necessários para a execução do jogo.
  • Exclude patterns (Padrões de exclusão) — O processo de envio usa rsync sobre SSH. Logo, para evitar que diretórios e arquivos desnecessários presentes na pasta local sejam transferidos, preencha o campo Exclude patterns com padrões de exclusão (separados por espaços — consulte o manual do rsync (em inglês) para detalhes).

  • Clean upload (Envio limpo) — Assinale esta opção para excluir quaisquer arquivos no kit de desenvolvimento que não estejam presentes na pasta local após a aplicação dos padrões de exclusão.
  • Start Command (Comando de inicialização) — Preencha com o nome do executável binário do jogo (e quaisquer argumentos que deseje adicionar).
  • Steam Play — Assinale esta opção se estiver enviando um binário para Windows, que precisará ser executado pelo Steam Play com o uso do Proton.
  • Steam Play debug (Depuração do Steam Play) — Permite que você realize a depuração linha a linha de jogos C++ no Visual Studio.

Caso tenha um AppID para o seu jogo e esteja usando a API do Steamworks, é uma boa ideia incluir o arquivo steam_appid.txt (que deve conter apenas o AppID) na pasta-raiz da versão enviada e na mesma pasta do executável. Saiba mais na seção "Inicialização e encerramento" da documentação sobre a API do Steamworks.

Execução de versões do jogo enviadas

No kit de desenvolvimento do Steam Deck, acesse a biblioteca para encontrar um novo título de nome "Devkit Game: NomeDoJogo" e execute-o.
Como já mencionado anteriormente, antes de enviar e testar o seu jogo diretamente, aconselhamos que antes instale outro título do Steam que use o Steam Play (Proton) no kit de desenvolvimento e execute-o. Isso garantirá que o Proton e todas as suas dependências serão instaladas.

Console do cliente Steam

Caso seja necessário executar comandos no console do cliente Steam, você pode fazê-lo pelo CEF Console.

Depois de abrir a ferramenta de cliente do kit de desenvolvimento e conectá-la ao seu Deck, na aba Devkits, clique no botão CEF Console. Isso abrirá uma aba no navegador, que se conectará ao cliente CEF no seu Steam Deck. Nessa página, clique em SP para abrir uma aba específica da interface de cliente principal do Steam Deck. Isso inculirá um console de depuração do CEF à direita da página.

Quando a janela de depuração do CEF for aberta, na aba do console, ative a saída do console do Steam usando o comando EnableSteamConsole(). Após executar esse comando, a saída que normalmente é exibida na aba Console do cliente Steam (quando iniciado com a opção de inicialização -console) será exibida aqui com o rótulo SteamClient.

Para executar comandos do console, envolva o comando inteiro em aspas duplas em uma chamada à função SteamClient.Console.ExecCommand(). O exemplo abaixo ilustra duas chamadas do tipo: a primeira ativa o teste de sincronização dinâmica com a nuvem para o AppID 480 e a segunda desativa o teste:

deck_cef_client_console_example.png