Heathen’s Steamworks is a set of tools, systems and editor extensions designed to make integrating Steam easier, faster, and more robust. Helping you Do More rather your a beginner or a pro.
We take the strength of Steamworks.NET, and the parody it has with the native APIs, and expand on that with engine-centric tools, editor extensions and more!
Heathen's Steamworks Complete is the best possible option for Unity & Godot (mono) developers looking to integrate with Steam API.
Heathen's Steamworks Complete covers every aspect of Valve's Steamworks API, but we are so much more than "Just Another API Wrapper". In addition to covering every interface of Steam API we have also built common systems and tools to cover not just all the boilerplate but also all those common use cases with battle-hardened tools ready for production.
Heathen's Steamworks Complete works with the networking tools you already know and use. On Unity, we work with Mirror, FishNetworking and NetCode for GameObject projects to ensure compatibility and with Unreal the Steam Networking Sockets plugin is again compatible with our plugin.
Engine-centric, we expose the raw Steam API for you of course so any sample code you find floating around on the web should work with little or no modification. Beyond that, we extend the APIs with engine-specific features.
These extensions can be as simple as handling engine textures, events, etc. or more involved such as abstracting away the complexity of Steam's traditional C style handling of collections e.g. friends lists, DLC lists, leaderboard results, etc. and making them more appropriate to the respective engine.
Our goal is to expose the Steamworks SDK features in such a way that they feel like a native extension of the engine you are working with.
Every Steam artefact (lobby, achievement, DLC, user, etc.) is handled in a way native to the engine. For Unity this is C# structs (DOTS, programmers) and ScriptableObejcts (designers, editors). For Unreal Blueprint exposed nodes and events.
Major systems and concepts have additional tooling built around them to save you time with common tasks. From reading and displaying records from a leaderboard to managing a Steam Lobby for player parties, game sessions quick matches and a lot more.
Heathen's Steamworks is more than just another wrapper, our components provide highly configurable but easy-to-use production-ready solutions to common use cases.
Trusted by thousands of developers we have been hard at work on this tool for more than a decade. The Steam Curator link above is just a few of the works our community have published covering many genres and demonstrating a wide range of examples from small passion projects to major commercial products.
Our tools are built in layers from powerful APIs and Frameworks up to code-free solutions. No matter your need, skill level or discipline our tools can help you Do More!
Whether you're new to Steam, or game development in general or maybe a seasoned veteran well capable with the Steam APIs, Heathen’s Steamworks can greatly accelerate your project and help you produce a more robust product that better leverages the services offered by Valve.
From top to bottom, each layer offers a level of simplicity and abstraction, you can mix and match as required to meet your project's and team's needs.
Provides a range of ready-to-use prefabs and simple script components that allow many common requirements to be handled completely code free. All are built on our easy-to-use Components Layer.
We provide flexible and powerful tools in the form of component scripts and scriptable objects that simplify the use of every major Steam feature in the editor with little or no code required. All are built on our easy-to-use Data Layer.
Our "data layer" is a set of structs and tools that simplify working with Steam's concepts and artefacts such as UserData, LeaderboardData, AchievementData and more. These greatly reduce the code and effort required to accomplish any task. All are built on our robust API Layer.
Every endpoint and interface of Valve's Steam API has been expressed in a C# and Unity (or Godot) centric API. This means no need to mess with callbacks, manage operation queues cast and convert between various primitive and native types, etc.
The API Layer coupled with the Data Layer empowers programmers and engineers to work more efficiently and maintainable with Steam API and is built around the Native Steam API vis Steamworks.NET
Heathen's Steamworks integration is available in two forms
- Foundation This is a lite version available for free and is a great alternative to raw Steamworks.NET or Facepunch in that it will handle the core of Steamworks integration for you reliable and tried and true manner.
- Complete This is our "full fat" tool covering every aspect of the Steamworks API, providing you with invaluable tools, systems, components and code-free solutions to help you Do More with Steam API.
Steamworks.NET gives the best access to Valve's APIs and does so true to the original so that the original documentation and decades of community guidance are still applicable. The drawback to Steamworks.NET is that it is true to the original API using programming styles and approaches foreign to most game developers and very clunky at best to use in Unity or Godot scripting.
Heathen has wrapped every relevant interface in Steamworks.NET with our static APIs delivering a simpler more robust tool set with every drop of power of the source Steam API and with that raw Steam API still available to you.
Facepunch is another C# wrapper just like Steamworks.NET. however, unlike Steamworks.NET it does not attempt to remain true to the original API as a result the existing community and documentation around Steamworks are less applicable.
Facepunch's stated goal is to make a C# focused wrapper that exploits/leverages the benefits of C#. This makes most of the code you would need to write shorter / more C# programmer-friendly. It however also makes it alien to Valve's documents and its wider community and while Unity uses C# as its main scripting language it does so in a "Unity" way for example C# would use event delegates, in Unity we use UnityEvents.
whoHeathen does similar in that we are here to make the Steam API more friendly to a specific audience, only we are Unity-centric not just C# centric. We have wrapped the complexities of Steamworks.NET making it quick and easy to integrate for C# programmers, Unity-specific programmers, Unity designers and hobbyists who prefer to use tools like Bolt or work through inspectors to get the job done. We chose to build on top of Steamworks.NET so that the dev that wants/needs to can still leverage the decades of community guidance on the source API only needing to convert C/C++ to C#.
Because we are built on top of Steamworks.NET which is itself a true-to-form wrapper around the native Steam APIs many tools, assets, etc. built for Steamworks.NET or Valve's original Steam API simply work, that is not the case for Facepunch which often requires its own flavour of a tool to work.