Steamworks-Dokumentation
Hochladen auf Steam
Unten finden Sie eine Anleitung zur Verwendung von SteamPipe, Valves Werkzeug zur Veröffentlichung von Inhalten auf Steam. Weitere Informationen zu den bewährten Praktiken zur Aktualisierung Ihres Spiels finden Sie hier: Bewährte Praktiken bei der Aktualisierung von Spielen.

Einführung in das SteamPipe-Inhaltssystem

SteamPipe ist das Inhaltssystem für Spiele/Anwendungen, auf dem Steam basiert. SteamPipe bietet die folgenden Funktionen:
  • Effiziente und schnelle Bereitstellung von Inhalten.
  • Öffentliche und private „Beta“-Branches, mit denen mehrere Builds getestet werden können.
  • Einfache, webbasierte Verwaltung von Builds. Mit nur wenigen Klicks können neue Builds veröffentlicht oder zu früheren Builds zurückgewechselt werden.
  • Anzeige der Update-Größe eines Builds, bevor es live geschaltet wird.
  • Anwendungsübergreifende Verwendung von Inhalten.
  • Erstellen von Installationsdatenträgern mit öffentlichen oder Beta-Inhalten.
  • Spiele/Anwendungen bleiben offline verfügbar, selbst wenn der Download eines Updates gestartet wird.
  • Alle Inhalte sind grundsätzlich verschlüsselt und inaktive Versionen sind für Kunden nicht sichtbar.
  • Ein SteamPipe: Lokaler Inhaltsserver, der während der Entwicklung verwendet werden kann.
HINWEIS: SteamPipe umfasst einige wesentliche Konzepte. Bevor Sie beginnen, sollten Sie sich mit den in der Dokumentation zu Anwendungen beschriebenen Konzepten vertraut machen. Schon ein grundlegendes Verständnis dessen, wie die einzelnen Komponenten zusammenwirken, wird Ihnen beim Hochladen Ihres Produkts auf Steam sehr hilfreich sein.

Struktur von Spielinhalten – Bewährte Praktiken


Die SteamPipe wurde sowohl für effizientes Herunterladen von Erstinstallationen von Spielen als auch für effizientes Patchen von Updates entworfen. Grundsätzlich funktioniert sie gut für eine Vielzahl unterschiedlich strukturierter Spielinhalte. Es gibt jedoch einige wichtige Dinge, die man im Hinblick auf die Optimierung und die Vermeidung von ineffizienten Umständen wissen sollte.

Hinweis: Wenn Ihr Spiel die Unreal Engine verwendet, lesen Sie bitte die für diese gepackten Dateien spezifischen Hinweise am Ende dieses Abschnitts.

Die SteamPipe unterteilt jede Datei zunächst in Blöcke mit einer Größe von ca. 1 MB. Dann wird jeder Block komprimiert und verschlüsselt, bevor er in Steams System zur Bereitstellung von Inhalten hochgeladen wird. Die Blöcke bleiben komprimiert und verschlüsselt, bis sie von einem Client heruntergeladen werden. Anschließend werden sie entschlüsselt, entpackt und in die entsprechenden Dateispeicherorte verschoben.

Wenn die SteamPipe ein Update für ein bestehendes Spiel verarbeitet, sucht sie nach Blöcken, die mit Blöcken aus dem vorherigen Build des Spiels übereinstimmen. Somit werden idealerweise nur neue bzw. modifizierte Teile von Dateien als „neue“ Blöcke erkannt. Dann müssen nur diese neuen Blöcke vom Client heruntergeladen werden, um das Spiel zu aktualisieren.

Viele Spiel-Engines verwenden „gepackte“ Dateien, um Spielelemente zu bündeln und die Ladezeiten durch effizientere Datenträgerzugriffe zu verbessern. Dies funktioniert generell gut mit der SteamPipe. Einige Dateisysteme verwenden oder ermöglichen jedoch Vorgehensweisen, die Probleme verursachen können. Diese Probleme führen fast immer dazu, dass Updates viel größer als notwendig sind oder der Download zwar schnell, aber der anschließende Aktualisierungsvorgang langsam ist, da sehr viele Lese- und Schreibvorgänge auf dem Datenträger erforderlich sind.

Hier sind ein paar allgemeine Richtlinien, falls Ihr Spiel gepackte Dateien verwendet:

  • Achten Sie darauf, dass sich geänderte Elemente nach Möglichkeiten noch innerhalb derselben gepackten Datei befinden.
  • Vermeiden Sie die Umsortierung von Elementen in einer gepackten Datei.
  • Schränken Sie die Größe von gepackten Dateien ein.
  • Gruppieren Sie Elemente nach Level/Spielbereich/Funktion in mehrere gepackte Dateien und überlegen Sie, ob Sie nicht besser eine neue gepackte Datei für Updates hinzufügen, statt bestehende zu ändern.
  • Ihre gepackten Dateien sollten nicht die ursprünglichen Dateinamen oder Zeitstempel von Dateien oder Builds für die einzelnen Elemente enthalten.

Der erste Punkt oben bezieht sich auf den Umfang der Bytes, die innerhalb einer Datei geändert werden, wenn ein einzelnes Element geändert wird. Idealerweise werden die Daten eines Elements am selben Speicherort innerhalb der gepackten Datei geändert, auch wenn sich die Größe des Elements dadurch verändert. Die SteamPipe erstellt nur für die Teile der Datei neue Blöcke, die geänderte (Element-)Daten enthalten. Alle gepackten Dateien benötigen jedoch auch eine Art Inhaltsverzeichnis, damit die Engine die Daten der einzelnen Elemente finden kann. Die Struktur dieses Inhaltsverzeichnisses kann einen großen Einfluss auf die Effizienz des Patchverhaltens der SteamPipe haben. Idealerweise befindet sich am Anfang oder Ende der Datei ein Inhaltsverzeichnis (ggf. in Baumstruktur). Da sich die Byte-Position anderer Elemente innerhalb der Datei verschieben kann, ändern sich auch deren Einträge im Inhaltsverzeichnis. In diesem Fall erstellt die SteamPipe neue Blöcke für die geänderten Elementdaten und die geänderten Teile des Inhaltsverzeichnisses.

In einigen Spiel-Engines haben wir jedoch gesehen, dass die Informationen des Inhaltsverzeichnisses über die gesamte Datei verteilt sind. In noch problematischeren Fällen verwenden Engines absolute Werte für den Versatz der Bytes. Wenn sich beispielsweise ein Element bei Byte 3450 um 8 Bytes vergrößert, ändern sich die Versatzwerte für alle nachfolgenden Elemente in der Datei. Selbst wenn jeder Versatzwert nur eine Größe von 4 oder 8 Bytes hat, führt eine Änderung einer 8-Byte-Zahl dazu, dass die SteamPipe einen neuen 1-MB-Block erstellt. Dies kann katastrophale Auswirkungen haben, da selbst die Änderung einiger kleiner Elemente in einer gepackten Datei dazu führt, dass der Client mehr als die Hälfte der gesamten Datei zur Aktualisierung herunterladen muss. Wenn Sie wissen oder vermuten, dass die Struktur Ihrer gepackten Datei dieses Problem verursacht, wenden Sie sich bitte baldmöglichst an Ihren Valve-Vertreter. Wir haben einen alternativen Build-Algorithmus, der dieses Problem entschärfen kann, allerdings mit einigen Kompromissen.

