Register with Valve

Your first step is to navigate to partner.steamworks.com. We strongly recommend you create a new Steam account to represent you as a publisher or developer, separate from any personal account/s you might have. Remember, new Steam accounts start as "limited" Put $5 in your Steam wallet to get around this.

Step 1

Steamworks has its very own Getting Started guide ... read it and follow it

Read this ... do as it says

Sign up for Steamworks

If you read the getting started article linked above and followed its instructions, you should have already been guided to pay the Steam Direct fee which will get you your first App ID.

Do I need it to get started?

Technically ... for the very first step ... no. In reality absolutely yes, you can't do anything meaningful without your App ID.

You can test some features of the Steam API using the test application "Spacewars" whose app ID is 480. This is the app ID we use in all of our Steamworks sample scenes and doesn't require you to be signed up to use it.

Having said that, you can't do anything meaningful with the test app, it exists as a teaching tool. To create the stats, achievements, leaderboard, workshop, etc. for your game you will require an App ID, and we do recommend you do this as soon as you are sure you want to release your game on Steam ... no reason to wait.

Steamworks SDK - aka Steam API

Once you're all set up as a Steam Developer and have your App ID your next step should be to get familiar with Steamworks and what it has to offer.

Steamworks is a dense topic with loads of features that can and will benefit any game. Be sure to check out our article on Steamworks. This is one of those things in life where it's better to read first and then do, than it is to YOLO it.

Tools

Already fully understand what Steamworks is and how it can benefit your project? Great ... now your ready to integrate it with your project.

Heathen's Toolkit for Steamworks SDK is the best tool for Valve's Steamworks SDK in Unreal, Unity or Godot (preview). The tool has been maintained and updated for over a decade, is trusted by thousands of developers and drives hundreds of games on Steam. Toolkit for Steamworks is more than just an API wrapper, it includes engine-specific tools and systems on top of a complete integration of Valve's Steamworks, coupled with rich documentation, best/good practices and a helpful community.

Steamworks Complete
Cover

Complete | Foundation

Cover

Foundation

Unlearning Bad Habits

Unfortunately, there are a lot of just bad samples and example code out there, especially around Steamworks / Steam API for Unity. Even Unreal's own built-in Online Subsystem Steam and Steam Sockets plugins are very out-of-date and make some odd uses of the API that do not align with "good practice" as defined by Valve. Here are some common things you might have picked up or learned that you should throw out right now.

Unreal's Online Subsystem Steam

1st, understand what an Online Subsystem is. ... TL;DR is not a full-featured platform integration, very specifically it is a limited platform integration that attempts to normalize platform features for many platforms into a common set. This means it will never be a complete solution, it's not trying to be a complete solution.

In Unreal, they have a standard approach to online systems, e.g. friends, chat, sessions, etc., that is the "Epic" way to do things. They have created an "Online Subsystem" framework of many popular live operations/backend services, such as "Online Subsystem Steam" ... as well as Facebook, Google, etc.

Online Subsystem Steam shoehorns the Steam API and tries to make it fit the Epic concept of an Online Subsystem.

This can be useful when you want to do a multi-platform game and have all the different builds have the same basic online features, but use each platform (we don't recommend this).

Epic Games does try to compensate for the limitations of Online Subsystem regarding Steam API with several add-on plugins such as Steam Controller however this doesn't address the fact that Online Subsystem Steam is very far out of date nor the limitations with some of Valve's most valuable features in Steam Lobby, Steam Game Server, Steam Workshop, Steam Inventory.

For note, the "Heathen" way to handle multi-platform live operations (what Unreal calls an Online Subsystem) is to use a non-platform-specific one ... such as PlayFab, GameLift, Photon, etc.

These are not platform-specific and work on all platforms, This will ensure that you are not limited to a common feature set among all platforms but rather can fully exploit the robust features of a specific tool that is itself multi-plat and can be applied to any distribution platform.

Steamworks.NET SteamManager.cs

This original came from an example of using the raw Steamworks.NET C# wrapper. You can find the original at the link below

Keep in mind this was an example script, meant to be used with a specific example project and like any example script

Sadly a great many Unity Asset developers do what Unity Asset developers often do and copy and paste someone else's work into their own asset and run with it without actually understanding what it was, why it was or how to do it properly.

SteamManager should not be present, much less used in any project. It's a learning tool, not production code.

The functionality that SteamManager provided in its original context is handled by Heathen's systems. We provide both a free Lite version and a paid full-featured version for Unity.

Comming Soon

Once you have your app, you can start setting up your Store Page. With the store page ready and approved, you have the option to make it public before your game is ready for release and can set a "Release Date". You can set this date to be a Year, Quarter, Month or even a specific date and time.

The release date you set will impact when/if your game shows up on the "Coming Soon" lists in Steam. You can change the date at any time, but DO NOT update the date frequently in an attempt to remain high on that list, or you will be banned. You should, however make sure you list your game as coming soon as soon as you can. You want to try and build up a few thousand wishlists before your game goes live.

Getting Help

This Knowledge Base is your best source for information, not just on Steam but all manner of Game Development tasks.

👀 Look to your left, that is the navigation panel and can be used to browse the Knowledge Base. Many articles have sub-articles so check the little > arrow to the right of an entry.

In the Upper right corner, you will find a search box

Discord

Linked at the top of this knowledge base is a link to our Discord server, where you can get live support from the wider community and Heathen developers. This is the best method for asking a question when you can't find the answer here in the Knowledge Base.

The Discord community is there to help you as a game developer so feel free to ask questions about any game development-related topic you might have. As to support for each of Heathen's assets, each has a dedicated channel for that.

Direct Message

Once you join Discord, you will be able to directly message the Heathen staff you see there ... they are denoted by the | Heathen at the end of their name. We do keep DMs to a minimum so if your question doesn't require a private conversation, we will answer you in the appropriate server channel.

Direct Message is not a means to get a faster response, it's a resource available when you need a bit more confidentiality than a public chat forum.

Email

While not recommended as it's slow, error-prone, and all around the least effective of the available support options, Heathen can be contacted for support at heathen dot group we will get back to you as soon as possible. Please be aware that emails may be trapped by spam, are an indirect method of communication, and will require an additional lead time to get back to you.

Last updated