Are you wondering how to put your game
on Steam? Like, in practice, how to take your game that you have in Unity or some other
game engine and make it playable through Steam? Good, you’re in the right place! In this video
I will first give you a very quick rundown on how the game builds are handled in Steam and what
are the most important concepts there. After that I will also show in practice how you
can upload your game to Steam.
Hey, my name is Auro. I’m a full-time indie
game developer, creator of Mortal Glory and currently working on a game called Chambers of
Devious Design. On top of that, I also make these weekly youtube videos, sharing my experiences,
to help you on your own gamedev journey.
Alright, let’s start with a quick rundown
on the basics. There are 4 Steam related words that you should know about. Those
are: Depot, Build, Branch and Package.
Let’s start with the Depot. Depot is essentially
a collection of files that Steam will deliver to players’ devices. You are the one who decides what
any depot contains. In the simplest and probably most common case, you will have just one depot
and that depot contains the latest version of your game. But, you can also have multiple depots. In
that case, the first depot might contain a windows version of your game, the second depot could
contain a linux version of your game, the third could contain DLC files for your game and a fourth
one could contain some exclusive soundtrack files for your game. You will be able to decide which
of your players get access to which depots.
It depends on your situation how many depots you
should have. If you only have one collection of files and you want to deliver those
same files to all of your customers, then having just one depot is the right answer.
Ok, so that’s depot. Let’s move on to build. Build is just a collection of depots. When you
upload your files to Steam, so in other words, when you upload your depots to Steam, a new
build is created within Steam. You can have as many builds as you want. In a simple example,
build 1 could contain version 1.0 of your game and a newer build 2 could contain version 1.1
of your game. In most cases I would say it’s safe to think of builds as basically just
different version numbers for your game.
Next, what is a branch? Branches are used to
define which build of the game your players will get. By default, all games have just one
branch, the default branch that every new player is on. So all your players will get delivered the
same game build that you have set for that branch. But you can also add new branches. You could
have for example a beta branch that has a newer build of the game and only let a few
players access that branch. You yourself can define how many branches your game has and which
build is active on each of those branches.
Those 3 terms should give you a good understanding
of how your game files are handled within Steam, but let’s still quickly talk
about one more related term: the Package. Packages are how players can get
access to your game. The most common situation is that the player buys the game on your steam
page, in other words, buys the default store package for your game and by doing that, gains
access to a package that contains your game.
The default store package is usually enough and
you don’t need to do anything special to get it working. But it’s good to know that you can
also create additional packages and define what applications and/or what depots those packages
contain. You could for example create a package that contains all your games or a package that
contains a million different DLCs to your game.
So that’s the quick theory portion. Now let’s
see in practice how you can upload your game builds to Steam. There are a few different ways
to upload builds to Steam and many professional developers have probably automated the process
to some extent. What I will show you is the simple way that should work with all games and
how I do it myself. Alright, let’s start!
First of all, you need to have a Steamworks
developer account. If you don’t have one, I have a separate video about how you can get one.
I’ll leave a link to that in the description. Now, assuming you have the account, you first need
to download the Steam SDK. You can find a link to the latest version on your steamworks
home page. Once you have downloaded it, extract the files and within them, find a folder
called “ContentBuilder”. It should be under the “tools” folder. Under the “ContentBuilder”
folder, create a new folder for each of your depots. Let’s assume you have just one depot so
create just one folder. You can name it whatever you want, for example “Windows version”.
Now, to get something to fill that folder with, go to Unity or whatever engine you are
using and build the game. Once it’s done, copy-paste all the build files into
the new folder you just created.
Alright, so now you need to find a zip file called
SteamPipeGUI within the Steam SDK files. It should also be under the tools folder. Extract the files
in that zip file. There’s a short readme file in there that’s good to read, but let's continue with
the tutorial. The other file you extracted is the executable for a Steam Pipe Graphical User
Interface app. Open the file to run the app.
In here, you will need to fill out some
details. At the top fill in the ID of your app, which you can see on your steamworks page. Then
you can enter whatever build description you like - it doesn’t matter what it is. Under those
there’s a depot list where you will need to add all the depots you want to upload. We only created
one folder so add that folder to this list. The Depot ID should be correct automatically if you
only have one depot. If you want to make sure or otherwise check your depot ID’s, you can do that
on the depot page in your Steamworks settings.
Then, at the bottom you also need to add
the path to your ContentBuilder folder and also fill in the account details of
your Steamworks developer account.
If this is your first time uploading a build
for your game, you will also need to press the Generate VDFs button. This will create some
configuration files that are needed for the upload process. You only need to press the
button once and later on repeat only if you add new depots to the list or your configuration
files have been removed for some reason.
Ok, now we have everything set up in the tool.
Press upload and a command line interface will pop up. It will probably first do some updates
and then it might ask you for a Steam Guard code. After you pass those, it should start
uploading your build and if everything goes smoothly, the command line will soon disappear
and you will have a log message saying that it was a success. You can now close this app.
Let’s go check out our newly uploaded build in Steamworks. Navigate to the builds section
in your Steamworks settings. In here, you can see all the builds you have uploaded,
including the one you just now uploaded.
But before we do anything with that, let’s go
to the General Installation section under the Installation tab. In here we need to tell
Steam how your game can be opened. So add a new launch option and in there fill in the
details. If you are not doing anything special, the only thing you need to do here is add the
name of the Executable file. Do note that if your executable file is inside a folder in your build,
you will need to add the exact path for that file. After setting up the launch option, you need to go
to the publish tab and publish changes so that the new launch option will work. Don’t worry. Your
game will not be published by doing this.
Once we are done with that, let’s go back to the
builds section. Now in your newly uploaded build, set the branch as default and hit preview change.
You still need to confirm the change on a new page and then after that your build will be live
on the default branch. And no worries again, this doesn’t mean random people can
now play your game. It just means that your game can now be played through Steam by
those who have access to the default branch. If you haven’t given out access rights to anyone, it
should be just you who can now play the game.
Let’s go see if it works. If your steam
has been running in the background, you might need to restart it. Seems to work great, that’s what you want to
see. But if instead of seeing your game pop up, you see an error like this… You probably messed
up something with the Launch Option details, like I did with a typo in the executable
name. Go recheck that and do note that you might again need to restart your
steam for the change to take effect.
But otherwise if you didn’t get any errors,
that’s it! That’s the whole process. On the first time it’s a bit of work to figure
out everything, but after that it’s very easy.
When you want to update your game, you just build
a new version of the game in your game engine, upload a new build with your SteamPipe tool and
in the build tab set the new build to the default branch. Now you have a new version out that will
automatically be delivered to your players.
Before I end the video, I’ll quickly
show you a few additional things that might be interesting to you.
What if you want to give someone else access to play your game during the
development phase? To achieve this, you can go to the Request Keys section in
Steamworks and submit a request. There are separate sections there that are meant for the
development team or testers. After submitting the request, you will usually get them within
a few hours once Steam grants the request.
While you are uploading your first builds, you
might also want to create a new branch in the build settings. This will enable you to have
multiple builds active for your game on Steam so you can have your default branch that
normal players use and then for example a password-protected beta branch that you can use
to test newer builds that might not yet be quite ready for the default branch. This way you can
hopefully avoid any awkward situations where suddenly none of your players
can actually start the game.
If you need to have multiple depots for your game.
For example a different depot for a mac version, you can go to the Depots tab here, add a new
depot and set the details accordingly. Then when you are doing this whole uploading process,
you just need to have additional folders for the additional depots and in the SteamPipeGUI
you need to have all the depots added on the list. Also remember that whenever you
add a new depot, you also need to recreate the VDF configuration files. Now when you upload
the build, it will include multiple depots.
And that’s everything you need to
know to start uploading your games to Steam. I hope this was helpful to you and let
me know in the comments if there was anything that is still unclear. Alright, thanks for
watching and I’ll see you in the next one!