Getting Started with Steam
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 out as "limited" put $5 in your Steam wallet to get around this.
Steamworks has its very own Getting Started guide ... read it and follow it
Heathen assets are fully documented in code, meaning you can use your IDE (Integrated Development Environment) such as Visual Studio or similar to browse all objects, read documentation on each class, method, attribute and parameter and generally understand what code features are present. Coupled with IDE tools like IntelliSense you should have very little reason to need to look up a function name or read what a parameter is or does because your IDE will tell you while you code.
The guides and documents found on this web site cover the use of that code and document the concepts, features and available engine tools available to you. These guides include code snippets, examples and videos to help you explore the features and functions of Heathen's Steamworks and the Steam platform itself and reach beyond the simple use of our engine and editor integrations.
These guides are written assuming you are using Heathen's Steamworks however the information they contain is of great value no matter how your integrating with Steam API or what engine your using.
Sign-up to Steamworks
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 own App ID.
You can test some features of 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 even be signed up to use.
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 your sure you want to release your game on Steam ... no reason to wait.
Once your all set up as a Steam Developer and have your App ID your next step should be to get familiar with the Steam API and what it has to offer. Heathen creates the best in class integration between Unity and Steam API, read more on our Steamworks page.
Steam API is a tremendous value especially for small and indie developers as it is a power set of backend services and is completely free for you to use. We strongly recommend you understand what Steam API can do for your game before you commit your design. The best and most successful games fully exploit Steam's features.
Be sure to read over our Steamworks Guides, these guides serve as troubleshooting and how to guides for Heathen's Steamworks Complete but are also a great way to get to know Steam API and what it can do.
Installing Heathen's Steamworks
Now that you have made the very wise decision to use Heathen's Steamworks to integration Steam API with your game project on Unity or Godot you will need to get it installed and configured for use!
We have create a project template for Godot that uses Heathen's Steamworks Foundation. Its available for free on our Steamworks Foundation GitHub repository.
For New Projects
The ProjectTemplate folder found on the GitHub repository is just that a project template. You can copy it down and edit it as a functional project and this is generally the best way to get started with a clean new project.
For Existing Projects
Open Visual Studio (or whatever code editor your using) and add an assembly reference to the Steamworks.NET.dll located in the Steamworks.NET folder. Obviously you should choose the Windows or OSX-Linux versions based on what platform your building for.
Enable the plugin in the editors Project Settings see the example below
This will have created the AutoLoad script Steamworks Behaviour for you
With Unity how you install depends on which method you chose to license Heathen's Steamworks with. The following cards cover the installation instructions and core features of each of the three major ways to license Heathen's Steamworks.
This section will cover the most common installation issues and how to resolve them. Before we get into the common issues and causes here are a few key bits of information.
You may know that Unity attempts to merge assets on import.
So what does that mean?
Every asset in your Unity project has a GUID associated with it, that is a globally unique ID so Unity can know that folder A is the same folder A no matter where you move it or even rename it.
Why is this relevant?
If you have any old or customized versions of System Core, Steamworks.NET, etc. then Unity will attempt to merge the new stuff your installing with the old, even if your doing it from Package Manager. This will break a lot of things and make a huge mess.
How to prevent the issue?
First fully remove any non-package manager installed versions of Steamworks.NET, System Core or any old Heathen assets ... old Heathen assets would have a copy of System Core in them so remove that.
How to fix when it goes bad?
So lets say you tried to install, forgot to clean out an old Steamworks.NET or missed a few files or something. To clean this you first should remove the Package Manager version using Package Manager. Next clean out the old offending files and finally reinstall from Package Manager.
So if you have compilation errors or if your Script Defines are a bit of a mess you might need to install these manually from Package Manager ... you can find the process for that here.
Script defines are used by Unity, Steamworks.NET and Heathen to know what is installed and ready to use and what platform its current set to. These defines are used in code to enable or disable code from compiling under various conditions. This means even with the script files present some code just won't be seen by the compiler unless these defines are set up properly. Heathen no longer uses global script defines but references all defines as part of the assembly definitions.
These defines exist only if the related assembly is present. If these defines are not present the code will not compile. STEAMWORKSNET This is the script define set by Steamworks.NET It indicates that Steamworks.NET is present but does not indicate that it should be complied. That is the presence of the define DISABLESTEAMWORKS will still be respected and prevent any compilation of Steamworks dependent code. HE_SYSCORE This is the script define set by System Core It indicates that System Core is present, System Core is a framework that all Heathen assets are dependent on and must be present for any of the code to compile.
No git executable was found
This is Unity telling you that you have not installed Git and so the Unity Package Manager cannot install dependencies that are located on Git. To fix this issue
Install Git you can find it here
Restart your PC ... yes you need to or Unity wont see the change