top of page
Search

The Road to Demo Release

  • Writer: UBTCodeNinja
    UBTCodeNinja
  • Jul 4
  • 7 min read
The most prophetic image I've ever created
The most prophetic image I've ever created

Back in April I made the claim that I'd like to make regular blog posts. Since then I've mulled over many possible posts, but every time I got busy with work and kids and let the idea lapse. So today I'm here to both celebrate the launch of the Trope Tales demo, and also do a speed round of things I learned while uploading a game to Steam!


A New Level of Respect

Releasing a game on Steam is hard. It's not just "hit compile, upload binary, done". I had to read miles of documentation to learn about Steampipe, depots, builds, library assets, run configurations,... This had led me to realize that the crappy $2 games (you know the ones) are far more impressive than they seem at first glance: because they managed to get something on the Steam store!


I don't have a play-by-play of my experience or learnings as I made this demo release, but what I do have is a better understanding that I can now share for anyone interested in how Steam works on the back-end.


To start, the "developer portal" for Steam is known as SteamWorks. This is accessed at https://partners.steamgames.com/. For anyone creating a game, this is where you will log in to tell Steam about the game.


Before you can start posting games, you must get approved as a developer. I don't recall how this process went, but I believe it involved background checks and setting up tax accounts. I recall it took a couple of weeks to get through the full process. Once you're on the other end, you still can't just make a game. Steam charges a $100 fee per game you want to upload. This covers the costs to Steam related to publishing a game, such as Steam review -- which we'll get to later.


So step 1. Go to the SteamWorks page

Step 2. Go through the legal rigamarole

Step 3. Pay $100

Step 4. Profit? No. Not nearly yet.


In between the original creation of my store page and today, the SteamWorks interface has changed significantly. So I don't know how much I can say about it that isn't at risk of being outdated information next year. But broadly I assume this will remain true: your app is divided into three broad categories:

  • Packages: These are "things for sale on Steam". This could be your main game, DLC, expansion packs, tools (e.g. dedicated servers), demos, and more.

  • Store Page: This is the marketing material for your game. This is what people can see for free.

  • SteamWorks: This is the back-end for your game. The hidden plumbing that makes Steam work and allow you to just click "Install" and "Play" and not have to know which files to launch and how to configure them.


Packages are conceptually fairly simple, so I'll just dive into some specific learnings about the other two.


The Store Page


The Store Page is where you talk about your game. As you can imagine, you need to list things like:

  • Your game's name

  • The description

  • Some screenshots


But you need much more than that. Here's a bit more comprehensive list of only the required bits:

  • Who is the developer?

  • Who is the publisher?

  • What Operating Systems do you support? (Windows, MacOS, Linux+SteamOS)

  • When is your release date?

  • What languages do you support? (for each language, do you have subtitles or full audio? Is the interface translated?)

  • How many players is the game? (single-player vs multi-player vs MMO)

  • What genre is the game?

  • List at least 5 tags that describe your game

  • Does your game support controllers?

  • List all legal, copyright, and trademark information

  • What is the support email where you can be reached? (you must provide one)

  • Give both a long description and a short description of your game (for display in different parts of the UI)

  • Upload assets:

    • A header capsule (920px x 430px)

    • A "small" capsule (462px x 174px)

    • A "main" capsule (1232px x 706px)

    • A "vertical" capsule (748px x 896px)

    • At least 5 screenshots showing gameplay

    • A library capsule (600px x 900px)

    • A library header (920px x 430px)

    • A library hero (3840px x 1240px)

    • A library logo (1280px x 720px)

    • And only some of these assets should contain your logo. Some shouldn't. Some must. And don't contain any other text other than your logo.

  • Trailers:

    • You must provide at least one gameplay trailer before the final game can be released. For a demo, no trailer is acceptable


Let's hope you didn't make any mistakes, because now you have to submit the page for review and wait 3-5 business days before you can be approved to show up on Steam. Did you wait until the last minute to try and post your game? Now you're late.


SteamWorks


If the Store Page is where you tell humans what your game is about, the SteamWorks settings is where you tell robots what your game is about. This is where you configure details that the Steam program will use to load and launch your game.


