While creating reaktron (https://reaktron.com — a snaker game on powerups), we not only had to think about how to implement the game, but also where to publish it. In the end, we decided to go with Steam. This article is about the steps we had to take until we could sell our game on Steam.

Signing up

The first thing we did was creating a Steam partner account (https://partner.steamgames.com/). This involves some paper work because US authorities require you to provide a lot of information. Also, some NDAs with Valve have to be accepted. Once this is done, you get access to the Steam partner portal which provides four important functionalities:

Steam SDK releases Steam SDK documentation A portal to configure your app A portal to create your shop site

Integrating The Steam SDK

The Steam SDK is a well-documented C++ library. It comes with an example game and there are (unofficial) bindings for many programming languages. Since our game is written in Python, we tried out unofficial Python bindings. Since we didn’t like these, we created our own Python bindings which we may release as open source at some point in the future. It is important to note, that the Steam SDK provides a lot of general purpose functionality that you can use instead of creating your own solutions. E.g. you can use the Steam SDK to send and receive network packages instead of utilizing low-level socket networking yourself. Also, there are solutions for matchmaking, lobby communication and much more. Therefore you should start integrating the Steam SDK at an early stage of your development to avoid writing code which may be provided by the SDK.

Hint for Linux users: for the Steam Overlay to work with your app, you have to set LD_PRELOAD=”$HOME/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so” when launching from outside Steam. However, you should not export this variable since it will break various applications in your terminal in a very subtly way.

Configuring Your Steam App

To actually run your app after you have integrated the Steam SDK, you need a Steam “app id”. An app id will be assigned once you have created and configured a new app using the Steam partner portal. You will have to provide some graphical assets, texts, paths to executables, and more. After uploading your game, it will be available on Steam (only to your developers) and can be tested. Read about how to automate the deployment to Steam. A pitfall can be that you have to edit various places in the Steam partner portal when adding a new platform. If you encounter problems like your game being zero bytes of download size in the Steam Library or Steam not being able to launch your game, you most likely missed one of the places to configure inside the Steam partner portal.

Creating The Store Page

For your store page, you have to provide numerous graphical assets and texts. Also, to us it looked like a trailer video is mandatory. We also marked our game as “Early Access” which required us to write additional explanations about what to expect in the “Early Access” version of the game and for how long the Early Access phase should roughly last. You should also think about which price label to put on your game and whether you want to grant a release discount or not. We also noticed, that it is not possible to include external links within your store page texts as these get stripped out.

Publishing The Game

Before your app can be released to the public, it has to pass an official review by Valve. Also, your shop site will be reviewed before it can go live. To us, the review process was valuable. Not only did the reviewer bring up important issues, but he also gave some recommendations for improvements. The review was started quickly, seemed to be done thoroughly, and findings were well-documented (thanks, Tony!). After a few iterations, our app passed the review and we could put the game into the “coming soon” state and set a release date. This release date has to be at least two weeks in the future, so the “coming soon” state has to last at least two weeks. Once, these two weeks have passed, you can release your game at any time. During the two “coming soon” weeks, you can edit your store page and deploy new versions of your game without any problem.