Tutorial: how to build your GameMaker Studio 2 game to Steam

Ilya Zarembsky
7 min readOct 25, 2017

--

Version 0.1
10/25/2017, info accurate as of this date.

All $ are USD.
By @wly_cdgr; all opinions expressed are mine.
I made this guide so you don’t have to root around for this info in half a dozen different places like I did.

Pre-prerequisites (~5–30 *days*; $100+)
* Become a Steamworks partner
Consult the Getting Started section at partner.steamgames.com/doc for detailed instructions. Steam takes multiple days to verify your financial info, and the process may take even longer if you decide you need to form a company before registering. You will also need to pay a one-time $100 app fee, which will cover your first app id (a unique number associated with your game; each game you want to release through Steam will need its own $100 id).
* Make sure your computer meets the GameMaker Studio 2 system requirements. You can see them here: https://www.yoyogames.com/get. If you need to get a computer, get the cheapest Windows 10 laptop you can find that has an SSD and 8gb of RAM. Don’t worry about the laptop’s screen size or resolution for GameMaker purposes as you will be connecting the laptop to a desktop monitor.
* Make sure you have a desktop monitor. You need the additional screen real estate to use GameMaker efficiently and comfortably. Two good-value options for ~$100 are a 23"-24" 1080p monitor or a 32" 720p TV (a good choice for Switch fans :) ).
* If you’re using a laptop and plugging the monitor into it, make sure you have a mouse. For the love of all that is holy, do not use GameMaker with a touchpad. A basic wireless mouse will cost you ~$10 and improve your mental state and productivity by approximately 832%.

Congrats! You’re done with the pre-prerequisites & are ready for the….

Prerequisites (~1 hour & $99)
* Download a specific, GMS2-compatible, Steamworks SDK version from partner.steamgames.com/downloads. Check the ‘GMS2 Required SDKs’ Guide on help.yoyogames.com to see what version that currently is. As of the time of this writing (10/25/2017), you must use v1.35a. Extract the zip.
* Install GameMaker Studio 2 and purchase a Desktop license ($99 to publish to Windows, MacOS, and Ubuntu).
* Install and launch the Steam client. Log into your account & keep the client open.

…Ok, we’re ready. Let’s make a basic GameMaker Studio 2 test stub project & upload it to Steam.
* Open GMS2 & log into your YoYo account.
* Click New Project, click GameMaker Language, name your project, and save wherever you like.
* Make some basic modification(s) to the default template just to help convince yourself that it’s really your project that’s up on Steam when it all works later. For example, open the starting room and change the background layer to a custom color.
* Navigate to File -> Preferences -> Platform Settings -> Steam and provide the path to the folder to which you extracted the Steamworks SDK. This should look like “[path]\steamworks_sdk_[version]\sdk”.
* Navigate to Resources pane (right side of default layout) -> Options -> Main and enter your Steam app id in the Steam ID field. To find your Steam app id, look for the number in parentheses after your game title on partner.steamgames.com/home.
* In Options->Windows, check the Enable Steam checkbox. The process is analogous for building to the other targets (macOS, Ubuntu) but we will just use Windows as our example.
* Save & run your game (F5 / Triangle icon in the toolbar). If the game runs & you can use Shift+TAB to open and close the Steam overlay, you have successfully configured GMS2 to connect your project with the Steam API. Otherwise,
* make sure that the Steam client is running & that you are logged in.
* make sure the Steam ID in the GameMaker Options->General matches the app id on partner.steam.com.
* make sure you’ve checked the Enable Steam checkbox in Options->Windows.
* you’re doing all this on a Windows computer, right? If you’re using the new Mac version of GMS2 I can’t help you….let me rephrase that…I don’t want to help you. Stop that. Macs are terrible. Use a PC.
* click the target icon in the top right of the GMS2 UI and make sure that Windows is your build target. For the other settings, local worker, VM output, default device, default config should work.

CHECKPOINT! We’re more than halfway there — stretch your legs, have some coffee, come back in a few.

Now let’s do some setup on the Steam side.
* Log in at partner.steamgames.com.
* Select Apps & Packages -> All Applications.
* Navigate to the depots page for your game (depots ) You should be able to access it directly at https://partner.steamgames.com/apps/depots/[appd id]. If that doesn’t work, try the following:
* Select Home on navbar.
* Select Apps & Packages -> All Applications.
* Find your game on the page that displays and click its Steamworks Admin link.
* Mouseover the SteamPipe tab and click Depot in the dropdown that appears.
* Add a new depot by clicking the Add New Depot button and giving the new depot a name.
* Note down the depot ID.
* Set OS to Windows and leave the other settings as is.
* Click Save, go to the Publish tab, and follow the instructions there to publish your change. Note: the ‘you have unpublished changes’ red warning may not disappear after your publish your changes until you tab away from the Publish tab or refresh the page.
* Now, we need to make sure that this depot will be included in the private developer testing package that you can find and download through the Steam client even before your game is published.
* Click Home on the main navbar.
* Click on your app to go to its main App Admin panel.
* Click on “All associated packages, DLC, demos and tools” in the View Associated Items section.
* Scroll down to the “Promotional or special-use packages” section and click on the red ‘[game title] Developer Comp’ entry.
* Add the depot we have just created to the package.