Weiterhin kennt die SteamPipe die Elementgrenzen innerhalb einer gepackten Datei nicht. Wenn Elemente mit einer Größe von weniger als 1 MB umsortiert werden, kann die SteamPipe diese Neuanordnung wahrscheinlich nicht erkennen, da die vormals ermittelten 1-MB-Blöcke in der Datei nicht mehr existieren. Wenn Sie also bei der Erstellung eines Updates für Ihr Spiel die Ladezeiten optimieren möchten, indem Sie die Elemente innerhalb der gepackten Datei neu anordnen, sollten Sie sich darüber im Klaren sein, dass dies zu einem sehr großen Download für dieses Update führen kann. Wir empfehlen, dies nur zu tun, wenn dies zu deutlichen Leistungsverbesserungen führt.

Als nächsten Schritt zur Aktualisierung einer gepackten Datei auf einem Client-Gerät, erstellt die SteamPipe neben der alten Version eine neue Version. Wenn alle neuen Dateien erstellt sind, wird die Aktualisierung übertragen, indem die alten Dateien gelöscht und die neuen Dateien eingefügt werden. Das bedeutet, dass die SteamPipe zur Aktualisierung einer 25 GB großen gepackten Datei immer eine neue 25 GB große Datei erstellt. Wenn für die Aktualisierung nur 10 Byte an dieser Datei geändert werden müssen, muss die SteamPipe fast die gesamten 25 GB von der alten Datei in die neue Datei kopieren. Abhängig von der Speicher-Hardware des Nutzers kann dieser Vogang sehr langsam sein. Deshalb empfehlen wir zwei Dinge:

Begrenzen Sie erstens die Größe der gepackten Dateien. 1 bis 2 GB sind wahrscheinlich mehr als ausreichend, um beim Laden des Spiels effiziente Lesevorgänge vom Datenträger zu ermöglichen.

Beschränken Sie zweitens den Umfang der Elemente in einer einzelnen gepackten Datei; zum Beispiel auf ein einzelnes Spiellevel oder eine freischaltbare Funktion. So führen Aktualisierungen, die sich auf bestimmte Teile Ihres Spiels beziehen, nicht dazu, dass die Daten anderer Teile auf dem Client-Gerät hin und her kopiert werden. Außerdem können und sollten neue Funktionen, Level usw. in eigenen neuen gepackten Dateien untergebracht werden. Clients, die dieses Update herunterladen, können einfach die neuen Dateien herunterladen, wodurch die oben beschriebenen Probleme mit Änderungen an gepackten Dateien vermieden werden.

Im Zweifelsfall können Sie ein lokales Werkzeug zum Vergleichen von Binärdaten wie Beyond Compare verwenden, um die Versionen Ihrer gepackten Dateien zu vergleichen. Vergewissern Sie sich, dass die Größe der angezeigten Unterschiede der erwarteten Größe durch die geänderten Elemente entspricht und es keine Vielzahl von kleinen Änderungen gibt, die sich über die gesamte Datei verteilen. Wenn Sie etwas Unerwartetes sehen, kontrollieren Sie bitte die Einstellungen des Programms, mit dem Sie die Dateien packen.

Komprimierung: Da Steam alle Dateien zum Hochladen, Speichern und Herunterladen komprimiert, empfehlen wir grundsätzlich nicht, eine allgemeine Komprimierung für gepackte Dateien zu verwenden. Wenn Sie sich jedoch Sorgen um die Größe Ihres Spiels auf dem Datenträger machen, sollten Sie die gepackten Dateien dennoch komprimieren. Dies funktioniert ganz gut mit der SteamPipe, solange die oben genannten Kriterien erfüllt sind. Insbesondere sollten Sie darauf achten, dass die Komprimierung so weit wie möglich pro Element erfolgt. Jede Komprimierung, die die Grenzen von Elementen überschreitet, führt dazu, dass Änderungen weiter gestreut werden und Clients mehr Daten als nötig herunterladen müssen.

Verschlüsselung: Ähnlich wie bei der Komprimierung ist die Verschlüsselung wahrscheinlich unnötig und birgt dieselben Risiken.

Wenn diese Regeln befolgt werden, wird die Größe von Updates minimiert und es müssen nur neue Inhalte heruntergeladen werden. Ihre Kunden werden Ihnen dafür dankbar sein und Sie können die Qualität Ihres Produkts durch die Bereitstellung weiterer Updates verbessern.

Wenn Sie den Eindruck haben, dass Ihre Spielpakete nicht gut mit dem Aktualisierungsprozess der SteamPipe harmonieren, wenden Sie sich bitte an Ihren Valve-Vertreter, damit wir prüfen können, ob erweiterte Funktionen dieses Zusammenspiel verbessern können.

Unreal Engine – Sonderhinweise

Einige Versionen der Unreal Engine verwenden „Datenausrichtung“ („padding alingment“) für die einzelnen Elemente in den gepackten Dateien, was einen großen Einfluss auf die Größe der SteamPipe-Updates haben kann. Diese Ausrichtung der Daten kann zu einer ganzen Reihe von Elementverschiebungen führen, wenn neue Versionen erstellt werden, insbesondere, wenn die Komprimierung von gepackten Dateien aktiviert ist. Nutzen Sie eine Datenausrichtung von 1 MB (1048576), um sicherzustellen, dass Neuausrichtungen durch neue Builds die Elemente um ein Vielfaches derselben Blockgröße verschieben, die die SteamPipe für Differenzkalkulationen verwendet.

Wenn Sie beispielsweise Ihre Datenausrichtung beim „Kochen“ Ihrer gepackten Spieldateien ändern oder spezifizieren möchten, müssen Sie eine Zeile in der folgenden Datei ändern: UnrealEngine/Engine/Source/Programs/AutomationTool/Win/WinPlatform.Automation.cs. Diese Datei enthält eine Funktion namens GetPlatformPakCommandLine – ändern Sie in dieser Funktion die folgende Zeile:

string PakParams = " -patchpaddingalign=2048";

zu dieser:

string PakParams = " -patchpaddingalign=1048576 -blocksize=1048576";

Mit dieser Änderung sollte es Ihnen möglich sein, die Komprimierung von gepackten Dateien zu aktivieren und weiterhin ein optimiertes Updateverhalten der SteamPipe zu erreichen.

