design your game maker level codespark blog
Remembering Game Maker
"Playing computer games is fun. But it is actually more fun to design your own computer games and let other people play them." - Designing Games with Game Maker (version 5.0), Mark Overmars
Preface
I'd say Game Maker needs no introduction because of how long it's been around for, but maybe it's not as well-known as I believe it to be, despite that.
According to its creator Mark Overmars, "Game Maker is a program that allows you to make exciting computer games without the need to write a single line of code." It features a drag-and-drop system for actions that allows you to program games in a visual manner, but it also included a very nice C-like scripting language called GML or Game Maker Language, in which the most complex projects are written. Game Maker first appeared in late 1999 and it's been updated every couple years ever since.
But does a product that's current, that's still sold and used right now, need to be remembered? I'd say yes. At least, the "classic versions" before Studio do. Compared to the versions of Game Maker we all used back in the day, you'd be hard-pressed to recognize Game Maker Studio 2 as coming from the same lineage!
A kid who likes old games
In the early to mid 2000s, I liked to play Sega Genesis games in whatever inaccurate emulators were available at the time. I have very vivid memories of the lava in the boss arena of Lava Reef Act 2 (from Sonic & Knuckles) not displaying as anything but a glitchy mess in KGen98, an emulator for DOS. Later, I remember exchanging CDs with thousands of ROMs and better emulators with my classmates. By this time, I knew exactly what a ROM was, and I wanted more. When our household got broadband I could finally browse the internet freely, and most importantly get a lot of ROMs. This would later be the reason I would come up with my name: I wanted to join an emulation forum to download a game, and everyone had japanese-esque names, so mine had to be cidoku.
But I digress. It was before that that I stumbled upon one of those sketchy software download sites that were so popular (I think it was Softonic) and saw a program called "Game Maker". My English was basic back then, so I thought "maker" meant something like "mixer". Either the program's description or screenshots mentioned "rooms", and I thought it was referring to game ROMs. So in my little mind, I believed that Game Maker was a magical ROM mixer program that would create new games for me. Excited, I downloaded Game Maker 5.3a and it looked something like this:
The first thing I tried to do was dropping a few ROMs in the rooms folder. It didn't work. Did I notice my mistake at that point? Well, I was disappointed, but I kept the program installed anyway, and eventually I would open it again to see what it was about.
Figuring it out
I don't think I understood anything about how it worked until I found a few places that hosted resources related to Sonic fangames (some are even still up!). There were some tutorials for my version of Game Maker and I downloaded them to see what they were about. There was one tutorial I liked over the others, and I would edit it in every way possible until it was unrecognizable.
I spent most of my days with Game Maker editing random tutorials I found online in the same way, rarely doing my own original stuff from scratch. Using the templates I found, I made many incomplete games that entertained me for a while. Platformers, presentations making fun of my teachers, Windows simulators, games featuring Hips Don't Lie by Shakira when it was new, etc. When I got tired of fooling around, I tried to make more original stuff, and then games completely from scratch. The first one was, I think, a platformer game with a ball on a vertically scrolling level in which you couldn't touch the borders. A while later I more-or-less recreated the Warioware engine, and added a few microgames until I had no more ideas left. I think Game Maker 8 was already out when I started working on my Earthbound Engine, and that was the last thing I did with Game Maker.
I think I skipped version 6 back then. It was somewhat compatible with 5.x, but it broke all my projects, so I didn't like it. It was version 7 that got me to upgrade. It still broke the older 5.x files but I was more patient and willing to fix them, and I was doing newer stuff anyway. I spent a lot of time with GM7, since it actually felt like an upgrade: It added extensions, which allowed people to distribute archives with scripts and DLLs to extend Game Maker, and alpha channel support for graphics (before this Game Maker had 1-bit transparency; the transparent color was the color of the pixel at the top-left of the image). The following had nothing to do with my usage of the program, but it was the first version made in collaboration with a company called Yoyogames, which still does Game Maker to this day (I always hid the Yoyogames banner they added to the IDE).
Serious business
Before Game Maker 5, the program was free and funded by donations. Then 5.x asked for an optional registration fee, and by version 6 it already felt like Mark Overmars was trying to make Game Maker a SUPER SERIOUS tool, that being the reason why he sought for Yoyogames' help for GM7. GM7 was the first version that added actual DRM to the registration process with a thing called Softwrap; everyone hated it because it was so unstable it was easier to crack the damn thing! In fact, I cracked it.
Before the release of version 8 Yoyogames wanted to commit to the thought of Game Maker having evolved and become more advanced and professional and they ran a contest to design a logo with a new, "more modern" design. For some reason the classic hammer on a ball was starting to look "tired" to them:
Two months later, in an incredible display of universally agreed upon bad taste, this was the winner:
Nobody in the community could believe it. Some were so against it they even made a petition just for Yoyogames to reconsider their crimes against design. In an equally incredible change of heart, they did ANOTHER vote (they really needed to release GM8 soon!) with 19 variations of the "winner" and eventually version 8 shipped with a relatively nicer new logo. It didn't really show that Game Maker was used to build things as explicitly as a literal hammer, but at least it wasn't offensively bad. The author of the smiley logo kept the prize money anyway, I bet!
Why classic Game Maker was great
- It was as simple: For me, version 8 was the definitive version of classic Game Maker (even better than 8.1) because Yoyogames hadn't started screwing with the UI much yet. GM8 still looked much like the image up there, but it had syntax highlighting and error checking and complex scripting, so it was a complex tool in a tiny package.
- It was fast: I wouldn't say it was ideal, but for quick prototyping Game Maker was alright. Add a few resources and in less than a minute you could have a sprite moving on the screen. GML was a very flexible language; you could write it in any way you pleased and you would have something that worked. No compilation was necessary, so for games without a lot of heavy resources such as sounds, games would be up and running very quickly (loading music was one of the main bottlenecks I can remember, which is why people used FMOD and other things of the sort). Studio would add many features that made the editor unresponsive and sluggish.
- It looked nice: The program actually looked like it was part of your operating system, without weird skinning engines or anything of the sort, making the UI snappy and with a native look. Studio would introduce much instability and rough edges with its theming.
- It was solid: I never had to deal with broken projects or abject crashes of the IDE, unlike with Studio when it was so unresponsive at times it felt like it would uninstall itself at any time. Until 8.0, they actually tried to deliver a finished program. After that, it was on perpetual beta.
- It was extensible: Extension packs and DLLs added an incredible amount of functionality to your games when the simplicity of Game Maker wasn't enough. Didn't like the included sound engine? You could use an external library instead. Wanted to embed Flash, PDFs, or load 3DS models? All doable with community-made extensions. I could go on.
With all this in mind, it feels in retrospect that Mark Overmars had achieved his goal. However, we can't look at everything with the rose-tinted glasses of nostalgia:
Why Game Maker is awful
- GML has way too many quirks: Just to give you an example, do you like being able to name arguments in a function when you code in a more standard language? Up until Game Maker Studio 2, you couldn't. You HAD to use "argument0", "argument1", and so on. Let's say you had a script called "string_reverse" that reverses a given string. You could perhaps have written it like this:
var result = "" for (i = 1; i <= string_length(argument0); i+=1) { result = string_insert(string_char_at(argument0, i), result, 0) } return result
You can easily see yourself repeating argument0 over an over, and that the situation would soon get out of hand with more arguments. You could have made your code more readable with something like this:///string_reverse(string) var str = argument0 var result = "" for (i = 1; i <= string_length(str); i+=1) { result = string_insert(string_char_at(str, i), result, 0) } return result
It would save you some monotony. The first line is an editor hint that would tell you what the function expected without opening the script, and that was only added in Studio. Moreover, you were limited to only sixteen arguments. An artificial restriction, if you ask me. If you ask other people, they'll give you even more examples. - It's not portable: Being written in Delphi and depending so extensively on the WinAPI and DirectX, neither the IDE nor the games ran on anything but Windows. There was a version of GM7 for Mac, but that was it. When Studio came out, the IDE was pretty much the same and ran only on Windows, but they had export options for every current system imaginable... for a hefty price, that is. At least you could export to Windows and Linux if you had the standard desktop edition of Studio.
- It wasn't visual enough: I don't know if this changed with Studio 2, but in previous versions designing anything with drawing functions required methodical planning. Nothing could be designed visually, you only had the code. Let's say you had an object that draws some text inside a rectangle. Even if you place the obejct in a room, you won't see anything until you run the game. So designing GUIs was a complete mess. Compared to what Godot can do, Studio 1 and earlier feel very lacking for something that was supposed to be very easy to use.
- It wasn't really made for big games: I ignored this often, and you could feel the limitations once you started adding a lot of resources. Don't even think about using classic Game Maker's sound system to load music, games will take forever and ever to load. That's why people used external sound libraries so often. In its defense though, the manual tells you to avoid using graphics and audio resources that are too high-quality if you can and gives advice how to work with that. Studio is slightly better about all this, since resources are loaded externally. But then as your game grew code-wise, it would just start taking forever and ever to compile instead.
None of this stopped the developers of lots of well known big games that were done in Game Maker. Hotline Miami and the original version of Spelunky come to mind and were done in classic Game Maker. Undertale was done in Studio 1, and I don't even want to think about how much Toby Fox must have struggled with that. Hyper Princess Pitch is a little known game made in Game Maker 5 in 2011 (which didn't even have tab completion in the code editor) WAY into the 8.x era.
In memoriam
More than once in my life I got pissed at how stupid some things were with Game Maker and felt like it needed to be thrown off a cliff (more with Studio than the others though...). Eventually, the slowness of Studio 1 made me look for something else. In this case, it was Godot, although I rarely do games these days.
But, thinking back... well, I think classic Game Maker was enjoyable. And if so many games were made by it, then it couldn't have been so awful. To put it some way, Game Maker meant to me what Flash meant to others. As a creator, that is. I didn't play too many Game Maker games made by others (to be honest it's not obvious when a game is made in Game Maker); I played more Flash games by far!
Speaking of Flash games and Game Maker games I didn't play, I'd like to end this retrospective with a nice project by the same guys that do the Flashpoint archive. instance_archive(); is an archive of classic Game Maker games, some patched to run on modern systems. Game Maker was never taken very seriously by too many people, so isn't it nice that there's at least one group willing to archive what it was able to create?
Did you ever use Game Maker in the 2000s? If so, why not reinstall it and relive it? Make a short game, like in the good old days. Maybe I'll do the same with 5.3a, one of these mornings. Game Maker is dead, long live Game Maker.
design your game maker level codespark blog
Source: https://cidoku.net/blog/game_maker.html