I am a big fan of the steam store. I love the whole interface, discovery experience and integration with games, especially when playing multiplayer with friends. It was a bit of a no-brainer then that my first game would integrate well with steam.
Luckily in being close to games and game development I was familiar with Facepunch Studios, Rust and some of the development posts by Gary Newman about his experience with Unity and Steam. This meant that when it came to Steam integration I happened across the Facepunch Steamworks API very quickly. In fact, I came across this so quickly that I was busy experimenting it before actually choosing a final multiplayer framework to roll out to the main game.
This was both a blessing and a curse. I tested out features like Steam lobbies, Steam profile integration and achievements separately to reworking my game to be more multiplayer friendly. This gave me a hook into simple multiplayer game setup and behaviour, but led to a few teething issues when eventually adding the latest iteration of Unity Multiplayer1 to the game.
In essence the Facepunch Steamworks API makes it really easy to call a stateful steam session as it makes each call fairly independent, the only thing you really need to maintain is the AppID, and any friend profile ids you need to interact with. From this API I have integrated to allow the player to login, use their profile pic and name to identify with in game before choosing their character, join or create a lobby, chat and group up with friends and then kick off a game session, all in quite simple code classes.
I had quite a pleasant experience doing the lobby system and initial integration with Steamworks. I look forward to getting back into it when I roll out joining multiplayer games directly from the steam client and storing game data in the cloud early next year.






Leave a Reply