GameMaker: “Can you make a game in an old GM version?”

A screenshot of GameMaker 8.1
Does it belong in a museum... or my game?

This is a post about practicality of using variously old GameMaker versions and what it'll take to make your project run correctly for most users.

GameMaker ≤ 8.1

A screenshot of GameMaker 8.1

Context: GM8.1 is the last version that has dynamic code execution (execute_string) and a handful of quirky DLLs that relied on hard-coding memory offsets per GM version (back when GM updated once a year or so).

In some situations these versions also performed better on low-end hardware as all of the assets were packed into a single (slightly compressed) file - good for small projects and bad for big projects and/or being able to use version control (though some tools existed for the latter).

With GM7, GM8, and GM8.1 released in 2007, 2009 (?), and 2011 respectively, older GM versions suffer a bunch from behind-the-scenes changes in Windows APIs, and very few people know how to get around these issues.

A patcher exists to fix a handful of these, and tech-savvy users might be interested in some of the extensions and tweaks from the "GM8.2 project".

GameMaker: HTML5

A screenshot of GameMaker: HTML5's IDE with its distinct gray-orange user interface.
A screenshot from the trailer. I'm not re-installing GM:HTML5 just for this post.

GM:HTML5 was a short-lived version between GM8.1 and GM:S with emphasis on, you guessed it, HTML5.

With advantages of old versions gone and advantages of GM:S yet to emerge, there's very little reason to use it for anything.

GameMaker: Studio 1.4.1804

A screenshot of GameMaker: Studio's IDE with its distinct gray-green user interface.
GameMaker: Studio with its signature popout windows

Context: generally regarded as the most stable GM:S version.

1.4.1804 came out quite a while ago (March 2018) but remains to be the go-to choice for people that only have a GM:S key from Humble Bundle and those who despise the new UI in GMS2 (though also, consider GMEdit?).

Windows

  • Games may run at unintended framerate on some machines (especially those with non-60Hz displays) due to changes in timing APIs in Windows.
    This can be fixed by using GMSched.
  • buffer_set_surface mysteriously doesn't work on some GPUs anymore (originally Intel iGPUs, now NVIDIA too)
    I made an extension that fixes this.

Mac

You can still make Mac apps in GM:S, with a few caveats:

  • You will have to notarize them yourself.
  • Users with Apple Silicon machines will have to install Rosetta for your apps to work.

Linux

GM:S creates 32-bit Linux executables so you'll need to tell the end user to install a handful of x86 packages first. This can be automated with a script, and for Steam you can specify what to do on first install.

iOS

Apple dropped support for 32-bit apps the year after GM:S has been sunset, so you can't do much at this point.

Android

Google has also dropped support for uploading 32-bit apps to Play Store, but you can still side-load them. Other stores may still accept 32-bit apps.

HTML5

Largely usable, though you are left on your own with any bugs or quirks that you might encounter.

Consoles

Platform holders generally expect you to be using a current SDK version so publishing a game made in GM:S (which at the time of writing this is multiple major SDK versions behind) won't be easy, but GM:S is still occasionally used by enthusiasts for PS Vita homebrew development.

GameMaker Studio 2.2.5

A screenshot of GameMaker Studio 2 IDE with a custom accent color
GMS2 IDE with a custom accent color

Context: 2.2.5 is the last version before major programming language changes that require a code review (and possibly a little debugging) due to breaking changes.

As such you'll occasionally encounter a project that's stuck on this version.

Windows

You still have to deal with the scheduling quirk (see GMSched above) but otherwise things are alright.

Mac

Same deal as with GMS1.

Linux

GMS2 switched to compiling 64-bit Linux binaries, so you have a few problems less here.

HTML5

2.2.5 lacks a few years worth of fixes and improvements for the HTML5 target, but generally remains usable.

iOS & Android

I think 2.2.5 should still be fine to publish mobile projects with, though there might be some caveats due to now-outdated libraries.

Consoles

As of 2023 it's still possible to convince platform holders to accept your builds with slightly-outdated SDKs and some older GameMaker games continue to be updated.

GameMaker Studio 2.3.x

Context: the last versions that can load old (32-bit) DLLs (technically removed in 2022.8).

If you don't care for old extensions, you might want to move GM2022 LTS instead.

As of 2023, everything is fine here - the scheduling quirk has been officially addressed, an Apple Silicon runtime has been introduced, and console SDKs are sufficiently recent.

There are always a couple HTML5 fixes that you're missing out, but it's not too bad.

GameMaker LTS

Since recently, the LTS version exists for people don't like the idea of their project potentially catching fire after updating GameMaker - it doesn't get new features as often, but you are also far less likely to encounter issues after updating.

Of course, when taking an old project, you'll still have to deal with making the project work after upgrading it across multiple major GameMaker versions, but otherwise it's the most sensible option for commercial work.

Conclusions

Although it's obviously preferable to use a current version of GameMaker for any serious projects, you can also make-do with old versions and some effort;

Some work of mine (itch; GitHub) can help substitute features that were eventually added to the engine itself.

Related posts:

7 thoughts on “GameMaker: “Can you make a game in an old GM version?”

  1. I’ve tried, but I’m unable to get used to the new way of doing things in the new gamemaker studio 2. Things seem to be hidden, connected windows or whatever are a nuisance to the eye and touch. Even creating an object becomes tedious for me. I missed the old versions (my favorite is 6.1), even gamemaker studio 1.4 was better in this aspect…

  2. Are you sure that building a game for Mac OS with GMS 1.4 is still possible ?
    As it should generate something like a 32bits binary and it is something that Apple does not support anymore, no ?
    Tried recently to target a Monterey computer and everythng went wrong…
    BTW, nice article about retro-gamemaker things !

    • I’m not sure, but I was under an impression that 1.4 was producing 64-bit executables on desktop as Mac OS has been 64-bit for quite a while now.

  3. Thanks for info
    There’s a “patch” available for gm6.1 to get it working on windows 10 etc
    Search user silica at YouTube
    I still use 6.1, it’s great

    • Ah yes, that funny guy.

      Kind of forgot that 6.1 IDE doesn’t run without modifications anymore, though also not sure what would the advantage be in using it over GM7 or GM8 (unless you really like 24-bit images I suppose)

    • What version of the patch you use? There’s a new one, 1.1 now. Something related to fix the PE Headers

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.