Windows Options

This section outlines the different options available to you that control how your Windows game projects will be compiled. The different sections are:

Windows General Options

The General page for Windows games is where you should supply the necessary information for Windows to display when your game has been installed and is running. This information goes in the Product Information section, and should be filled out completely.

The Options section of this window permits you to choose where the game package is to be installed to, either the "%localappdata%" or "%appdata%" folders. You can also set the Windows Sleep Margin here. This option is related to reducing stuttering when running your game on specific systems. Basically, if your game is running faster than your room speed GameMaker Studio 2 will "sleep" for the remaining time, but this sleep can be quite inaccurate and you can often end of sleeping for longer than necessary, causing your frame to take longer which causes stuttering. To get around this we can sleep for less time, then sit in a tight loop for the remainder of the time to make it more accurate - although the problem with sitting in a loop is that it causes CPU usage to increase, which in turn can cause your CPU temperatures to rise and your fan to run faster. By default, this value is set to 10, and in 99.99% of the cases you'll be fine with this, but for low end machines or for machines with a lot of background processes running this may not be an ideal solution (or for very high end machines too) and a value of 1 or 15 or something may be required. Note though that this is very much a system specific configuration and what works on your build machine may not be appropriate for another user, and as such if in doubt leave it set to 10.

The final option is for enabling Steam in your game. If you enable this option, make sure you have the Steamworks SDK installed (see here), and that you have added the Steam app ID into the General Options for the game.

Windows Graphics Options

The graphics options are those that you should configure to determine how your game will use the graphics card of your target Windows PC. The following options are included for you to modify:

  • Display Cursor: When this is checked the regular windows cursor will be show, and un-checking it will mean that no cursor is shown unless you have created one in your game code. This is on by default.

  • Start Fullscreen: If this is checked, the game will start in fullscreen mode otherwise it will start windowed. This is off by default.

  • Allow Fullscreen Switching: With this ticked the user can switch from fullscreen to windowed and back again using the standard Windows shortcuts. This is off by default.

  • Interpolate colours between pixels: Turns on interpolation, which basically "smooths" pixels. For crisp pixel graphics, it should be off, but if you have nice alpha blends and smoothed edged graphics it is better left on.This is on by default.

  • Use synchronization to avoid tearing: This toggles v-sync on or off (v-sync is used to synchronise your game update speed to the refresh rate of the monitor). Note, that if you have a game with a room speed of 120 and the player has a monitor with a refresh rate of 60, turning this option on will lock your game speed to 60 too. This is off by default.

  • Allow the player to resize the game window: Checking this permits the user to change the size of the game window (the Borderless Window option needs to be off for this to work). This option is off by default.

  • Borderless Window: Checking this will make your game run with a borderless window, removing the normal minimise, maximise and close buttons as well as the game title. This is off by default.

  • Scaling: Here you can choose to maintain aspect ratio (so a 4:3 room will be "letter boxed" on a 16:9) or to scale fully (stretching the image to fit the full screen).
    WARNING! Switching off the application surface will disable all the scaling options set in the Windows Game Options until it has been switched back on again. See The Application Surface for further details.

Finally there is the option to set the size of the Texture Page. The default (and most compatible) size is 2048x2048, but you can choose from anywhere between 256x256 up to a whopping 8192x8192! There is also a button marked View which will generate the texture pages for this platform and then open a window so that you can see how they look. This can be very useful if you wish to see how the texture pages are structured and to prevent having texture pages larger (or smaller) than necessary.

NOTE: Be aware that the larger the size of the texture page, the less compatible your game will be on PC's with lower specifications.

Windows Images Options

The images section is where you supply the images that your game requires. For Windows, you need to supply an icon file (that must be in .ico format) and also a splash screen (which can be .png, .bmp, .jpg or .gif format). The splash screen will be shown while the game loads, and can be enabled or disabled by checking the Use Splash Screen option (which is off by default).

It is worth noting that GameMaker Studio 2 has a Project Image Generator tool which can be used to automatically create all the images required for all the different target platforms your game is being compiled to. If you use this tool, you should revise the images created to ensure that they are what you require.

Windows Installer Options

Windows games can be created with an installer and here you can define the various settings and graphics that GameMaker Studio 2 will use when creating it. First of all we have the graphical options which will define the look of the installer itself:

  • Finished: The graphic that appears on the "Finished" page of the installer. Must be in *.bmp format and measure 164x314px.

  • Header: The graphic that appears while the installer is running. Must be in *.bmp format and measure 150x57px.

You can also point to a specific License Agreement (an example is supplied with GameMaker Studio 2) and a custom NSI script (details here) should you need one.