Unreal Engine ist eine Marke und/oder eingetragene Marke von Epic in den USA und/oder anderen Ländern.

Steamworks-Videoanleitung – Integration Ihres Spiels in SteamPipe

Diese Anleitung führt Sie in die SteamPipe ein und erläutert Schritt für Schritt, wie Sie mit den Steamworks-Werkzeugen einen Build für eine Beispielanwendung für Steam erstellen.
https://www.youtube.com/watch?v=SoNH-v6aU9Q

Steamworks-Videoanleitung – Hinzufügen neuer Plattformen und Sprachen

Diese Videoanleitung zeigt Ihnen, wie Sie Ihrem Spiel anhand von Depots neue Plattformen und Sprachen hinzufügen.
https://www.youtube.com/watch?v=PShS32hcing

SteamPipe – Technische Details

SteamPipe verwendet HTTP für die Bereitstellung von Inhalten. Da es sich bei Downloads um herkömmlichen Webverkehr handelt, kann die Downloadgeschwindigkeit durch HTTP-Caches von Drittanbietern zwischen Kunden und Steam-Servern erhöht werden. Inhalte können durch externe CDN-Anbieter gehostet werden, die sich problemlos in unser Inhaltsnetzwerk einbinden lassen. Die meisten Firewalls auf Kundenseite erlauben HTTP-Datenverkehr und blockieren Downloads nicht.

Die SteamPipe nutzt einen effizienten Patching-Algorithmus, der auf binären Differenzdaten basiert und nur die veränderten Teile bestehender Inhaltsdateien ändert. Wenn die Inhalte aktualisiert werden, müssen nur diese Differenzdaten gesendet werden. Dies bedeutet, dass die Übertragungen sowohl für Entwickler als auch für Nutzer kleiner und schneller sind. Die meisten Partner halten die Verwendung eines lokalen Inhaltsservers für nicht notwendig, da sie Builds effizient auf privaten Branches patchen können.

Steam-Account für Builds

Bevor Sie auf Steam einen Build erstellen können, müssen Sie in Ihrem Steamworks-Account einen Steam-Account haben, der über die Berechtigungen „Metadaten der Anwendung bearbeiten“ und „Anwendungsänderungen auf Steam veröffentlichen“ verfügt. Aus Sicherheitsgründen empfiehlt es sich, einen separaten Build-Account einzurichten, der ausschließlich diese Berechtigungen besitzt. Hierzu können Sie unter https://store.steampowered.com/join einen neuen Account erstellen.

Jeder Administrator Ihres Steamworks-Accounts kann einen Steam-Account hinzufügen und die erforderlichen Berechtigungen zuweisen. Weitere Informationen zu diesem Verfahren finden Sie in der Dokumentation Verwaltung Ihres Steamworks-Accounts. Hier ein Beispiel für einen solchen Account:

create_build_account.png
Note: If the Steam account will need to set a build live for a released app, it will need either a phone number attached to their account or have the Steam Mobile App attached to their account. Those methods will be used to confirm setting a build live for a released app. Additionally, if the Steam account has any security changes (email, phone number, etc), then you will need to wait 3 days before you can set a build live for a released app. This is to prevent compromised accounts from being able to manage your app's released builds.

Ersteinrichtung neuer SteamPipe-Anwendungen

Um neue SteamPipe-Anwendungen einzurichten, gehen Sie wie folgt vor:
  1. Suchen Sie die App-ID Ihrer Anwendung (Sie finden die ID, wenn Sie die Anwendung auf Ihrer Steamworks-Startseite auswählen).
  2. Rufen Sie die Seite Allgemeine Installationseinstellungen für Ihre Anwendung auf.
  3. Definieren Sie mindestens eine Startoption (den Pfad und optional die zum Starten des Spiels erforderlichen Argumente). Bewegen Sie die Maus über (?), um weitere Informationen zu jedem Feld zu erhalten.

    Das Beispiel unten zeigt fünf Startoptionen: zwei für Windows, zwei für macOS und eine für Linux.
    Startoption 3 wird nur angezeigt, wenn der Nutzer auch den angegebenen Zusatzinhalt besitzt.

    updatedlaunchoptions_3.png
  4. Rufen Sie die Seite Depots auf und fügen Sie die für diese Anwendung erforderlichen Depots hinzu. Möglicherweise ist standardmäßig bereits ein Depot für Ihre Anwendung konfiguriert.
    1. Klicken Sie auf das Standarddepot und ändern Sie den Namen des Depots in einen aussagekräftigen und wiedererkennbaren Namen (zum Beispiel „Basisinhalt“ oder „Windows-Inhalt“).
    2. Lassen Sie die Sprache auf [All languages] eingestellt, es sei denn, es handelt sich um ein sprachspezifisches Depot.
    3. Lassen Sie das Betriebssystem auf [All OSes] eingestellt, außer es handelt sich um ein betriebssystemspezifisches Depot (wenn die Anwendung für alle Betriebssysteme gilt oder nur für PC oder nur für Mac ist, behalten Sie die Einstellung bei). Ändern Sie die Einstellung nur bei betriebssystemspezifischen Spieldepots.
    4. Klicken Sie auf Neues Depot hinzufügen, um weitere Depots hinzuzufügen.
    5. Klicken Sie auf Änderungen speichern, um alle vorgenommen Änderungen zu speichern.
  5. Wenn Sie die Definition Ihrer Depots abgeschlossen haben, veröffentlichen Sie die vorgenommenen Änderungen auf der Seite Veröffentlichen.
  6. Sie müssen Ihre neu definierten Depots einem Paket hinzufügen, damit Sie als Eigentümer der Depots zugewiesen werden. Jedes Spiel auf Steam sollte über ein Paket „Developer Comp” verfügen, das automatisch den in Ihrer Entwicklergruppe aufgelisteten Accounts zugewiesen wird.
    Die neuen Depots können Sie diesem Paket (und/oder anderen Paketen, die über diese Depots verfügen müssen) auf der Seite Zugehörige Pakete & Zusatzinhalte hinzufügen.
Hinweis: Wenn Ihre ausführbare Datei sich in einem Unterverzeichnis des Hauptinstallationsverzeichnisses befindet, fügen Sie den Namen des Unterverzeichnisses im Ausführungsfeld ein. Verwenden Sie keine vorangestellten Schrägstriche oder Punkte.
Plattform-Hinweis: Wie oben gezeigt können macOS-Anwendungen entweder durch Angabe eines Anwendungsbündels (Spiel.app) oder eines Skripts bzw. einer Binärdatei (Spiel.app/Contents/MacOS/Spiel) gestartet werden. Im Allgemeinen sollte möglichst das Format des Anwendungsbündels genutzt werden, da macOS hierdurch die Startparameter korrekter und auf ähnliche Weise bestimmen kann, wie bei einer manuellen Ausführung außerhalb von Steam.

