Garry Newman, creator of Gary’s Mod and Rust, has run out of patience for the Steamworks API. That’s the impression one would get from the first two lines of the readme for Facepunch.Steamwork, which goes, “The Steamworks C# implementations I found that were compatible with Unity have worked for a long time. But I hate them all.”
The founder of Facepunch Studios goes on to bullet out his grudges, observing that they are not genuine iterations of the C# programming language, but a collection of functions. He then mentions they are rarely up to date, typically require a third-party native dll, impede compilation in a standalone dll in Unity, and perhaps most frustrating of all, require a license. Given the cost of a Unity license and its other restrictions, adding another license fee and a few more inconveniences for what is ostensibly a tool to make game development for Steam easier would prove aggravating.
In order to get around that, Newman has posted C#-friendly alternative to Steamworks.net, which is now available via GitHub. Based off the examples provided, Facepunch.Steamworks utilizes C# code to quickly and cleanly create functions. The program operates under the MIT license, a permissive license which permits reuse within proprietary software provided that all copies of the licensed software include a copy of the MIT License terms and the copyright notice. In other words, there’s no money being exchanged, so long as the source is properly cited and credited.
In a reddit thread posted to /r/gamedev, Matt Luard, developer of The Cat Machine, observed, “When I wrote The Cat Machine I used Steamworks.net, and found it a massive pain, and I was only doing the most basic things like achievements. Steamworks.net is a very thin wrapper, it just doesn’t do a lot of things for you. In contrast, reading the readme on the repo for Facepunch.Steamworks makes implementing with Steam seem luxurious. Might be one to bookmark away.”