Let me tell you, it’s a bit of a pain.
At this point, I have sold two versions of my game on Steam, and am soon paying for the license to work on my third one, and it goes pretty well, but I have to admit, I’ve only now finally linked to the Steam SDK. So, really, that’s not necessary unless you want Steam features. I’m going to be looking into the Steam workshop and multiplayer if I can.
Also, I haven’t figured out how to deploy a Mac version on Steam yet, and I now have a Mac version working, so I’m going to have to decide whether to deploy on Steam or the Apple store.
Now, my development process may be a bit weird, too. I develop on my Mac for iOS (and working on a Mac version), but I develop on my Windows PC for Steam and the Windows version of my game.
So I’ll address the Windows version. I’m using Visual Studio 2015 and Cocos2d-x 3.16.
All in all, after creating the cocos project, things went pretty smoothly. In my day-to-day development, I just run within VS 2015. At some point, though, you’ll want to learn to package the game for Steam.
NOTE: I just discovered that they have changed the process since I started a few years ago! I manually edited files under “ContentBuilder/scripts” (see below), but now they’ve added a UI component to this.
First, download and unzip the steamworks sdk. Then look in the “tools” folder, that’s where you’ll be focusing. Steam has a good video that explains this much better than I can, but basically, you’ll:
- edit steam_appid.txt to have the steam appid of your game
- put all your deliverable files in “content/windows_content” (copy your project’s resources folders, dlls, and the exe here)
- set it up so that you can deliver all this to steam. That’s the part that’s changed. I had to manually edit script files, but now it’s simpler.
I know that’s not much help, but the point is that it involves:
- downloading and expanding the steamworks sdk zip file
- getting an “appid”
- building your project in Visual Studio
- copying your files from your VS release project folder to the content folder in the steamworks sdk folder
- setting things up so that you can run a script or command to upload this build to Steam
I’ll tell you, it gets confusing on the depots, builds, etc. I don’t do it often enough to be an expert, I simply got it working and now just run the same script each time. I did change the appid and depot information for my second version.