Documentação do Steamworks
GDD/DRM do Steam

Visão geral

O encapsulador de GDD (Gestão de Direitos Digitais)/DRM (Digital Rights Management) do Steam é uma peça importante da plataforma Steam, por verificar a titularidade do jogo e garantir que os recursos do Steamworks funcionem corretamente iniciando o Steam antes de iniciar o jogo.

O encapsulador de GDD do Steam não é, por si só, uma solução antipirataria. O encapsulador de GDD do Steam protege contra formas extremamente simples de pirataria (i.é., copiar todos os arquivos do jogo para outro computador) e faz uso de um pouco de ofuscação, mas pode ser removido facilmente por um atacante motivado.

Aconselhamos aumentar o valor de cópias genuínas por meio de recursos do Steamworks que não funcionam em cópias não genuínas (ex: multijogador online, conquistas, tabelas de classificações, cartas colecionáveis etc.).

Consulte Usando o encapsulador do Steam com outras soluções de GDD para mais informações sobre como combinar o encapsulador de GDD do Steam com outras soluções de GDD ou que evitem a manipulação de arquivos do jogo (anti-tamper).

Encapsulador automatizado de GDD do Steam

O encapsulador do Steam pode ser aplicado a partir do script de envio do SteamPipe, realizando uma requisição de inicialização aos servidores Steam por meio do cliente conectado e, então, enviando o executável por uma requisição HTTP POST sem encapsulamento ao backend do Steam. O encapsulamento é feito no servidor e o steamcmd baixa o executável encapsulado.

Para encapsular o executável com o SteamPipe, inicie a sessão pelo script e execute o comando do Steam drm_wrap:
drm_wrap [AppID] [nome do arquivo de entrada] [nome do arquivo de saída] [nome da ferramenta] [indicadores]

Parâmetros:
  • AppID — O ID numérico do aplicativo;
  • nome do arquivo de entrada — Caminho relativo ou absoluto ao executável puro. Se o caminho contiver espaços, não se esqueça de usar aspas!
  • nome do arquivo de saída — Caminho relativo ou absoluto do local onde a ferramenta salvará o executável encapsulado de saída;
  • nome da ferramenta — "drmtoolp" para a nova ferramenta portátil. "drmtool" para a ferramenta Win32 antiga;
  • indicadores — Máscara de bits dos indicadores numéricos a seguir para especificar o comportamento da ferramenta:
  • 0 — Encapsulamento normal (maior nível de proteção);
  • 6 — Modo de compatibilidade (desativa ofuscação);
  • 32 — Pular verificação de depuração;
  • 38 — Modo de compatibilidade + pular verificação de depuração (menor nível de proteção).

Script run_build.bat de exemplo para iniciar a sessão, construir e enviar a versão ao Steam (com AppID 480):
builder\steamcmd.exe +login nomedeusuariosteam senhasteam +drm_wrap 480 "D:\src\steamworkssdk\steamworksexample\release\steamworksexample.exe" "D:\src\steamworkssdk\tools\ContentBuilder\content\windows_content\SteamworksExample.exe" drmtoolp 0 +run_app_build ..\scripts\app_build_480.vdf +quit

Encapsulador manual

Para encapsular um executável com o Steam rapidamente, use a página de administração de dados do aplicativo no Steamworks para encapsular o executável principal do jogo.

  1. Selecione o jogo que conterá GDD na página de administração de aplicativo;
  2. Selecione "Editar configurações do Steamworks" na seção "Ferramentas técnicas" da página de administração de aplicativo;
  3. Na aba "Segurança", selecione "GDD / DRM";
  4. Envie o executável principal do jogo — Consulte a seção sobre encapsulamento automatizado acima para mais informações sobre as opções de execução da ferramenta;
  5. Baixe o executável para a máquina local;
  6. Renomeie o executável com o nome original;
  7. Copie-o para o local-fonte dos depots de ferramenta de conteúdo;
  8. Construa uma nova versão de depot;
  9. Teste o depot no servidor de conteúdo local.

Usando o encapsulador do Steam com outras soluções de GDD

O encapsulador do Steam pode e deve ser usado em combinação com outras soluções de GDD. Para tal, aplique o encapsulador do Steam em modo de compatibilidade antes de aplicar qualquer outra solução de GDD para que não haja interferência. O modo de compatibilidade desativa os recursos de GDD do encapsulador.

Envie o executável em modo de compatibilidade selecionando-o no menu na página do Steamworks ou usando os indicadores apropriados na ferramenta automatizada drmtool.

Perguntas frequentes

O meu jogo em C# / .NET não roda depois de aplicar o encapsulador do Steam
O encapsulador do Steam não é compatível com aplicativos .NET. Em vez de usar o encapsulador de GDD, use a função SteamAPI_RestartAppIfNecessary.

O meu jogo não roda depois de aplicar o encapsulador do Steam
O encapsulador do Steam pode causar interferência com outras soluções de GDD. Consulte a subseção Usando o encapsulador do Steam com outras soluções de GDD, já que pode ser um conflito.

Preciso aplicar o GDD ao executável sempre que gerar uma nova versão?
Sim, cada versão que deseja publicar precisa ser encapsulada pelo Steam. Tente automatizar o processo com o encapsulador automatizado do Steam documentado acima.