Schemescape

Development log of a life-long coder

Porting a browser-based game to Steam

Browser-based games are great because players can pick them up and start playing without having to install anything (assuming reasonable cross-browser compatibility). HTML can also be convenient for UI, especially for laying out text (although handling CSS and rendering quirks can be frustrating).

Despite the benefits, I'd like to port my most popular browser-based game to Steam, for the following reasons:

Open questions

I have no experience developing for or publishing on Steam, so I have a lot of questions:

Answering these questions will take some time, but honestly I think I'd regret not ever trying to port my game to Steam.

First steps

Steam publishes documentation for Steamworks here:

https://partner.steamgames.com/doc/home

Common redistributables

There is a page about common redistributables that says it includes Microsoft Visual C++, .NET, DirectX 9, OpenAL, XNA, and PhysX. This appears to be a comprehensive list.

Platforms

It's now possible to download the Steamworks SDK before paying the Steam Direct fee, which is helpful. Within that zip file, it has binaries for 32- and 64-bit Linux and Windows, and macOS. I'm interpreting that list to be the definitive list of supported platforms.

Note that GPL-licensed libraries can't be linked with the Steamworks SDK (or probably distributed via Steam period).

Cloud saves

The Steam SDK provides a C++ interface for enumerating/reading/writing files to the Steam Cloud. There is also an auto-cloud feature that just synchronizes files based on path.

As far as transitioning data from the browser version to the Steam version, I doubt there is a reliable and automatic way to do so.

One note on Itch

Note: in the past, I investigated using Itch's launcher to sync user data, but there were many issues:

Cost

As far as I can tell, Steam's $100 fee (plus tax) is a one-time fee. Obviously, I'd prefer not to have to shell out this much money, but, luckily, $100 is not going to make or break my financial situation.

Advertising Steam release within browser-based version

It seems that there is precedent (e.g. Mindustry on Itch) for advertising that the same game is available on Steam, when the Steam version has additional features. I didn't see anything Itch's terms of service that prohibit this (nor do I think it should be prohibited).

Marketing and analytics

Steam has guidance for marketing games on the platform. It looks like there is support for Google Analytics and some link tracking. For now, I'm just going to put off thinking about marketing because my goal is to share my game, not to get rich off of it.