GameMaker Studio is the ultimate 2D game development software!

GameMaker Studio

GameMaker Studio 2022.11.0.54

  -  111 MB  -  Demo

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of GameMaker Studio 2022.11.0.54.


For those interested in downloading the most recent release of GameMaker Studio or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • GameMaker Studio 2022.11.0.54 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    GameMaker Studio 2022.11.0.54 Screenshot 1
  • GameMaker Studio 2022.11.0.54 Screenshot 2
  • GameMaker Studio 2022.11.0.54 Screenshot 3
  • GameMaker Studio 2022.11.0.54 Screenshot 4
  • GameMaker Studio 2022.11.0.54 Screenshot 5

What's new in this version:

New Runtime Modules Dialog For Customising Your Runtime Downloads:
- You will see a new dialog for this the first time you start this new version, so for more information on this dialog and how to use it, please see our new FAQ all about it
- GameMaker now handles downloading just the specific modules you require from each runtime - you can select a minimal install suitable for your current OS, whichever modules you require just now, or “just give me everything” (which is what GameMaker has always done until now)
- You can modify these choices at any time by clicking the new button on the Runtime Feeds screen, but be aware that whilst the dialog will add additional modules okay, it will not remove any which were previously downloaded - if you wanted to do that, you will currently need to modify the dialog settings and then delete your entire runtime folder, so that GameMaker will re-download just the bits you now want
- Preferences has also been changed so that downloading any runtime version manually will always ask if you want to activate it, regardless of where on that line you clicked when initiating the download (previously, you had to specifically click the version number in order to be asked)

Offline Support When Signed-In Using Opera Account:
- Up until this release, you were unable to use GameMaker offline if you had migrated your account and signed-in using the Opera Account single sign-in method
- You now can sign-in to a saved Opera Account session and carry on offline for the usual must-go-online-once-a-month requirement that GameMaker Accounts have long used

Pinch-To-Zoom Has Been Re-Implemented:
- The Workspace can now be zoomed in and out on devices with touch inputs (like trackpads)
- Windows IDE, this is done via Ctrl plus one finger on the trackpad; Mac IDE, it’s a two-finger pinch gesture
- There is a new Preference to disable this feature if you don’t want it

Image Editor Support For Pasting As A New Layer:
- The Image Editor now allows you to paste directly from your clipboard to a new layer
- This new layer will be automatically placed above the currently-selected layer and the pan tool will be auto-selected to immediately allow you to control the pasted content as you wish
- This is the default behaviour now, as there was a lot of feedback in favour of this change, but the previous “Paste-As-Brush” behaviour can be enabled again in Preferences if you want it
- Implemented Case-Insensitive Compatibility Mode For The Mac IDE:
- There has been an ongoing issue with case-sensitivity when working across different operating systems and changing an asset's character case when renaming it (and how this change of case might then effect external tools, such as git)
- An option has been added to allow you to disable these extra renaming checks, as it is quite performance-heavy
- (The same changes affect the Ubuntu IDE Beta also, as it behaves the same as the Mac IDE)

Feather Additions:
- Feather Now reparses scripts whenever they are edited outside GameMaker
- The new rule GM2064 will validate that initialiser struct variables have variable definitions for the target object (and its Quick Fixes will now create Variable Definitions for missing fields)
- GM1013’s Quick Fix behaviour has now been modified for creating an instance variable
- Device Manager Support For Opera GX Mobile Devices:
- You will likely see a new firewall prompt for this the first time you start this new version, so for more information on this functionality and how to use it, please see our new FAQ all about it
- Added a new MQTT server for discovering Opera GX Mobile devices on your network, allowing you to just as easily test your GX games on your phone or tablet as you can on your desktop
- Simply scan the QR code inside Device Manager to connect the mobile device to GameMaker in seconds
- Note that your devices are only linked to that one instance of GameMaker and will be forgotten the next time you close GameMaker

More Room Editor Layers Functionality:
- Old Film, Hue, Ripples, Blocks Background, Panorama Background and Parallax Background have all now been added into the Room Editor for you to use in your games
- Also added an indicator into the Layers Panel to show when any filter/effect has been used on a layer
- Code Editor Support For Binary Literals And Underscores In Numbers:
- Binary literals can now be declared in the form 0b…. (same as the hex literal 0x… that GameMaker has supported for a while). For example: var six = 0b0110; or var thirteen = 0b0100 | 0b1001;
- Also, integer, floating point, hex, and binary literals may now take an underscore to act as a visual separator. For example: var integer = 100_000_000; or var float = 3_141.59; or var hexadec = 0xDEAD_BEEF; or var binary = 0b01101000_01101001;
- Note that this is a Code Editor and Compiler change only - there is no support for this in-game

