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.
Context: GM8.1 is the last version that has dynamic code execution (
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 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 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?).
- 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_surfacemysteriously doesn't work on some GPUs anymore (originally Intel iGPUs, now NVIDIA too)
I made an extension that fixes this.
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.
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.
Apple dropped support for 32-bit apps the year after GM:S has been sunset, so you can't do much at this point.
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.
Largely usable, though you are left on your own with any bugs or quirks that you might encounter.
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.
GMS2 IDE with a custom accent color
As such you'll occasionally encounter a project that's stuck on this version.
You still have to deal with the scheduling quirk (see GMSched above) but otherwise things are alright.
Same deal as with GMS1.
GMS2 switched to compiling 64-bit Linux binaries, so you have a few problems less here.
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.
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.
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.
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.
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;