Friends, food, and flourishing

Steamworks for this dummy

I’ve had a Really Hard Time working out how to use Steamworks for Cryptid Kitchen. The first play test release was fine; I followed some here’s-how-to-get-started videos, like this one. However, I couldn’t figure out how to release the next play test version. I eventually got it, by stumbling around.

The problem wasn’t the procedures for using Steamworks. It was my mental model of Steamworks. In particular, a false belief about depots led to mistakes. This post isn’t a what-to-click script. It’s about Steamworks concepts. Understanding them helps the what-to-click stuff make sense.

The key concepts are: app, depot, build, package, and branch.

An app is a product on Steam, with a store page, and a community hub. If people can buy different versions of your game (for Windows and Mac, for example), they are all part of the same app. Cryptid Kitchen is an app.

Apps can be related. For example, CK and CK play test are different apps, with different app ids. They are related, though:

Related apps

(I’m not sure if the play test has to be a separate app, though.)

A depot is a collection of files on the Steam product distribution server. They’re delivered to users as a group. You can make depots for the main game, localization files, DLCs, whatevs.

 Depots have attributes…

Depot attributes

… like the OS the depot is for.

CK has a depot for the play test version, with all the files needed to run the game. There is only a Windows version of CK currently, so only one depot is needed. If there was a Mac version, there’d be another depot for that, with a different value for the OS attribute. Users would download one depot or the other. The Steam client would pick the one to download, based on what users buy.

How do you make a depot? First, you have a folder on your PC you can think of as your local depot source. It has the game’s runtime files. Second, you create a depot on the Steamworks admin site (getting a depot id). Third, you run a Steamworks upload program, telling it your local depot file source, and what depot to put the files in. (And some other stuff, like the app id).

There’s a command line tool for doing uploads. It’s part of the Steamworks SDK. However, I used a Windows GUI tool. It’s easier. Easy is good.

As you update the game, copy new files to your local depot source, replacing what was there. Then you run the upload program with the same settings as the first time. The new files will replace the ones already in the depot.

I made the mistake of thinking I needed a new depot for each new version of the game (0.95 beta, 0.96 beta, etc.). It ain’t so. Steamworks tracks versions through builds.

A build in Steamworks isn’t the same as a build in compiler land. A Steamworks build is a snapshot of one or more depots at a point in time. Like deports, builds live on a Steam product distribution server, not on your PC.

You don’t make builds directly. When you update depots (replace files in your PC’s depot source folder, and run the upload program again), Steamworks makes new builds from the depots automatically.

A build can include depots for different systems. You can have one build referencing two depots, one for Mac, and one for Windows. The Steam client will work out which one to send to a user.

A package is a set of one or more applications and depots people can buy on Steam. It’s the purchasing unit, the SKU, if you like. You could, for example, have one package with your main game depot, and another package for a Gold Edition with the main game depot, and two DLC depots.

A branch, also called a beta, is a build people can download through Steam. You can have development branches, testing branches, etc. Builds on the default branch (there always is one) are what people normally download when they buy your app.

CK only has one branch: default. CK play test in a separate app, with one default branch. It may be that I could have made the play test a branch of the main CK app. I don’t know.

So, that’s it. Please tell me if I made any mistakes.

I’ve had a Really Hard Time working out how to use Steamworks for Cryptid Kitchen. The first play test release was fine; I followed some here’s-how-to-get-started videos, like this one. However, I couldn’t figure out how to release the next play test version. I eventually got it, by stumbling around.

I’d rather not stumble around. Hence this post, to make sense of it all.

Leave a Reply

Your email address will not be published. Required fields are marked *

css.php