Ein wichtiges Beispiel ist hier, dass aktuell Anwendungen, die über ein Anwendungsbündel auf Apple-Silicon-Geräten ausgeführt werden, in der Anwendung die beste verfügbare Architektur nutzen, während beim direkten Ausführen der Binärdatei dieselbe Architektur wie beim Steam-Prozess verwendet wird (aktuell x86_64).

Einrichtung des SDKs für SteamPipe-Uploads

Laden Sie auf dem Computer, auf den Sie Builds hochladen, die neueste Version des Steamworks-SDKs herunter und dekomprimieren Sie es.

Die SteamPipe-Werkzeuge finden Sie im SDK im Ordner Werkzeuge, welcher zwei wichtige Unterverzeichnisse enthält.

Im Ordner ContentBuilder werden Ihre Spielinhalte und die SteamPipe-Build-Werkzeuge gespeichert. Dieses Verzeichnis enthält folgende Unterverzeichnisse:
  • builder: In diesem Verzeichnis ist zu Beginn nur steamcmd.exe enthalten, die Befehlszeilenversion von Steam.
  • builder_linux: Die Linux-Version von steamcmd.
  • builder_osx: Die macOS-Version von steamcmd.
  • content: Dieses Verzeichnis enthält alle Spieldateien, die in Depots kompiliert werden.
  • output: Dieses Verzeichnis ist der Speicherort für Build-Protokolle, den Datenblock-Cache und Zwischenversionen. HINWEIS: Diesen Ordner können Sie jederzeit leeren oder löschen. Nach dem Löschen dauert der nächste Upload jedoch länger.
  • scripts: In diesem Verzeichnis speichern Sie alle Build-Skripts für die Erstellung Ihrer Spieldepots.
steampipebuilddir.png

Wir empfehlen Ihnen, steamcmd.exe einmal direkt im Ordner „builder“ für Ihre Plattform auszuführen, damit ein Bootstrap Ihres Build-Systems erfolgt. Dadurch sollten alle Dateien, die zum Kompilieren von Depots benötigt werden, in Ihr Verzeichnis „builder“ geschrieben werden.

Im Ordner ContentServer befinden sich die benötigten Werkzeuge, um einen eigenen SteamPipe: Lokaler Inhaltsserver auszuführen, falls Sie dies möchten.

SteamCmd auf macOS

Führen Sie folgende Schritte aus, um SteamCmd auf macOS zu aktivieren:
  1. Navigieren Sie im Terminal zum Ordner „tools\ContentBuilder\builder_osx“.
  2. Führen sie „chmod +x steamcmd“ aus.
  3. Geben Sie „bash ./steamcmd.sh“ ein.
  4. SteamCmd wird nun ausgeführt und auf den aktuellsten Build aktualisiert. Nach Abschluss befinden Sie sich in der SteamCmd-Eingabeaufforderung.
  5. Geben Sie „exit“ ein und drücken Sie die Eingabetaste, um die Eingabeaufforderung zu schließen.
Anschließend können Sie die verbleibenden Anleitungen dieser Dokumentation befolgen (und die Pfade bei Bedarf anpassen), um Depot- und Anwendungskonfigurationsdateien für das Hochladen Ihrer Inhalte auf Steam zu erstellen.

SteamPipe-Build-Konfigurationsdateien erstellen

Zum Hochladen Ihrer Anwendungsdateien mit SteamPipe sind Skripts erforderlich, in denen Ihr Build und jedes darin enthaltene Depot beschrieben ist. Dier hier gezeigten Beispielskripts finden Sie auch im Verzeichnis Tools\ContentBuilder\scripts des Steamworks-SDK.

SteamPipe-GUI-Werkzeug

Wenn Sie unter Windows ein GUI-Werkzeug verwenden möchten, das Ihnen hilft, diese Konfigurationsdateien zu erstellen und Ihre Builds hochzuladen, dann nutzen Sie das Werkzeug SteamPipeGUI im Ordner „tools“ des Steamworks-SDKs. In der ZIP-Datei dieses Werkzeugs sind zusätzliche Anleitungen enthalten, die Ihnen bei Ihren ersten Schritten helfen.

Auch bei Verwendung des GUI-Werkzeugs empfiehlt es sich, die folgenden Abschnitte zu lesen, um sich mit der Funktionsweise des SteamPipe-Systems besser vertraut zu machen.

Einfaches Build-Skript


Beginnen wir mit dem einfachsten Build-Skript. Für unser Beispiel nehmen wir ein Spiel (App-ID 1000) mit einem Depot (Depot-ID 1001) und möchten alle Dateien aus dem Ordner „content” hochladen (inklusive Unterordner). Dafür brauchen wir nur ein einziges Build-Skript wie das im SDK enthaltene "simple_app_build.vdf":

