All GameMaker licence types come with an export for GX.games, which is a free online game-hosting and sharing community where other people from all around the world can easily play your games. This guide covers setting up the GX.games target (or "Opera GX", as it's called in older versions of GameMaker) and making your game packages.
Note also that GX is a high-performance, compiled package with in-game functionality and behaviours more similar to Windows, macOS, etc., than it is to the HTML5 target, despite being a "browser" platform.
There are two other guides for what comes after you have made your game package:
> How to Publish Your Game to GX.games
> How to Publish a Mobile Game to GX.games
Requires Opera GX (The Browser) Installed On Your Machine
Note that before following this guide, you will need to have installed the Opera GX browser itself and run it at least once to set it up however you would like. You can test your games later on using other browsers, but you will need Opera GX to be installed and this will be the default browser used by GameMaker.
The GameMaker installer actually includes the Opera GX installer, so you can easily install this when setting up GameMaker itself - but you can also download it at any time from here
It's important that you keep the browser version up-to-date, as GameMaker and the browser may rely on something the other one has just introduced in a new version.
General Information
To target GX.games (or "Opera GX") from the IDE, use the Target Manager, which is located in the top-right of the GameMaker window:
Once you have selected this target, you can run your game from the IDE as you would for any other target or for testing and it will open your installed Opera GX browser and run the game.
Note that you may get a Firewall warning the first time you run the target as GameMaker uses a micro web server (see here for more information) to serve the game to the browser and this will require access to your network.
Building For VM
There is actually nothing further you need to do beyond installing the browser itself, as GameMaker already includes all the tools it needs.
Simply pick the "VM" option as shown in the screenshot above and then click to run/debug/create your games.
Building For YYC
For this packaging type, you will firstly need to install the Emscripten SDK yourself elsewhere on your computer and then point GameMaker at it.
Emscripten is supported on Windows, Mac and Linux, so it doesn't matter which GameMaker IDE version you're using. However, be aware that when doing GX.games YYC builds using the Windows IDE, it will always automatically disable the use of subst for that build as the Emscripten tools do not like these temporary drives and short file paths. You should therefore take care with the length of your project name, save location, and asset names, etc., so that you stay within Windows' 260 character path limit.
We will show exactly how to install everything further down this page, but the full documentation and the download links for the Emscripten SDK can be found here - so if you do have any issues following the rest of this guide, please refer to the link above in the first instance.
Setting Up For YYC
We will now very briefly demonstrate the steps for a working Windows PC-based install. (Mac/Ubuntu users, there are very similar steps you will take, but enough differences in how to get the packages that you should refer to the Emscripten guide we linked above).
Installing Python
First of all, you would need to install Python from its official page, as this is required by the Emscripten SDK: https://www.python.org/downloads/
We recommend v3.10.2 (Jan 22), but note that this is not usable by anyone using Windows 7, so if you're using Windows 7 you would need to use an older release. Emscripten itself currently has a minimum requirement of Python 3.6 and we cannot guarantee how long they will continue to support Windows 7 usage in their future releases.
Install Python using these settings:
Cloning the Emscripten SDK
For this, you will need a Git client installed and set up to your liking. Our screenshot shows Github Desktop, but other clients are available.
Simply clone the URL which the Emscripten guide says to use into an empty folder of your choice on your computer:
https://github.com/emscripten-core/emsdk.git
You can set the "Local path" to be whatever you want, but we would of course recommend a short path and somewhere easy to remember and locate later on.
Once the clone operation is complete you can close your git client.
Installing And Activating Emscripten
Now, open a regular Command Prompt in Windows (the "cmd" application), change into the directory we cloned the repository into in the section above, and then perform the actual installation.
So, for our example location as shown in the screenshot a little higher up (your location may differ), that would be the two commands:
- d:
- cd EmscriptenSDK
Then, when you're in the correct location for your install, run the two commands Emscripten uses to set up your installation for the specific version of Emscripten your current version of GameMaker requires (we show 3.1.9 as an example below, but this might not be the version you need!):
- emsdk install 3.1.9
- emsdk activate 3.1.9 --permanent
(Note: Again, please see our FAQ link above and do not use Emscripten's "latest" keyword to just grab their newest files!)
This results in a working installation on Windows.
Android developers: One thing to note is that your cmd shows that the Emscripten SDK will modify your JAVA_HOME variable by default. We have not seen any issues, but your Android setup may need you to change this back to some other path once the Emscripten SDK install is complete.
Warming Your Emscripten Build Cache To Make Your First YYC Build Faster
This is a completely optional step, but one which makes your first GX YYC build much faster - so if your setup is one where your machine often resets itself to a fixed snapshot and so you lose the GX cache, you may want to do this before making your snapshot. Note that any speed gains only affect your very first build, so in most cases there is little need to do this and so you can just skip to the next heading.
Assuming you're still using the cmd window from the last section, you now need to change into the folder which contains the embuilder.py script - this is most likely the following commands:
cd upstream
cd emscripten
Once you're in the correct folder, you then need to call the Python script and tell it to do a minimal build, so that this writes out your SDK cache ("MINIMAL" does need to be all-caps):
embuilder.py build MINIMAL
So, altogether, this would look something like this:
Once you press Enter there will be a short delay and then you will start seeing lots of output, much of it green (this is just a very small sample of the first lines):
Before eventually you will be told a certain number of targets were built in a certain amount of time and you're back at the command prompt again.
If you saw this message:
This is that Windows itself has overridden the PATH value with a new section of its Settings app. If you search for that "App Execution Aliases" panel you can turn off any overrides for your Python executables there, then try running the build command again and it should work fine.
Setting Up GameMaker's Preferences
Once Emscripten is installed okay, you now need to tell GameMaker where to find it during your GX.games YYC builds (again, this is not used in VM builds).
Open Preferences and change GameMaker's default to the folder you cloned the SDK into. Using our example location above, this would result in:
Apply/OK this to set the Preference as the value to be used by your runtimes before attempting to do any builds.
Updating Your Emscripten SDK Later On
Again, please do not use versions newer than what we state on the Required SDKs FAQ, but obviously at some point you will need to update your Emscripten installation. So here's how to do that...
Open cmd and change directory into your Emscripten install folder, then run the command to list everything your Git folder currently knows about:
- emsdk list
If the new version you need is already in that list, then you can simply use the install and activate commands to switch your version straight away and then you're done with this guide.
However, if the version you need is not in that list, then this is because you need to update your Git folder's contents so it gets the current list of Emscripten releases before you can proceed.
You can see this is mentioned at the very bottom of the "list" command's output:
To actually do this, open your Git client and fetch the origin for the Emscripten repository:
Then pull the changes it found:
Now, go back to your cmd window and run the list command again, and this time your required version should be shown.
You can now install and activate the version we say above is the one to be used.