Misc Other Changes To Be Aware Of:
- Building Projects: Gradle version has been updated to match the requirements of Android APIs 32+ [please see the runtime notes for a little more information]
- Debugger: The struct versions of "activeTracks" no longer uses the wrong order for "colourmultiply" track values [was actually that the in-game order was wrong and you might need to change your code, so please see the runtime note’s Change To Be Aware Of section for more information on this one]
- Licensing: Proxy server of incorrect type causes startup crash [additionally, the proxy server details field now blocks https addresses from being added and there is more logging also for if your setup does somehow still cause issues]
- Localisation: Our language csv files have now been updated to conform to RFC 4180 standard (and therefore escape special characters) - whilst you may not need to make any changes in your existing custom language files, you should be aware of this process change if you’re editing ours or making your own localisation spreadsheets from scratch in future
- Sequence Editor: It was never really exposed in the IDE, but there was a WIP asset track available in-game - this has now been removed, as the full in-game implementation was never done, and so if you were using this “hidden” track in your games you will now need to change your code accordingly

Other Bugs Fixed:
- AnimCurve Editor: [Windows IDE] GM no longer crashes when undoing all changes made to a newly-created curve
- Asset Browser: Renaming a group the same as another group in the same location now shows the correct message, rather than an incorrect "group cannot contain or /" message
- Asset Browser: Room Manager "Collapse All" context menu command does not work unless you clicked in empty space
- Building Projects: Fixed that you were unable to build any project which uses a Sprite with Nine Slice enabled as a Background layer - and that GameMaker showed an incorrect error message about what was causing the build to fail
- Building Projects: [Android] Fixed that injection of IronSource's recommended ProGuard values created an invalid ProGuard file because an unwanted "methods" closing tag was incorrectly added
- Building Projects: [GDK] Added a stage to precompile the shaders in a project
- Building Projects: [HTML5] Fixed that attempting to re-run a project when one is still running only asked you to cancel the existing run one time and then would require you to stop the build manually each time thereafter
- Building Projects: [HTML5] Also fixed that clicking the 'Stop' button to end a running project resulted in the mixed message “FAILED: Run Program Complete” being written in the Output Window log
- Building Projects: [HTML5] Fixed an issue where projects which contain the "JuJu Libraries" extension as well as other extensions could fail to find some of their extension functions later in-game
- Building Projects: [macOS] Fixed an issue where YYC builds from the Windows IDE could fail for some projects due to an incorrect App ID value being sent
- Building Projects: post_texture scripts are now run when targeting all platforms, not only when building for Windows
- Building Projects: Calling "sprite_width(0)" now gives a compiler error for you to fix, as it is a code error in-game, so now the IDE will make you aware sooner
- Building Projects: Optional arguments in functions being omitted no longer causes a variety of build failures which differed depending on how that function is later called
- Building Projects: Fixed the Xcode project GM writes out so that XCode 14 requirement changes no longer cause "undefined symbols for architecture arm64: _objc_msgSend$X" errors when using older XCode versions
- Building Projects: [Android] Runner no longer always fails the new Lint checks in SDK 33
- Building Projects: [GX.games] You can now upload games when using a different config to "Default"
- Building Projects: [HTML5] Builds no longer fail for audio files which contain .png or other non-audio metadata, which also stops a method of GameMaker going unstable when reloading the project after failing that build
- Building Projects: [HTML5] Builds again work reliably when the Game Options’ "path folder name" has been changed from the default of "html5game" to anything custom [this was an issue in 2022.9 only]
- Building Projects: [Ubuntu IDE] iOS YYC projects containing extensions no longer gives an incomplete Xcode project with missing .ext files
- Code Editor: Fixed clicking MMB on a function again so it scrolls the new Code Editor window down to place its declaration line at the top of the visible area
- Code Editor (Visual): Added nodes for the Get/Set/Use Rollback Player Preferences functions recently added for GML in Beta releases
- Code Editor (Visual): In multicolumn layouts, using the arrow keys no longer affects all columns at the same time
- Crash Reporter: Fixed various project-building issues which caused the crash reporter to be triggered on next startup, when there's no record of a crash in the log and you were likely unaware of any issues with the previous run
- Debugger: Fixed that HTML5 games could fail to run (gives white screen) if invisible non-standard characters had accidentally been included in the project and therefore broke the obfuscation process
- Feather: Fixed that a Function declared inside a Function would incorrectly use the Instance Variable naming rule
- Feather: Autocomplete now shows in-scope variables when typing at the end of a script
- Feather: Autocomplete now shows results on partial match following dot dereference
- Feather: Fixed the return values for various colour and blend functions
- Feather: Directives specified in scripts now propagate correctly into the functions declared within that script
- Feather: Enum number values are no longer always cast to real when used
- Feather: Extensions now have a way to supply information about their functions, so unexpected messages are no longer shown
- Feather: Now correctly identifies any functions which are prefixed by macro names
- Feather: Now correctly renames some “non-game” asset types and gives better, more consistent name suggestions for all
- Feather: No longer reports the wrong type of variable when using the modifiers / and %
- Feather: Fixed a GM crash when reusing the name of a function as its return value and then hovering over the return value line of code
- Feather: Fixed an error when giving a struct to instance_create_depth and instance_create_layer and calling a variable from the struct in the create event of the relevant object
- Feather: Fixed an incorrect GM1045 warning when returning -1 from a function if its JSDoc says it returns Asset *
- Feather: Fixed an incorrect GM2025 when passing a variable of type Asset.GMObject to a "with" statement
- Feather: Fixed an incorrect warning that an alarm does not exist if calling the alarm in a function
- Feather: Incorrectly-formatted JSDoc types now show the expected GM1062 errors
- Feather: Inheriting a constructor declared in an event will no longer give incorrect GM1054 warnings
- Feather: JSDoc types for arguments of constructor functions assigned to macros are now shown correctly in tooltips
- Feather: JSDoc values are now determined correctly for functions declared inside struct literals
- Feather: LowerCamelCase and UpperCamelCase naming rules no longer say that names containing consecutive uppercase characters are not valid
- Feather: Creating a ds_map using an accessor will now determine the type correctly in further Feather tooltips, etc.
- Feather: Fixed an issue which made it possible for GM1010 to be incorrectly displayed
- Feather: Preferences default values for naming styles now match our guidelines for coding standards in our official tutorials, documentation and extensions (but of course you’re free to edit them as you wish)
- Feather: Syntax errors for missing closing brackets are now highlighted in the code editor and the matching Feather Messages error is now clickable
- Feather: The suggestion icon no longer sometimes covers the total number of suggestions
- Feather: Tooltips now more reliably and quickly update their contents when hovering over same identifier on a different line
- Feather: Tooltips for enums no longer fail to display values which are incorrectly set to be strings (also improved the tooltip contents when showing enum members)
- Feather: Fixed various type-checking errors for a number of functions due to bad data in the GmlSpec.xml file
- Feather: Fixed an unexpected GM1041 Warning when calling audio_effect_create() and using any of its AudioEffectType enums
- Feather: Fixed an unexpected GM1044 message when calling "event_type == ev_draw && event_number==0" because ev_draw_normal event type is not supported
- Feather: Fixed unexpected GM2016 warnings for some "global." variables declared in scripts
- Feather: Fixed an unexpected GM2018 warning when declaring a new var and not giving it an initial value on that same line of code
- Feather: Using bitwise operators in macro definitions and then calling these macros no longer breaks subsequent code highlighting within scripts
- Feather: Variable Definitions used in the matching event for both parent and child objects no longer get an unexpected Warning GM2016 message
- Feather: Fixed an incorrect GM1009 message when comparing layer_get_id() to -1
- Feather: ds_priority_delete_min() is no longer incorrectly treated as a pure function
- Feather: gpu_set_tex_...() functions "sampler_index" argument type is no longer incorrectly treated as Real, now is of the correct type Id.Uniform
- Feather: The “id” built-in variable now changes type according to any custom JSDoc parameters you have defined
- Feather: mp_* functions are no longer incorrectly treated as a pure function
- Feather: Fixed that type-checking for Struct.WeakRef “ref” field is not declared as Any*
- Feather: sequence_instance_override_object()’s struct argument is now treated as the correct type
- Feather: skeleton_attachment_exists() and skeleton_attachment_replace_colour() are now highlighted properly and are no longer missing some of their tooltip info
- Feather: time_source_...() functions now allow Constant.TimeSource as a valid arg type for all applicable functions
- Feather: Local variable definitions no longer incorrectly flag GM2043 in some circumstances
- GXC Integration: GM no longer goes unstable when uploading builds to GX.games if Game Options is still open at the time
- Game Options: GM no longer goes unstable when clicking the GX.games account status refresh button if the SSO response is delayed significantly by the remote server
- Game Options: [PS5] Finished the removal of redundant options which are not actually used during builds [the UI for these was removed in 2022.8, but creating a new project still wrote the default values to the .yyp, so those are removed now also]
- Go To: Feather's Preferences now appear in search results
- Image Editor: GM no longer goes unstable after changing the Onion Skin settings and then editing the preview frames manually
- Inspector: Scrollbar range is now limited correctly, so it no longer continues to reduce in size and leads to an offset mouse cursor
- Inspector: [Room Layers] The Instances panel can now be be manually resized
- Inspector: Can now click on an already-selected item within a multi-select list to deselect it
- Inspector: [Font] [Mac IDE] Tags field no longer cuts off the bottoms of some characters
- Inspector: [Room Instance] Copy and pasting an instance which has creation code now shows this code immediately
- Inspector: [Sequence] Opacity and Offset controls for images are now disabled when no image has been selected yet
- Install: Fixed an issue where the runtime installation process can cause a RDP disconnect
- Licensing: GM no longer crashes on startup when encountering a Proxy server of an invalid type
- Local Packages: Importing single objects from a package now more reliably retains its “parent” value when an object with the parent's name already exists
- Local Packages: Importing only a room from a package now fully accounts for the other assets referenced in the room [also stopped GM going unstable if the imported room duplicates an existing room's name]
- Marketplace Integration: Added extra logging to diagnose "failed to acquire access token" errors when updating existing packages [if you do get this issue, please send us a ticket with your ui.log file attached]
- Object Editor: Fixed a GM crash when undoing the movement of an object between AB groups if that object is also open
- Object Editor: Assets can now be dragged onto the Variable Definitions window pickers to set "Asset"-type values
- Preferences: Android's default SDK/NDK/JDK paths are now the same paths Android Studio defaults to for that OS
- Preferences: Fixed a couple of remaining "Resources" name used instead of "assets" in General Settings
- Preferences: Anti-aliasing radio buttons no longer shift to the left after hovering over them
- Preferences: The Feather section is now localised
- Project Export: Root-level compile scripts are now included in .yyz packages
- Project Import: Fixed the default name GM will suggest when any .yyz filename contains additional dots earlier in the name
- Project Save: Removed a redundant warning when renaming newly-created and empty Timeline moments
- Recent Windows: Clicking on a “chained” window (e.g., an object’s Event window) now also Inspects the relevant asset
- Room Editor: Fixed an issue which meant "Inherit Sub Layers" and "Inherit Layer Visibility" were occasionally disabled after enabling one of them
- Room Editor: Duplicating a room now renames all of its instances' creation code files correctly and so the code appears immediately
- Room Editor: Fixed an issue which meant Layers which inherit from other rooms kept showing their "inherited" status after the parent room is removed
- Room Editor: Paths can now be modified when "select from any layer" is enabled
- Room Editor:Reinstated Tile Layer panel preview icons for tileset
- Room Inspector: Selecting an Instance from the Instance Layer list now also selects it inside the Room Editor
- Sprite Editor: [Spine] Fixed an issue which meant it was in some cases not possible to import images which have multiple skins using Spine's mesh-deformation feature
- Start Page: Made the URLs shown on various Template descriptions to be clickable hyperlinks
- Start Page: Downloading any Templates will now recreate the required “TemplateFiles” cache folder if it has been deleted outside GM whilst GM is open
- Start Page: Folder picker button now has a hover highlight
- Start Page: Modified the tour/wizard to start new users on step 2, as they have no existing projects to be shown/told about
- Startup: GM now better handles the situation where both the font set in the skin and Preference's default IDE font cannot be loaded on a machine for some reason- will give proper information that this issue has occurred
- Startup: Fixed that failing to find any runtime feed showed two error dialogs and also duplicated the error dialog string as part of the splash screen
- Startup: GM no longer crashes if you click other buttons too quickly after clicking "Ignore this version" on an update available notification
- Startup: Logging in using SSO no longer causes a harmless machine.General Settings.Environment.Environment error to be written in the ui.log
- Tile Set Editor: Reinstated the auto-tiling brush-builder and animations library panels' preview icons for the tileset
- UI/UX: Fixed an issue where continued mouse wheel input kept scrolling the initial dialog for slightly too long after the cursor had been moved over another scrollable panel
- UI/UX: Added an entry for “GameMaker-HTML5” repo into the Licences page
- UI/UX: Added the "IDE Environment Variables" dialog into the Windows menubar dropdown
- UI/UX: Fixed that reopening closed Output Windows from the Windows menu always created them undocked
- UI/UX: When Feather is enabled, the "Syntax Errors" menu option is renamed "Feather Messages" and will open the correct dock panel (if Feather is disabled, it will show “Syntax Errors” again)
- UI/UX: [Mac IDE] Fixed an issue where a previously-closed file picker dialog reappeared after switching back to GM from another application
- UI/UX: [Mac IDE] Fixed that some commands which use Cmd/Shift/Option keys in Redefine Keys were shown elsewhere in the IDE with their labels incorrectly saying Alt is required