* Good work. Stretch your legs for a minute.

Ok, we’re getting close. Let’s continue the Steam setup on our computer.
* Navigate to the folder where you extracted the Steamworks SDK.
* Go into [path]\steamworks_sdk_[version]\sdk\tools\ContentBuilder\builder and run steamcmd.exe one time. Follow the prompts/instructions in the console that pops up.
* Go back up to the ContentBuilder folder and go into the scripts folder.
* Make copies of the app_build_1000.vdf and depot_build_1001.vdf files, put the copies into this same folder, and rename the copies to app_build_[your app id].vdf and depot_build_[your depot id].vdf.
* Open app_build_[your app id].vdf in Notepad. Or, if you’re fancy, in the excellent and free Notepad++.
* Change ‘“appid” “1000”’ to ‘“appid” “[your app id]”’.
* Change ‘“1001” “depot_build_1001.vdf”’ to ‘“[your depot id]” “depot_build_[your depot id].vdf”’.
* [optional] Change ‘“desc” “Your build description here”’ to ‘“desc” “What a beautifully intuitive and user-friendly process this is, Valve :)”’.
* Save and close the file.
* Wiggle your feet & have a good yawn&stretch.
* Open depot_build_[your depot id].vdf in Notepad or Notepad++.
* Change ‘“DepotID” “1001”’ to ‘“DepotID” “[your depot id]”’.
* Change ‘“ContentRoot” “D:\MyGame\rel\master\”’ to ‘“ContentRoot” “..\content”’.
* Change ‘“LocalPath” “*”’ to ‘“LocalPath” “Windows\*”. Do not omit the ‘*’, the upload will fail without it!
* Save and close the file.
* Back in Explorer, navigate back up to the ContentBuilder folder and go into the the ‘content’ folder. This is the ‘ContentRoot’ folder we were just working with and is where we will manually put our GameMaker build so Steam can find and upload it.
* Make the ‘Windows’ directory that we just told Steam to use for our Windows build by setting it as the Local Path in the depot_build file.

* We are nearing the final stretch! Have a glass of water and a pee & stretch your legs real quick.

Let’s go back to GameMaker.
* With our project open, select Build->Create Executable in the top menu bar.
* Confirm that the Save as type: is Compressed Application Zip (*.zip).
* Name the file whatever you like, for example MySteamTest.zip and save it wherever you want.
* After the build finishes, navigate to the directory where you saved the .zip and extract it.
* Go into the folder that the .zip extracted to and copy everything in there to the [path to steamworks sdk]\steamworks_sdk_[version]\sdk\tools\ContentBuilder\content\Windows folder we just recently created. This puts the game files where Steam can find them when it goes to upload them.
* Note down the name of the executable and head back to the Steamworks dashboard at partner.steamgames.com. Find the admin console that we used to make the depot, but instead of going to the SteamPipe tab, mouseover the Installation tab and select General.
* In the Launch Options sections, in Launch Option 0, put the name of our executable in the Executable field, set Launch Type to Launch (Default), set Operating System to Windows, and set the CPU Architecture to Any. Leave the other fields blank.
* Publish your changes from the Publish tab as before. After publishing, go back to Installation->General and confirm that your changes have been saved & published correctly.

Excellent work. We’re almost done! Just a few more steps:
* Go to the ContentBuilder folder in the Steamworks SDK folders.
* Open run_build.bat using Notepad.
* Edit it to read ‘builder\steamcmd.exe +login [your Steam username] [your Steam password] +run_app_build_http ..\scripts\app_build_[your app id].vdf +quit
* Save and close the file
* Run it

* Go back to the Steamworks console in your web browser.
* Go to SteamPipe->Builds.
* You should see the build that the run_build.bat script has just uploaded at the top of the list. Select “default” from the — select an app branch — dropdown on the right, click Preview Change, and click Set Build Live Now on the next page. This will automatically immediately publish the build.
* Open the Library tab in your Steam client, make sure it’s listing all your games (Library->Games as opposed to say Library-Installed), and search for the name of your game.
* Click Install and wait for it to finish.
* Click Play :)

Congrats! You are done with the hard part of publishing a GameMaker Studio 2 game to Steam. Now all you have to do is make the game :)

P.S. Steam installs the game to Local Disk (C:)\Program Files (x86)\Steam\steamapps\common\[install folder specified in Installation->General in the web admin panel]. If you open that folder, you can see the very same files you put into steamworks_sdk_[version]\sdk\tools\ContentBuilder\content\Windows a little while ago. There’s no magic, it’s all very banal.

--

--

Ilya Zarembsky

Programming student at Flatiron School, interaction designer, and apprentice cook. Profile pic by @marleyhallart.