Documentação do Steamworks
Servidor de conteúdo local SteamPipe

Visão geral

Resumidamente, um servidor de conteúdo local (SCL) é um servidor HTTP local, como Apache ou nginx. O uso de um SCL reduz o tempo entre iterações de depots, por não serem enviados e distribuídos pela rede pública do Steam. Em vez disso, todo o conteúdo dos depots é armazenado no seu SCL em arquivos de pedaços e transferidos a clientes Steam com acesso ao seu SCL.

Quando estiver gerando conteúdo para o seu SCL, o construtor de depots precisa se comunicar com o servidor mestre de depots (MDS) do Steam, mas não há envio de conteúdo. Apenas metadados sobre os depots locais são enviados ao Steam, pois o conteúdo local é gerenciado pelo site do Steamworks da mesma forma que conteúdo público.

O SCL só oferece conteúdo de depots e não sobrescreve qualquer outra configuração do jogo. O conteúdo de depots sempre é criptografado no SCL (assim como em servidores de conteúdo públicos). Mesmo se alguém conseguir baixar pedaços de depots do seu SCL, não terão como descriptografar os dados, já que não terão as chaves de descriptografia.

Configuração de um servidor de conteúdo local

Primeiro, escolha um servidor web simples, mas de alto desempenho, que só precise oferecer arquivos estáticos. Usamos o servidor web de código aberto mongoose, pois o desempenho de download do Apache no Windows era precário (3 MB/segundo) e de configuração complicada.

No SDK do Steamworks há um diretório "/tools/ContentServer/". O diretório contém uma versão preparada do mongoose-3.1.exe. Execute o aplicativo a partir do diretório ContentServer.

Crie um novo script VDF app_build. O formato que adotamos é app_build_[AppID]_Local.vdf.

O VDF deve ser similar aos scripts de envio normais do SteamPipe, mas com uma chave "local".
"appbuild" { "appid" "[AppID]" "local" "[DiretorioDoSDKSteamworks]\tools\ContentServer\htdocs" // ... }

Execute o novo script VDF app_build com o steamcmd.

Depois de gerar uma versão local do jogo, acesse a página Versões do jogo.

Encontre a versão local na lista de versões atuais, selecione "Local" no seletor ao lado da versão local e clique em "Pré-visualizar alterações".
setLCSLive.png

Configuração do cliente Steam para uso do servidor de conteúdo local

Para que o cliente Steam saiba de onde recuperar o seu jogo, será necessário criar um arquivo, de nome steam_dev.cfg, no mesmo diretório que contém steam.exe.
O arquivo conterá o texto a seguir:
@LocalContentServer NomeDoServidorWeb

Exemplos:
@LocalContentServer localhost @LocalContentServer "127.0.01:8080"
  • Pode-se usar o endereço IP ou nome de host do servidor.
  • Caso precise especificar uma porta que não a 80, então informe "endereço-ip:porta" em aspas duplas.
  • Não prefixe com "http://" (e não é possível usar com HTTPS).

Aviso: a localização padrão do executável do Steam é: