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
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 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
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
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.
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…
I like seeing these little blog things :)
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.
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