Helpful code

I've put together some code that may help you, if you're a programmer.

If you find something on this page to be useful, please consider either purchasing one of my arcade-style games at yyrgames.com, or donating to my daughter's college fund via PayPal. Thank you for your support!



Steam.cs

Version 1.2, last modified 3/2/2020 (click above to download)

Now, supports both Windows & Mac!

This code is intended to be a shortcut, to help MonoGame programmers get started with using Steam features via the Steamworks.NET C# wrapper for the Steamworks API. Specifically, this file provides support for Achievements, Stats, and Leaderboards, while helping to minimize the amount of effort required to get them working. It has been tested with MonoGame, and also with FNA on Mac, but could likely work using other XNA replacements, or possibly even other C# libraries that have nothing to do with XNA.

I developed this code while transitioning one of my games, Super Multitasking, from the unsupported Facepunch.Steamworks library to the Steamworks.NET wrapper. When issues arose with the Facepunch library and were not promptly fixed, advertised features became broken in my released, publicly-available game, as well as many others. So I was forced to re-implement all of my Steam support from scratch. I documented and refined this code with the hope that anyone else in a similar situation can take care of it in far less time than it took me. I'm also hoping that beginners can use this to cut down the time required to get these features working. After all, time is the most valuable resource we have.

Support is not officially provided, but if you run into trouble, feel free to contact me. I can't guarantee that I'll have the time to assist you, but the possibility is there.

I was hoping to also provide a version of this that could be used to add Xbox Live features to UWP apps (Windows 10/Xbox One). But apparently, there's no need for that, as someone else already did! Check it out here: https://gist.github.com/michaelarts/2ada67de3ca4295b1ea57df00fd230ca