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.