First and foremost, you must specify your supported Operating Systems. Yes, I find it odd that you have to specify this again since you just specified it on the Store Page. In fact, if the two don't match up that will cause you to fail review. But they make you specify it twice instead of having one read from the other. Unlike the Store Page, here you have the opportunity to specify if your game supports 64-bit machines.


Next we have "depots". A depot is essentially just a collection of files. This is what actually gets deployed. You can create multiple depots and give rules on when or how to deploy them. For instance, Trope Tales has one depot for the Windows build and one for the Mac OS build. Then each depot is configured to say "only deploy me on X operating system".


Remember when we glossed over Packages earlier? Well depots are tightly tied to packages. A package is a bundle of depots that you pay to get permission to download. So if I had DLC then I could put this in its own depot and have the game package point to the game depot and the DLC package point to the DLC depot. You could also have a "Master Collection" package which grants you all depots.


After depots you have "builds". A build is essentially a timestamped version of a depot. So whenever you upload a patch or update to your game, a new build is created.


Within "builds" you have "branches". A branch is essentially a name pointing to a particular build. The default branch (named, easily enough, "default") is what is normally displayed in Steam. However by right-clicking a game in your library and going to Properties > Betas, you can select a different branch. This can be used both to give people access to new versions of the game that aren't ready for release, or to make older versions of the game available to people who don't want to upgrade. For Trope Tales I created a "test" branch which I always deploy to first, this way I can verify the game still launches and my save files still work before setting it live on default.


After depots and builds, we move on to "Launch Options". This is where you specify, per operating system, what happens when someone clicks the "Play" button. This normally involves specifying a file in the depot that will be executed (the main game program) as well as any launch options required for the game to function.


As with the Store Page, you then have to submit your build for review before you can post it to Steam.


That's Not Even Everything


I covered the absolute minimum to get a game on Steam. You can also configure anti-cheat, DRM, workshop purchases, community settings, achievements, EULAs, redistributable packages (e.g. DirectX), "CD Keys" (e.g. for giveaways), play tests, Steam items, etc.


Oh, there's also the idea of a "developer comp" package. In SteamWorks you can list different Steam account as being developers on your game. These individuals can download the game free of charge to test it during development. One of the requirements for launch on Steam is that the developer comp package exactly matches at least one package that is available for sale.


The Review Process


Review is not just about making sure you checked all of the checkboxes above. They thoroughly read through your description, look at every uploaded screenshot, play your game, and make sure it's up to Steam's quality standards.


Their standards don't require a game to be fun. But it does include things like:


  • The game cannot direct users to purchase something outside of Steam (e.g. navigate to a third-party website)

  • The game must launch on all operating systems you claimed to support

  • The game must not contain any copyright violations

  • The description must accurately represent the game that is launched

  • The screenshots should be in a "large enough" resolution to look good on all monitors

  • etc.


I don't know every rule they check you again, I just know the ones I failed that I had to correct.


For starters, in the credits for Trope Tales I originally gave credit to "itch.io" for some of the assets I used. It turns out this qualified as "directing users to purchase something outside of Steam". So I had to remove the link from the credits.


I also got dinged for the inclusion of RPG Maker assets without providing proof that I had permission to use them.


Finally, I got dinged because my screenshots were too small. This I pushed back on, saying that they were taken at the game's native resolution and the game is meant to be played windowed.


I also got warnings (but not outright blocks) over a few more things:


  • The Steam overlay doesn't appear when hitting Shift+Tab

  • When using a controller, the mouse isn't hidden

  • The interface text isn't updated when using a controller (e.g. it still says "press the Z/X key" instead of "use the A button")


Launching Demos


With Trope Tales I made one more critical mistake when preparing for launch. I had set up the original app and a play test app. I had gotten approval for the Store Page and for my build on the original app. But then I created a demo.


A demo is considered its own app with its own Store Page and its own build. This means you have to fill out all of that information again, and go through Steam review again. This is why the demo is launching in July instead of June - because when I hopped on to launch on the 30th I realized I wasn't allowed to launch.


So if you're planning to release a demo, make sure it is also configured and ready to go ahead of time.

 
 
 

Comments


bottom of page