"AppBuild" { "AppID" "1000" // Ihre App-ID "Desc" "Dies ist ein simples Buildskript" // interne Beschreibung des Builds "ContentRoot" "..\content\" // Stammverzeichnis der Inhalte, relativ zum Speicherort dieser Datei "BuildOutput" "..\output\" // Build-Ausgabeordner für Protokoll- und Cache-Dateien des Builds "Depots" { "1001" // Ihre Depot-ID { "FileMapping" { "LocalPath" "*" // alle Dateien aus dem Inhaltsstammverzeichnis "DepotPath" "." // dem Stammverzeichnis des Depots zugeordnet "recursive" "1" // alle Unterordner miteinbeziehen } } } }

Passen Sie die App-ID und Depot-ID an Ihr Spiel an. Um einen Build zu starten, müssen Sie steamcmd ausführen und einige Parameter übergeben:
tools\ContentBuilder\builder\steamcmd.exe +login <Accountname> <Passwort> +run_app_build ..\scripts\simple_app_build.vdf +quit

Während eines SteamPipe-Builds geschieht Folgendes:
  1. steamcmd.exe wird automatisch auf die aktuellste Version aktualisiert.
  2. steamcmd.exe meldet sich mit dem angegebenen Steam-Build-Entwickleraccount beim Steam-Backend an.
  3. Der Start des Anwendungs-Builds wird beim MDS (Master Depot Server) registriert, wodurch sichergestellt wird, dass der Benutzer über die entsprechenden Berechtigungen zum Modifizieren dieser Anwendung verfügt.
  4. Für jedes im Anwendungs-Build enthaltene Depot wird basierend auf den Dateien im Inhaltsordner und den in der Depot-Build-Konfigurationsdatei definierten Filterregeln eine Dateiliste generiert.
  5. Jede Datei wird eingelesen und in kleine Blöcke von ungefähr 1 MB aufgeteilt. Wenn das Depot bereits zuvor entwickelt wurde, bleiben durch diese Partitionierung so viele unveränderte Blöcke wie möglich erhalten.
  6. Neue Dateiblöcke werden komprimiert und verschlüsselt und danach auf den MDS hochgeladen.
  7. Für diese Depotversion wird ein endgültiges Manifest generiert; jedes Manifest wird durch eine eindeutige 64-Bit-Manifest-ID identifiziert.
  8. Sobald alle Depots verarbeitet wurden, stellt der MDS diesen Anwendungs-Build fertig und weist ihm eine globale Build-ID zu.
  9. Wenn der Build fertig ist, befinden sich im Build-Ausgabeordner ggf. CSM- und CSD-Dateien. Diese temporären Dateien können gelöscht werden, beschleunigen jedoch alle späteren Builds.


Sobald Ihr Build vollständig ist, erscheint er auf der Build-Seite Ihrer Anwendung (in diesem Beispiel: https://partner.steamgames.com/apps/builds/1000). Dort können Sie diesen Build für den Standard-Branch oder einen beliebigen Beta-Branch live schalten, und Benutzer können das Update innerhalb weniger Minuten herunterladen.

Erweiterte Build-Skripts


Falls Ihre Anwendung über viele Depots mit komplexen Dateizuordnungsregeln verfügt, können Sie für jedes Depot ein Depot-Build-Skript erstellen, auf das das Build-Skript der Anwendung verweist. Sehen wir uns jedoch zunächst die verfügbaren Parameter im Build-Skript der Anwendung an:

  • AppID: Die App-ID Ihres Spiels. Der zum Hochladen verwendete Steam-Partneraccount benötigt die Berechtigung zur Bearbeitung von Metadaten dieser Anwendung.
  • Desc: Die Beschreibung erscheint nur im Bereich „Ihre Builds“ im Anwendungsverwaltungsfenster. Sie kann jederzeit nach dem Hochladen Ihres Builds unter „Ihre Builds“ geändert werden.
  • ContentRoot: Das Stammverzeichnis Ihrer Spieldateien. Kann ein absoluter Pfad oder relativ zur Build-Skriptdatei sein.
  • BuildOutput: Dieses Verzeichnis ist der Speicherort für Build-Protokolle, Depot-Manifeste, den Datenblock-Cache und Zwischenversionen. Um die beste Leistung zu erzielen, sollten Sie für Ihre Build-Ausgabe eine andere Festplatte verwenden. Dadurch wird die Arbeitslast des Datenträgers aufgeteilt, sodass Ihr Inhaltsstammdatenträger die Leseanforderungen und Ihr Ausgabedatenträger die Schreibanforderungen verarbeiten kann.
  • Preview: Vorschau-Builds geben nur Protokolle und ein Dateimanifest im Build-Ausgabeordner aus. Die Erstellung eines Vorschau-Builds ist ideal, um Ihre Uploadskripte zu durchlaufen und sicherzustellen, dass Ihre Dateizuordnungen, Filter und Eigenschaften wie beabsichtigt funktionieren.
  • Local: Setzen Sie diesen Wert auf den htdocs-Pfad Ihres SteamPipe: Lokaler Inhaltsserver (LCS/lokalen Inhaltsservers) fest. LCS-Builds stellen Inhalte nur auf Ihrem eigenen HTTP-Server bereit und ermöglichen es Ihnen, die Installation Ihres Spiels mit dem Steam-Client zu testen.
  • SetLive: Name des Beta-Branch, auf dem der erfolgreich erstellte Build automatisch live geschaltet wird. Wenn kein Name angegeben wird, geschieht nichts. Bitte beachten Sie, dass der Standard-Branch nicht automatisch live geschaltet werden kann. Dies kann nur über das Anwendungsverwaltungsfenster Ihrer Anwendung vorgenommen werden.
  • Depots: Dieser Bereich enthält alle Dateizuordnungen, Filter und Dateieigenschaften für alle Depots oder verweist für jedes Depot auf eine separate Skriptdatei.

Das Beispiel-Build-Skript "app_build_1000.vdf", verwendet alle Optionen:
"AppBuild" { "AppID" "1000" // Ihre App-ID "Desc" "Ihre Build-Beschreibung" // interne Beschreibung für diesen Build "Preview" "1" // Vorschau-Build erstellen, es wird nichts hochgeladen "Local" "..\..\ContentServer\htdocs" // Inhalte werden nur auf den lokalen Inhaltsserver hochgeladen und nicht auf Steam "SetLive" "AlphaTest" // schaltet diesen Build auf einem Beta-Branch live "ContentRoot" "..\content\" // Inhaltsstammverzeichnis relativ zu dieser Skriptdatei "BuildOutput" "D:\build_output\" // legt den Build-Cache und die Protokolldateien für eine bessere Leistung auf einem anderen Laufwerk ab "Depots" { // Dateizuordnungsanweisungen für Depots befinden sich in separaten Skriptdateien "1001" "depot_build_1001.vdf" "1002" "depot_build_1002.vdf" } }

Dieses Buildskript der Anwendung verweist auf zwei Depot-Buildskriptdateien, die alle Dateizuordnungen und Dateieigenschaften angeben. Die folgende Eigenschaften können im Depot-Buildskript verwendet werden (auch, wenn der Abschnitt direkt im Buildskript der Anwendung enthalten ist).

  • DepotID : Die Depot-ID für diesen Abschnitts.
  • ContentRoot : Ermöglicht optional das Überschreiben des Inhaltsstammverzeichnisses aus dem Anwendungs-Buildskript pro Depot.
  • FileMapping : Dies ordnet Ihrem Depot eine einzelne Datei oder einen Satz Dateien aus dem lokalen Inhaltsstammverzeichnis zu. Es können mehrere Dateizuordnungen vorhanden sein, die Dateien zum Depot hinzufügen. Der Parameter LocalPath ist ein relativer Pfad zum Inhaltsstammverzeichnis und kann Symbole wie „?“ oder „*“ enthalten. Dies gilt auch für übereinstimmende Dateien in Unterordnern, falls Recursive aktiviert ist. Der Parameter DepotPath gibt an, wo die ausgewählten Dateien im Depot angezeigt werden sollen. (Verwenden Sie nur „.”, wenn Sie keine speziellen Zuordnungen benötigen.)
  • FileExclusion : Schließt zugeordnete Dateien wieder aus und kann auch Platzhalter wie „?“ oder „*“ enthalten.
  • InstallScript : Markiert eine Datei als Installationsskript und signiert die Datei während des Build-Prozesses. Der Steam-Client kann das Installationsskript für jede Anwendung ausführen, die dieses Depot bereitstellt.
  • FileProperties : Dateien können mit speziellen Flags markiert werden.
    • userconfig : Diese Datei wird durch den Benutzer oder das Spiel modifiziert. Sie kann nicht durch ein Update überschrieben werden und löst keinen Überprüfungsfehler aus, wenn sie sich von der vorherigen Version der Datei unterscheidet.
    • versionedconfig : Ähnlich wie bei „userconfig“; die Datei wird jedoch bei Aktualisierung der Datei im Depot lokal überschrieben, wenn das Spiel des Benutzers aktualisiert wird. Aktualisieren Sie die Datei im Depot nur, wenn es eine notwendige Änderung am Format oder eine Fehlerbehebung gibt.

Dies ist das Depot-Beispielskript depot_build_1002.vdf, das alle Optionen verwendet:
"DepotBuild" { "DepotID" "1002" "ContentRoot" "C:\content\depot1002" // überschreibt ContentRoot aus dem Buildskript der Anwendung "FileMapping" { // alle Quelldateien und Ordner in ".\bin" werden dem Ordner ".\executables" im Depot hinzugefügt "LocalPath" "bin\*" "DepotPath" "executables\" "Recursive" "1" // bezieht alle Unterordner mit ein } "FileMapping" { // überschreibt Audiodateien in \\audio mit deutschen Versionen "LocalPath" "localization\german\audio\*" "DepotPath" "audio\" } "FileMapping" { // kopiert Installationsskript für deutsche Version in das Stammverzeichnis des Depots "LocalPath" "localization\german\german_installscript.vdf" "DepotPath" "." } "FileExclusion" "bin\server.exe" // Diese Datei ausschließen "FileExclusion" "*.pdb" // überall alle .PDB-Dateien ausschließen "FileExclusion" "bin\tools*" // alle Dateien unter bin\tools\ ausschließen "InstallScript" "localization\german\german_installscript.vdf" "FileProperties" { "LocalPath" "bin\setup.cfg" "Attributes" "userconfig" // diese Datei wird während der Laufzeit geändert } }

HINWEIS: Sie können diese Skripts beliebig benennen, aber wir verwenden die Namen app_build_<App-ID> und depot_build_<Depot-ID>, um Konsistenz zu gewährleisten. Wenn Sie wissen, dass dieser Computer zur Anwendungsentwicklung verwendet wird, empfiehlt es sich, in Ihrem Skriptverzeichnis für jede Anwendung ein Unterverzeichnis zu erstellen, um deren Buildskripts besser zu organisieren.

Verwendung von SteamPipe in einer CI/CD-Umgebung


Um steamcmd für eine kontinuierliche Integration oder auf einem Gerät bzw. eine VM einzurichten, die häufig neu abgebildet wird, müssen Sie nur die Konfigurationsdatei einschließen, die Ihren Anmelde-Token enthält. Führen Sie die folgenden Schritte durch, damit Ihr anfängliches Anmelde-Token ordnungsgemäß gespeichert wird:

  1. Führen Sie „steamcmd.exe +login <Nutzername>“ auf dem Gerät aus, auf dem der Build vorgeformt wird.
  2. Geben Sie Ihr Passwort und dann den Steam-Guard-Code ein.
  3. Tippen Sie dann „info“ ein, um zu überprüfen, ob Ihr Account als verbunden aufgelistet ist.
  4. Geben Sie „quit“ ein.
  5. Bei zukünftigen Ausführungen müssen Sie kein Passwort mehr eingeben. Führen Sie einfach „steamcmd.exe +login <Nutzername>“ aus.
  6. Stellen Sie sicher, dass die Konfigurationsdatei unter <Steam><Steam>\config\config.vdf gespeichert ist und zwischen Ausführungen aufbewahrt wird, da diese Datei nach erfolgreichen Anmeldungen ggf. aktualisiert wird.

HINWEIS: Falls Sie sich erneut anmelden und Ihr Passwort angeben müssen, wird ein neuer Steam-Guard-Code zur Anmeldung generiert.

Updates verwalten

Nach der Veröffentlichung Ihrer Anwendung erhalten Ihre Kunden den als Standard-Build markierten Build. Beim Hochladen eines neuen Builds empfiehlt es sich immer, diesen zu testen, bevor Sie ihn für Ihre Kunden verfügbar machen. Wie Sie den Test erfolgreich durchführen können, erfahren Sie unter Testen auf Steam.

Debugging von Build-Problemen

Falls Ihr Build nicht funktioniert, suchen Sie in Ihrem Ausgabeverzeichnis nach Fehlerinformationen. Sie können die Konsole, in der das Buildskript ausgeführt wurde, ignorieren. Die meisten Fehlerinformationen können in den Protokolldateien (*.log) gefunden werden.
Sie können zur Behebung von Problemen die folgenden Steam-Client-Befehle und Dateien auf der Client-Seite verwenden:
  • "app_status [App-ID]": Zeigt den aktuellen Status der Anwendung auf diesem Client.
  • "app_info_print [App-ID]": Zeigt die aktuelle Steamworks-Konfiguration für dieses Spiel (Depots, Startoptionen usw.).
  • "app_config_print [App-ID]": Zeigt die aktuelle Benutzerkonfiguration für dieses Spiel (aktuelle Sprache, Installationsverzeichnis usw.).
  • file "logs\content_log.txt": Listet alle protokollierten SteamPipe-Operationen und -Fehler auf.
  • file "steamapps\appmanifest_[App-ID].acf": Zeigt den aktuellen Installationsstatus dieser Anwendung (KeyValues).

Installationsdatenträger für den Einzelhandel erstellen

Um Installationsdatenträger für den Einzelhandel für SteamPipe-Spiele zu erstellen, müssen Sie zuerst eine Build-Projektdatei einrichten.
In diesem Beispiel heißt die SKU-Datei „sku_goldmaster.txt“:
"sku" { "name" "Testspiel-Installer" "appid" "202930" "disk_size_mb" "640" "included_depots" { "1" "202931" "2" "202932" } }
Bitte beachten Sie die folgenden Tipps:
  • Erstellen Sie einen neuen Ordner, in den die Abbilder der Datenträger für den Einzelhandel geschrieben werden sollen (z. B. „D:\retail_disks“). Es werden nur Depots in den Abschnitten „included_depots“ hinzugefügt. Den Abschnitt „exclude“ gibt es nicht mehr.
  • Sie können Steam.exe (mit den Befehlszeilenparametern -dev und -console) oder steamcmd.exe verwenden, um Installationsprogrammabbilder zu erstellen. Verwenden Sie in beiden Fällen den Befehl „build_installer“.
  • Melden Sie sich mit einem Steam-Account an, der sowohl das Spiel als auch alle Depots besitzt, die Sie auf dem Datenträger für den Einzelhandel speichern möchten. Andernfalls erfordert der Account keine speziellen Berechtigungen, sodass jede beliebige Person Installationsprogrammdatenträger erstellen kann.
  • Wenn Sie Steam.exe verwenden, dann stoppen Sie alle anderen Downloads.
  • Gehen Sie zur Konsolenseite und führen Sie den Befehl „build_installer“ aus:
    build_installer sku_goldmaster.txt "D:\retail_disks"
    Der Build kann einige Zeit dauern, da beim ersten Mal alle Depots erneut heruntergeladen werden.
  • Wenn Sie einen GM mit einem lokalen Inhaltsserver anfertigen, dann führen Sie Folgendes aus:
    @localcontentserver "webserver"
    build_installer sku_goldmaster.txt "D:\retail_disks" local
    Die Ausgabe bezieht sich auf „Sicherung“, da „Installationsdatenträger für den Einzelhandel“ und lokale Spielsicherungen praktisch dasselbe sind.
  • Sobald Sie „Sicherung für App-ID … abgeschlossen“ sehen, sind die Installationsdatenträgerabbilder bereit. Weitere Details über den Sicherungsbuild finden Sie in logs\backup_log.txt.
  • Es gibt neue Verzeichnisse (Disk_1, Disk_2, usw.) in „D:\retail_disks“, die nicht größer als 640 MB sind, wie durch „disk_size_mb“ spezifiziert. Jeder Datenträgerordner enthält für jedes Depot eine „sku.sis“-Datei sowie eine CSD- (.csd) und CSM-Datei (.csm). Größere Depots können sich über mehrere Datenträger erstrecken. Alle Inhalte von Installationsdatenträgern für den Einzelhandel sind immer verschlüsselt (im Gegensatz zu lokalen Spielsicherungsdateien). Kopieren Sie die Setup-Dateien (setup.exe, setup.ini usw.) des SDK-GMs in den Ordner Ihres ersten Datenträgers und das Installationsprogramm des Datenträgers für den Einzelhandel ist fertig.
  • Achten Sie beim Anfertigen eines GMs für macOS darauf, auf einem Mac das Abbild „goldmaster/disk_assets/SteamRetailInstaller.dmg“ zu öffnen. Kopieren Sie danach die Anwendung, die sich dort befindet, in das Stammverzeichnis Ihres Datenträgers. Es wird empfohlen, den Namen der Installationsanwendung zu ändern, das Symbol durch eine eigene Grafik zu ersetzen und das Fenster so zu gestalten, dass nur das Installationsprogramm angezeigt wird.
  • Stellen Sie beim Anfertigen eines aus mehreren Datenträgern bestehenden GMs für macOS sicher, dass der Volumename für jeden Datenträger übereinstimmt. Der Volumename wird zu einem Bestandteil des Einbindungspfads. Wenn die Namen nicht übereinstimmen, kann das Installationsprogramm den nächsten Datenträger nicht finden.

Optionale Erstellung eines Installationsprogramms für den Einzelhandel ausgehend von einem Beta-Branch

Im oben beschriebenen Prozess wird ein Installationsprogramm für den Einzelhandel basierend auf dem Standardbranch erstellt. Wenn Sie ein Installationsprogramm basierend auf einem Beta-Branch erstellen wollen, dann müssen Sie zuerst einen Beta-Branch namens „baseline“ erstellen. Verwenden Sie danach den folgenden Befehl, um ein Installationsprogramm ausgehend vom baseline-Branch zu erstellen:
build_installer <Projektdatei> <Zielverzeichnis> <Beta-Schlüssel> <Beta-Passwort> Beispiel mit steamcmd: build_installer sku_goldmaster.txt "D:\retail_disks" baseline superGeheim Beispiel mit Skript: steamcmd.exe +login Benutzername Passwort +build_installer "..\Build\GameDataSku.txt" c:\Zielverzeichnis Beta-Schlüssel Beta-Passwort +exit

Zusatzinhalte mit einem Installationsprogramm für den Einzelhandel installieren

In manchen Fällen kann es nützlich sein, ein Installationsprogramm für den Einzelhandel zu erstellen, in dem Ihre Zusatzinhaltspakete enthalten sind. Die Erstellung des Installationsprogramms erfordert nur wenige Änderungen.
Fügen Sie in der Datei „sku_goldmaster.txt“ die App-IDs der Zusatzinhalte im Abschnitt „included_depots“ ein. Suchen Sie nach dem Ausführen des Prozesses „build_installer“ die generierte Datei „sku.sis“ für das Installationsprogramm und öffnen Sie sie mit einem Texteditor.
Fügen Sie die App-IDs der Zusatzinhalte im Abschnitt „apps“ hinzu. Beispiel: Bei einem Spiel mit der App-ID 1000 und einem Zusatzinhalt mit der App-ID 1010 können Sie den Abschnitt „apps“ folgendermaßen anpassen:
"apps" { "0" "1000" "1" "1010" }
Dadurch wird gewährleistet, dass Steam den Besitzer des Zusatzinhalts überprüft und den Benutzer zur Eingabe eines Produktschlüssels auffordert, wenn der angemeldete Steam-Account den Zusatzinhalt nicht besitzt.

Ein Installationsprogramm für den Einzelhandel für mehrere App-IDs auf einem einzigen Datenträger oder in einem einzigen Installationspaket erstellen

Damit kann ein GM angefertigt werden, der mehrere SteamPipe-Anwendungen enthält. Erstellen Sie nacheinander alle Anwendungsinstallationsprogramme, aber verweisen Sie in allen auf denselben Ausgabeordner. Jeder Build wird mit dem bereits existierenden Installationsabbild zusammengeführt.

Einen Installationsdatenträger für den Einzelhandel anpassen

Weitere Details zum Anpassen Ihres Installationsdatenträgers für den Einzelhandel finden Sie unter Einen Gold Master anpassen.

Spiele vor Veröffentlichung vorausladen

Standardmäßig sind alle Inhalte auf allen Datenträgern für den Einzelhandel und auf allen Inhaltsservern immer verschlüsselt. Wenn ein Spiel in den Vorlademodus geschaltet wird, können die Besitzer die Inhalte zwar herunterladen, aber er bleibt auf dem Datenträger des Benutzers verschlüsselt und kann nicht gespielt werden. Sobald das Spiel offiziell veröffentlicht wurde, entschlüsselt Steam diese vorausgeladenen Inhalte und der Benutzer kann das Spiel spielen.

In den folgenden Fällen wird empfohlen, ein Spiel in den Vorlademodus zu schalten:
  • Auslieferung von Datenträgern für den Einzelhandel mit Produktschlüsseln, bevor das Spiel tatsächlich erhältlich ist (0-Tage-Piraterie).
  • Spiele, die im Vorverkauf erhältlich und größer als 20 GB sind.

Bitte senden Sie ein Ticket an Steam Publishing, wenn Sie denken, dass Ihr Spiel im Voraus herunterladbar sein muss.

Zusatzinhalte erstellen

Zusatzinhalte werden als ein Depot des Hauptspiels erstellt. Weitere Informationen finden Sie im Dokumentationsartikel Zusatzinhalte (DLC).

Fehlerbehebung für SteamPipe

„Anmeldefehler: Account-Anmeldung verweigert/fehlgeschlagen“ beim Anmelden über steamcmd.

Ursache: Wahrscheinlich verhindert SteamGuard die Anmeldung. Lösung:
  • Rufen Sie E-Mails für die E-Mail-Adresse ab, die mit dem Account verknüpft ist, mit dem Sie sich anzumelden versuchen. Suchen Sie nach einer E-Mail vom Steam-Support. Kopieren Sie den Code aus dieser E-Mail.
  • Führen Sie den folgenden steamcmd-Befehl aus: set_steam_guard_code <Code>.
  • Versuchen Sie, sich über steamcmd erneut anzumelden: Steam>login <Build-Account> <Passwort>.

Allgemeine Fehlerbehebung für Probleme beim Herunterladen

  • Starten Sie den Computer, das Modem, den Router usw. neu.
  • Überprüfen Sie die Einstellungen Ihrer Firewall. Das neue System erfordert Port 80 (HTTP) und alle anderen Steam-Ports, die hier aufgeführt sind.
  • Deaktivieren Sie vorübergehend die lokalen Antiviren- oder Spamschutzprogramme.
  • Überprüfen Sie die Steam-Downloadregion unter Einstellungen > Downloads. Diese Region sollte Ihrem Standort entsprechen.
  • Stoppen Sie den Download, deinstallieren Sie das Spiel und installieren Sie es erneut (dadurch werden die Manifest-Caches gelöscht).
  • Schließen Sie Steam und löschen Sie die beiden Ordner „appcache“ und „depotcache“ in Ihrem Steam-Installationsverzeichnis.
  • Versuchen Sie, Ihre Steam-Downloadregion auf einen anderen, weit entfernten Standort einzustellen. Dies könnte funktionieren, falls ein Inhaltsserver in Ihrer Nähe fehlerhafte Daten liefert.

Meine Mac- und/oder Linux-Builds installieren keine Dateien. Woran liegt das?

Wenn Sie über Steam die Installation Ihres Spiels oder Ihrer Anwendung über mehrere Plattformen hinweg testen, könnten Sie auf eine Situation stoßen, in der ein Build unter Windows funktioniert, aber bei einem Mac oder unter Linux keine Dateien implementiert, obwohl Ihr SteamPipe-Prozess dafür konfiguriert ist, Mac- und/oder Linux-Depots hochzuladen. Es gibt einen Schritt, den man leicht übersehen kann und bei dem Ihre alternativen Depots zum Paket hinzugefügt werden. Mit den folgenden Schritten können Sie überprüfen, welche Depots in einem Paket enthalten sind:
  1. Rufen Sie die Anwendungsverwaltung für Ihre Anwendung auf.
  2. Klicken Sie im Abschnitt „Verwandte Elemente anzeigen“ auf Alle verknüpften Pakete, Zusatzinhalte, Videos und Werkzeuge.
  3. Klicken Sie auf den Titel des Pakets, das Sie herunterladen möchten.
  4. Prüfen Sie den Abschnitt Inbegriffene Depots.
  5. Verwenden Sie Depots hinzufügen/entfernen, um sicherzustellen, dass dem Paket die richtigen Depots zugewiesen sind.
Es gibt eine Reihe von englischsprachigen Diskussionen zu diesem Thema, die Ihnen ebenfalls helfen könnten:

Das Ausführen von steamcmd.exe führt zu folgendem Fehler: „SteamUpdater: Fehler: Steam muss zum Aktualisieren online sein. Bitte überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es erneut.“

Lösung: Gehen Sie auf Internetoptionen > Verbindungen > LAN-Einstellungen und überprüfen Sie automatisch entdeckte Einstellungen.

Das Ausführen des Anwendungs-Builds führt zu folgendem Fehler: „FEHLER! DepotBuild für scriptname.vdf“ fehlgeschlagen – Status = 6.“

Mögliche Ursachen:
  • Der Account verfügt nicht über die nötigen Berechtigungen für die Anwendung.
    • Überprüfen Sie, ob die App-ID in der Datei app_build.vdf korrekt ist.
    • Überprüfen Sie, ob der Build-Account die richtigen Berechtigungen für die App-ID hat.
  • Steamcmd kann die Depot-Inhalte nicht finden.
    • Überprüfen Sie, ob der „contentroot“-Wert des app_build-Skript ein gültiger relativer Pfad zum Speicherort der Skriptdatei ist.
    • Überprüfen Sie, ob der „LocalPath“-Wert im depot_build-Skript ein gültiger relativer Pfad zum Pfad im app_build-Skript ist. Überprüfen Sie, ob der Pfad tatsächlich Inhalte enthält.

Das Ausführen des Anwendungs-Builds führt zu folgendem Fehler: „FEHLER! Abruf von Anwendungsinformationen für die Anwendung NNNNN fehlgeschlagen (Anmeldung und Abonnement überprüfen).“

Dies bedeutet, dass Steam keine Informationen über die Anwendung abrufen kann, weil sie entweder nicht existiert oder der Benutzer keinen Zugriff auf die Anwendung hat.
  • Überprüfen Sie, ob NNNNN die App-ID ist, die Ihnen für die Anwendung zugewiesen wurde.
  • Überprüfen Sie, ob die App-ID in der Datei app_build.vdf korrekt ist.
  • Wenn es eine neue App-ID ist, dann überprüfen Sie, ob die Steamworks-Anwendungsverwaltungskonfiguration veröffentlicht wurde. Neue Anwendungen sollten über ein SteamPipe-Installationsverzeichnis sowie ein -Depot verfügen, die Sie beide unter „Steamworks-Einstellungen bearbeiten“ finden können. Das Installationsverzeichnis können Sie im Installations-Tab unter „Allgemeine Installationen“ und die Depots im SteamPipe-Tab finden. Sämtliche veröffentlichten Änderungen werden über das Veröffentlichungs-Tab vorgenommen.
  • Wenn das alles korrekt ist, dann stellen Sie sicher, dass Ihr Account die App-ID besitzt.

„Bei der Installation von [Anwendungsname] ist ein Fehler aufgetreten (ungültige Inhaltskonfiguration).“ (beim Start)

Mögliche Ursachen:

Ich kann mich nicht mehr daran erinnern, wie der steamcmd-Befehl lautete oder wie er funktioniert hat.

Verwenden Sie in steamcmd den Befehl „find“, um nach steamcmd-Befehlen zu suchen. Der Befehl „find“ kann nach teilweise angegebenen Befehlsnamen suchen und listet die Befehlssyntax auf.
Steam>find build_installer ConVars: Commands: build_installer : <project file> <target folder> <beta key> <beta pwd>