Dokumentacja Steamworks
Lokalny serwer zawartości SteamPipe

Wprowadzenie

Lokalny serwer zawartości (Local Content Server, LCS) jest w zasadzie lokalnym serwerem HTTP takim jak Apache lub nginx. Korzystanie z takiego serwera usprawnia czas iteracji magazynów zawartości, ponieważ nie są one przesyłane ani dystrybuowane przez publiczną sieć Steam. Zamiast tego cała zawartość magazynów jest przesyłana przez LCS w porcjowanych plikach i dostarczana klientom Steam, którzy mają do niego dostęp.

Podczas kompilowania zawartości dla lokalnego serwera kompilator zawartości musi skomunikować się z głównym serwerem magazynów zawartości (Master Depot Server, MDS), ale nie przesyła on żadnej zawartości. Do Steam przesyłane są tylko metadane o twoich lokalnych magazynach zawartości, ponieważ lokalna zawartość jest zarządzana z poziomu strony Steamworks, tak jak w przypadku zawartości publicznej.

LCS dostarcza tylko treści magazynu i nie nadpisuje on jakiejkolwiek konfiguracji gry. Zawartość magazynu jest zawsze szyfrowana na twoim LCS (tak jak w przypadku publicznych serwerów zawartości). Nawet jeśli komuś udałoby się pobrać porcje magazynów z twojego serwera zawartości, to nie byłby on wstanie odszyfrować tych danych z racji tego, że nie posiada on kluczy odszyfrowujących magazyn.

Konfiguracja lokalnego serwera zawartości

Na początek wybierz prosty, ale wydajny serwer sieciowy, który musi dostarczać tylko statyczne pliki. My używamy serwera sieciowego na bazie open source o nazwie mongoose, ponieważ wydajność pobierania Apache na systemie Windows była zbyt niska (3 MB/s), a jego konfiguracja skomplikowana.

W twoich narzędziach Steamworks SDK znajduje się katalog nazwany „/tools/ContentServer/”. Zawiera on stworzoną wcześniej wersję moongoose-3.1.exe – uruchom tę aplikację z katalogu „ContentServer”.

Utwórz nowy skrypt vdf app_build. Format zazwyczaj używany przez nas to app_build_[ID aplikacji]_Local.vdf.

Plik vdf powinien być podobny do twoich standardowych skryptów przesyłania SteamPipe, ale musi on zawierać klucz „local”.
"appbuild" { "appid" "[ID aplikacji]" "local" "[Ścieżka do twojego Steamworks SDK]\tools\ContentServer\htdocs" // ... }

Uruchom swój nowy skrypt vdf app_build poprzez steamcmd.

Po pomyślnym skompilowaniu lokalnej wersji twojej gry przejdź do strony kompilacji SteamPipe dla twojej gry.

Znajdź swoją lokalną kompilację na liście obecnych kompilacji, wybierz „lokalna” z listy rozwijanej obok pożądanej lokalnej kompilacji, a następnie kliknij na przycisk „Podgląd zmian”.
setLCSLive.png

Konfigurowanie klienta Steam, by używał twojego lokalnego serwera zawartości

Aby klient Steam wiedział, gdzie szukać twojej gry, musisz utworzyć plik steam_dev.cfg w tym samym katalogu, w którym znajduje się steam.exe.
Ten plik powinien zawierać następujący tekst:
@LocalContentServer YourWebServerName

Examples:
@LocalContentServer localhost @LocalContentServer "127.0.01:8080"
  • Either the server IP or server hostname can be used.
  • If you need to specify another port then 80, it must be "ip:port" in quotes
  • Don't add "http://" in front, HTTPS is not supported

Uwaga: domyślna lokacja pliku wykonywalnego Steam to: