GameMaker Engine

closed account (3qX21hU5)
So my friend has been raving for the past couple of days about the GameMaker engine and how amazing it is. I personally haven't used it but have heard about it. From what I can gather is that its a drag and drop game creator that also allows for coding through their scripting language. Now I'm actually quite curious if this is a engine that is worth using. So was wondering if anyone has any experience with it and what their thoughts are about the pros and cons. If I did use this engine I would be using it mainly for 2D projects.


My main concern is that it might not have enough flexibility. I'm worried that since it is mainly a drag and drop creator that I wouldn't be able to do anything advanced.

On the other hand I love that it seems to be easy to port you project to many devices like Windows 8, Mac OS X, iOS, Android, HTML5 and Windows Phone 8 very very easily.

So anyone got any thoughts on this engine/creator?

Edit: Here is the link to the site if you haven't heard of it http://www.yoyogames.com/gamemaker/studio
Last edited on
closed account (S6k9GNh0)
It's been known to be slow and lacking in true freedom (such as expanding on the engine, modifying things that only GameMaker can handle). They've improved on it greatly though and they're even making a Linux version.

However, the freedom lost compared to the time it takes to just creating your own 2D game from scratch is generally not worth it. In the case you want to make a more higher-quality game, you'll need the knowledge that only starting from scratch can provide.
First thing I'll say: Anyone who has used Game Maker for more than a month (I'm including all beginners) will never touch any drag-and-drop function other than the "Code" block.

As someone who has started with Game Maker and has been using it ever since, I'm going to go ahead and say that there are no limitations to what you can make. Someone made their own version of Steam with it, and is one of the highlighted games on the Game Maker Sandbox website. (Edit: That's a "was," they change it quite often, but it was up there for a while.)
http://sandbox.yoyogames.com/games/183405
They even made a DLL for users to embed into their game for integration with the system.

No, there isn't freedom in that you can modify the way that Game Maker runs, but that's rarely ever impeded development. Certain restrictions are a bit annoying (such as objects are just a collection of values and "events", so making your own data structure has to be done with a C-style API.) Speed is as much of a concern as it is with any language that is interpreted.

For things that are a speed concern, you're free to write some code in C++ and compile it into a DLL. GML has support for DLLs through extern_define() and extern_call(). I did this with a recent game that required AI that sorted through hundreds of instances at a time for, where such code in any interpreted language would provide unacceptable speed hits.

And then, for a lot of the things that Game Maker can't do but you don't want to make yourself, there's the unofficial GMToolbox:
http://www.gmtoolbox.com/

It's a nifty little set of tools that provide just about any bit of game functionality that you can think of, and then some. Looking at everything under the Hardware/Compatibility section blows my mind. Also, these are all extensions that link into Game Maker's editors. Each of which you can override for your own preferable editor (you just can't change the object/room editor.)

For smaller games, it's definitely best to go Game Maker unless it's 3D (Game Maker can do 3D, but it's just not very good with it) or you're doing it for educational/for-the-hell-of-it purposes. Shunting the built-in level editor, real-time error checking and auto-completing code editor, resource integration into the language, and auto-packaging of your final application (you can finally just send an EXE instead of a ZIP or an installer) makes no sense whatsoever.

Even for larger games it's not a bad idea. Iji is a great example:
http://sandbox.yoyogames.com/games/118428-iji
At least 20 giant levels with good AI and boss fights, great game balancing/level design, and some awesome game mechanics. The story is a bit cheesy and the main character is dull as hell, but hey, that defines a lot of AAA games right now.

Even if you never use it for anything else, I do suggesting taking a look at it for things like Ludum Dare or Indie Speed Run.

It really is unfortunate that so many crap games are made with it.
Last edited on
closed account (3qX21hU5)
Thanks for the info NGen I will start to look into that more. One other question I had is about the graphics capabilities such as particle effects, sprite blending options, ect. How well does GM handle these? From what you said I get the impression I can code a particle engine and then use it in GM. Like you said most people seem to make terrible games with GM and it kind of scares me about it capabilities.
Last edited on
I've never used Game Maker but I would think it would take away all the fun and interesting parts of the game making process.
Zereo:

It handles particles effects well, but only if you use the built-in particle effects system. That's ran using compiled code, which allows you to have thousands of particles on the screen without significant overhead. The only problem is that the API is cumbersome and you're limited to the flexibility that Game Maker allows. I recently did work on a game in GM and did most of the particle effects in it. I resented every moment of it.

You're free to write your own particle effects system using GML (Game Maker's scripting language) and GM's built-in objects system, which would provide all of the flexibility that you would get if you had coded it in C++. It supports all of the blending modes that you would find in OpenGL/Direct3D through the draw_set_blend_mode() and draw_set_blend_mode_ext() functions. The only issue with this is that running all of the processing for the particles in an interpreted language is magnitudes slower than coding it in a compiled one. If you're planning on having advanced particle effects, I would instead suggest implementing the system in a DLL using C++ and have the DLL report particle positions to Game Maker, which you would use to draw.



Naraku:

I agree. If I just want to make a game I'll normally do it in Game Maker, but if I want to have fun coding I'll use C++. That lack of the ability to design datastructures or APIs in GM takes away a LOT of the design challenges, but I suppose that can be said of any complete game engine. A lot of the time I might have a rendering algorithm in mind and will implement it in Game Maker just to see if it would work, and then I would code it in C++ to actually have the fun of programming. It's more of a game designer's tool than it is a programmer's tool. You can tell by the way it lets you use the = operator for both comparison and assignment, and the way that it doesn't actually enforce the use of semicolons but still supports it. Both of these run the same:

1
2
if x = 5
    y += 3

1
2
if (x == 5)
   y += 3;


Even though it's allowed and isn't technically wrong, I still cringe whenever I see the former on GM forums.
closed account (3qX21hU5)
Hmm this actually changes my mind a lot about GM. At most I would use it when I need to produce 2D games within a quick timeline, or when I just don't feel like going in and doing all the heavy lifting. I could also see it as a nice little engine to do prototyping in for new games.

@Naraku Ya I can agree with you there. It wouldn't be as much fun as coding it all in C++, but there are times where it could be useful like when you have a very short timeline.
closed account (1yR4jE8b)
If I wanted to make a (relatively) non-trivial game, why would I use Game Maker instead of say Unity 3D Free?
closed account (3qX21hU5)
I guess that is up for you to decide.
Use Unity for 3D and GameMaker for 2D. Simple as that.
Topic archived. No new replies allowed.