Introduction to the SteamPipe Content SystemSteamPipe is the game/application content system that powers Steam. SteamPipe includes the following features:. Efficient and fast content delivery. Unlimited public and private 'beta' branches, allowing multiple builds to be tested.
Steam launch options can be used to change game settings, enable features, and even create a shortcut to bypass the Steam login window. Please see the Setting Game Launch Options topic if you would like information on using launch options for specific games. How to boost your Steam download speed. Its software, available for PC, Mac, and mobile devices, allows people to 'play, connect, [and] create.' Open the Steam settings page.
Simple web-based management of builds - push out a new build or rollback to a previous build with just a few clicks. Ability to see the update size of a build before setting it live. Ability to share content between multiple applications.
Ability to from public or beta content. Games/apps stay available offline even after an update download has been started. All content is always encrypted, and non-active versions are not visible to customers. A which can be used during development. NOTE: There are a few concepts which are integral to SteamPipe, before getting started you should be familiar with all of the concepts outlined in the documentation. Having even a basic understanding of how these pieces fit together will be very useful when uploading your product to Steam. Steamworks Video Tutorial - Building Your Game in SteampipeThis tutorial introduces SteamPipe and steps through building a sample application for Steam via the Steamworks tools.
Steamworks Video Tutorial - Adding New Platforms and LanguagesThis tutorial walks you through adding new platforms and languages to your game by adding depots to your app. SteamPipe Technical DetailsSteamPipe uses the HTTP protocol for content delivery. Since downloads are regular web traffic, any third-party HTTP cache between the customer and Steam servers will increase download speed. Content can be hosted by external CDN providers, which can be easily added to our content network. Most consumer firewalls allow HTTP traffic and won't block downloads. SteamPipe has an efficient patching algorithm based on binary deltas, only changing the modified portions of existing content files.
When this content is updated, only these deltas need be sent. This means both developer and user transfers are smaller and faster. Most partners will find that using a not necessary since they can efficiently patch builds on private branches. Steam Build AccountBefore you can create any builds on Steam, you must have a Steam account in your Steamworks account with the 'Edit App Metadata' and 'Publish App Changes To Steam' permissions granted. For security reasons it's recommended that you have a dedicated build account with just those permissions, you may create a new Steam account for this purpose at.
Any administrator of your Steamworks account can add a Steam account and grant the necessary permissions. More information on this process can be found in the documentation.
An example of what this account might look like is: Initial Setup for New SteamPipe AppsFollow these steps to set up new SteamPipe apps:. Find the app ID for your application (this can be found by selecting the application on your homepage in Steamworks). Go to the page for your app. Define at least one launch option (the path and optionally, any arguments required to launch the game). Hover over the (?) to learn more about each field. The example below shows 4 launch options, 2 for Windows and 1 each for MacOS and Linux. Launch option 3 will only be shown on Windows if the user also owns the DLC specified.
Go to the page and add depots as needed for this app. By default, a depot may already be configured for your application. Click the default depot and change the name of the depot to a proper and recognizable name (such as 'Base Content' or 'Windows Content').
Leave the language set to All language unless this is a language-specific depot. Leave the OS set to All OSes unless this is an OS-specific depot (if the app is all-in-one, or is just PC or just Mac, it should be left to All OSes. Only specify for OS-specific game depots. Click Add New Depot to create additional depots. Click Save Changes to save any changes made. Once you are done defining your depots, publish the changes that you have made from the page. Your newly defined depots will need to be included in a package to grant you ownership of them.
Each game on Steam should have a Developer Comp package which is automatically granted to the accounts listed within your publisher group. You can add the new depots to that package (and/or other packages that should have these depots) on the page. Note: If your executable is in a sub-folder of the main installation folder, add the sub-folder name in the Executable field. Don't use leading slashes or dots. Setting up the SDK for SteamPipe uploadsDownload and unzip the latest version of the Steamworks SDK on the machine you will be uploading builds on. The SteamPipe tools can be found within the SDK in the tools folder which contains 2 relevant sub-directories. The ContentBuilder directory is where your game content and SteamPipe build tools will live.
This directory contains the following sub-directories:. builder - This directory initially contains just steamcmd.exe which is the command line version of Steam. builderlinux - The linux version of steamcmd. builderosx - The macOS version of steamcmd. content - This directory contains all game files that will be built into depots.
output - This directory will be the location for build logs, chunk cache, and intermediate output. NOTE: This folder can be deleted or emptied at any time, but after it's deleted, the next upload time will take longer. scripts - This directory is where you'll place all of your build scripts for building your game depots. It's recommended that you run steamcmd.exe directly in the builder folder for your platform once to bootstrap your build system.
This should populate your builder directory with all the files it needs to build depots. The ContentServer directory contains the tools for running your own if you choose to do so.
SteamCmd on macOSTo enable SteamCmd on macOS you must complete the following steps:. From the terminal, browse to the tools ContentBuilder builderosx osx32 folder. Run chmod +x steamcmd. Browse up to the parent folder (tools ContentBuilder builderosx). Type bash./steamcmd.sh.
SteamCmd will then run and update to the latest build, leaving you in the SteamCmd prompt. Type exit and press return to exit the prompt You can then follow the rest of this documentation (substituting paths as appropriate) to create depot and app config files for uploading your content to Steam.
Creating SteamPipe Build Config FilesTo upload your app with SteamPipe, you must create scripts which describe your build and each depot that will be included in it. There are simple example scripts in the ContentBuilder scripts folder for an app with one depot.
NOTE: You can name these scripts what ever you want, but we use the names appbuild and depotbuild for consistency. If you know that you'll be building apps on this machine, it might be a good idea to create sub-directories in your scripts directory for each application, to help organize each application's build scripts.
SteamPipe GUI ToolIf you're running on Windows and would prefer a GUI tool to help create these config files and upload your builds you can use the SteamPipeGUI which is available in the tools folder of the Steamworks SDK. Included in the zip are additional instructions to get you started. If you choose to use the GUI tool then reading the following sections is still recommended to help you become more familiar with how the SteamPipe system works. Depot Build ScriptFirst create a depot build script for each depot you are wanting to upload. Start by duplicating the depotbuild1001.vdf script and renaming it with the depot ID that it will be uploading. Example depot build script. Builder steamcmd.exe +login 'account' 'password' +runappbuild.
Scripts buildscriptname.vdf +quit NOTE: Your first attempt at running a build may fail due to Steam Guard. If the logon fails due to Steam Guard, check your email for the Steam Guard code, and run steamcmd as: steamcmd.exe 'setsteamguardcode ', and try again. After logging in with Steam Guard once, a sentry file is used to verify the login is genuine. After you run runbuild.bat, your build output should be in the directory specified in your build script file.
If the preview build produces the expected manifest, run the build again with 'preview' '0' in your app build script. The following steps occur during a SteamPipe build:. Steamcmd.exe is logging into the Steam backend using the given builder Steam account. The app build start is registered with the MDS (Master Depot Server), which will ensure the user has the proper privileges to modify this app. For each depot included in the app build, a file list is generated based on the files in the content folder and the filter rules defined in depot build config file. Each file is scanned and divided into small chunks of about 1MB.
If the depot has been built before, this partitioning will preserve as many of the unchanged chunks as possible. New file chunks are compressed, encrypted, and then uploaded to the MDS. A final manifest is generated for this depot version; each manifest is identified by a unique 64-bit manifest ID. Once all depots have been processed, the MDS finishes this app build and assigns it a global buildID.
After the build is done, there may be.csm and.csd files in the build ouput folder. These are temporary and can be deleted, but they speed up subsequent build times. Managing UpdatesAfter your app releases to customers, your customers will be receiving the build marked as the Default build. When uploading a new build it's always a good idea to test it before shipping it to your customers, for more information on how to successfully do this see. Advanced File Mapping RulesThere can be multiple file mappings that add files to the depot. They should be listed first. Files or subfolders can be excluded with filter expressions.
Steam can be marked during the build process so the Steam client knows to run them for any application which mounts the Depot. Files or folders can be remapped, so sub-folders in the content folder can be mapped to anywhere in the depot. Files can be tagged with special flags:. userconfig - This file is modified by the user or game. It cannot be overridden by an update, and it won't trigger a verification error if it's different from the previous version of the file. readonly - This file will be marked as read-only for the client file system. hidden - This file will be marked as hidden for the client file system.
executable - This is an executable file (for OS X only). Buildinstaller skugoldmaster.txt 'D: retaildisks' The build can take a while since all depots are re-downloaded the first time. If you're building a GM using a local content server, run: @localcontentserver 'webserver' buildinstaller skugoldmaster.txt 'D: retaildisks' local The spew refers to 'Backup' since 'Retail install Disk' and local game backups are basically the same.
Once you see 'Backup finished for AppID.' , the install disk images are ready. You can find more details about the backup build in logs backuplog.txt. There are new folders (Disk1, Disk2, and so on) in 'D: retaildisks', each not bigger than 640 MB, as specified with 'disksizemb'.
Each disk folder contains a 'sku.sis' file and a.csd and.csm for each depot. Bigger depots span across multiple disks. All retail install disk content is always encrypted (unlike local game backup files). Copy the SDK GM setup files (setup.exe, setup.ini, etc.) into the folder of your first disk and the retail disc installer is complete.
![Where Where](https://docs.unrealengine.com/portals/0/images/Programming/Online/Steam/SteamworksCSFile.png)
When creating a GM for OSX, be sure to open the goldmaster/diskassets/SteamRetailInstaller.dmg image on a Mac. Then take the app that is in there and copy it to the root of your media.
You will probably want to change the name of the install app, brand the icon and decorate the window to only show the installer. When creating a multi-disc GM for OSX, be sure the volume name for each disc matches. The volume name becomes part of the mount path, and if the names don't match the installer won't be able to find the next disc. Optionally building a retail installer from a beta branchThe process above will create a retail installer based on the default branch. If you need to create an installer based on a beta branch, you must first create a beta branch named 'baseline'.
Then use the following command to build from the baseline branch. Buildinstaller steamcmd ex: buildinstaller skugoldmaster.txt 'D: retaildisks' baseline superSecret script ex: steamcmd.exe +login username password +buildinstaller '. Build GameDataSku.txt' c: destination betakey betapassword +exit Installing DLC from a retail installerIn some circumstances, you may wish to create a retail installer that includes your DLC packages. In such cases, the process to create the installer requires only a few changes. In 'skugoldmaster.txt', include the DLC AppIDs under the 'includeddepots' section.
Once you have run the 'buildinstaller' process, find the generated sku.sis file for the installer and open it with a text editor. Add the DLC AppID in the 'apps' section. For example, if I had a game with AppID 1000 and DLC AppID 1010, I would adjust the 'apps' section as follows.
Yesterday, fellow How-To Geek writer recommended a Steam game in our office chat room. It’s all about writingand also it’s about anime-style schoolgirls and the wooing thereof.
But what gave me pause more than the warnings of implied cartoon coitus was the idea of said game appearing on my public Steam profile, visible to people like my grandmother and my boss and anyone who might be Googling me before a first date. Before playing this new game, I want to make my Steam profile, including my list of owned games and playing habits, private. Here’s how you do that. And by the way, if you’re wondering what the game is and why I’m now drawing attention to the fact that I own it, the answers are 1), which I am reliably informed is Not Safe For Work and 2) this is actually just an elaborate setup to make you more personally invested in the article below. Is it working? How to Disable Your Public Profile In the Steam desktop app, move the mouse cursor over your profile name tab—it should be directly to the right of “Community.” In the dropdown menu, click “Profile.” On this page, click “Edit Profile” in the upper right corner, then click “My Privacy Settings.” From here you can select three options for Steam profile. They’re pretty self-explanatory on the page, giving options for total privacy or access only to your Steam friends.
If you want absolutely no one to see your games, comments, or inventory on the public web, select “Private” for all three. Scroll down and click “Save changes.” Now when you or anyone else opens your Steam profile on the web, they’ll see the following message. What Do You Lose With a Private Profile? Even when your profile is private, you can still send and receive friend invites within the Steam social system and even trade items. However, the hub for your personal sharing, including badges, screenshots and videos, game reviews, guides, and other uploaded content, won’t be accessible to other users unless you add them as friends (and not even then if you selected “Private” instead of “Friends only.” Also, third-party tools that use public information for Steam, like, won’t be able to access that information on your profile. Image credit:.