Post feature RSS The Road to Steam

This article will talk about what did to get Lucadian Chronicles, our game written in Unity, to be released via Steam for Windows and Mac OS X. This article covers both the client side and server side integration, and assumes strong knowledge of Unity development and server programming.

Posted by on

Steam Greenlight

After about a month of being on Steam green light, we were told that we were approved (thank you everyone!). Here's what our numbers looked like below. Our campaign was not terrible, but not particularly impressive either. We were all somewhat surprised when the approval notice came, and the criteria for approval remains a mystery.

Screen Shot 2015 10 07 at 8 47 5 Our final Greenlight stats. Not terrible, but not great either.

But once we got the approval, we went full ahead with Steam integration. Below is the overview of the things we went through to get our Unity game running with Steam on Windows and OS X.


We first started by downloading Steamworks.NET from the website below.


We also evaluated Ludosity's Steamworks, but the steps included in their version didn't work without some messing around. It's possible I got an old version, but Steamworks.NET just worked out of the box, so we went with that.

Client Side

With Steamworks.NET, the amount of work we needed to do on the client side was minimal. Obtaining the player information, and calling various Steamworks API calls were very straight forward. One resource that proved helpful for me was looking at Steamworks.NET's test app (not the sample app). The test app was an easy way to see if a Steamworks function was included in Steamworks.NET and check what the syntax was.


Initially, we obtained the avatar image via the Steamworks function, and created a texture from that. However, we later realized that we only had access to the avatars of the current player and their friends. Because we needed to be able to display all players' avatars, we eventually switched to obtaining the url of the players' avatars and displaying that in stead.

WUP N WLCE gameplay 4 Since we show avatars of other players, we had to use web based steam avatar images.

The biggest issue we had with the standalone version was dealing with window resizing and fullscreen on Windows and OS X. On Windows, the window size and the state of fullscreen or not was not being saved, so we implemented our own save using Player Prefs. On OS X, the window state was being automatically saved, so we need to not use our own system, but instead we had an issue where the screen would simply be black. The black screen issue turned out to be a bug with Unity 5.0.1. Once we upgraded to Unity 5.1.3, the black screen issue was fixed.

Screen Shot 2015 10 07 at 9 03 2

Use "Fullscreen Window" for the Mac Full Screen Mode. That's the recommended, and we had issues with the other settings.

Server Side

Lucadian Chronicles is an online game, so some of our work was done on the server side. Specifically, we had to use Steamworks' achievements, stats, and leaderboards.

Steamworks Web API turned out to be straightforward and easy to use, but with very poor documentation. A lot of my time was simply trying to call all the different API calls, and messing around with the parameters to see how it actually worked. I used Advanced Rest Client, which is a Chrome app, to test out the different API calls.

Screen Shot 2015 10 07 at 9 11 1Advanced Rest Client is available for free on the Chrome App Store. Tools like this beats writing short scripts to test out REST API calls.

Specifically, I had to call the following URL below to get the list of all supported API calls, and then investigate each call that seemed relevant. (Don't forget you need the necessary parameters like api keys and steam id's ) The trick with all Steam Web API call is to not forget the version number at the end.

Creating Assets

There were a handful of marketing and community related art assets that were needed for the game. Most of these are standard fare. We just had to create various versions of assets with the right format and dimensions.

The part that took a while was their badges. The quality of badges offered by other games, seemed to run the gamut in terms of quality, so we assumed we can just put up something and Valve would not care. That turned out to not be true. Valve cared a great deal about the quality of the badges, and they pushed back 4 times in upping the quality of the badges, and trying to make the latter badges more differentiated.

Below is one of the earlier badges from Lucadian Chronicles.


Below is an example of the Steam Trading Cards that we did. We weren't quite sure how much players cared about the Trading Cards, but since we had great art for this, we went ahead with it.

Screen Shot 2015 10 06 at 9 31 0


The benefit of working with technologies like Unity and Steamworks, compared to consoles, is that the documentation is more available. This was a quick overview of our road to Steam. If anyone has any questions or need help with their own game, feel free to write comments, or contact us directly!

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.