It is a broad question, but there are some things that I’ve learned when dealing with Game producing programs. The ones I was familiar with before coming here is Multimedia Fusion, and Game Maker.
About Game Makers
They are limited. Plain and simple. I think one of the things I hated most was the amount you had to pay to get these games released on different platforms. Seriously, there is no reason you should be paying close to $1000 for something that you can do for free just using programming. I think that is one of the major reasons I switched, but there are some minor ones.
The problem is that you can only do so much in these Game Maker programs logically. Usually, they are good for those 1-to-1 things. However, the moment you try to put some complex formula, I always found it hard to reproduce it in a Game Maker. I always had to tone down my features because the tools given could not pull off what I wanted…
But, I think programming is just an “evolution” of these game creators.
If you think about it, it is all about power. It is about how much control do you want from the system. The more power you want, the closer you get to just working with programming languages. (Of course, after that, they allow even greater control by dealing with assembly, but that is a different topic.)
I guess what I’m trying to say is, using a game maker isn’t bad. If anything, it’ll make your logic skills better which is incredibly important to game making. However, when it comes to making games, I’d always agree that learning a programming language is a lot better because it allows a greater range of control. You’ll never get stuck at a point in where you can’t do something (95% of the time).
Developers interested in games should focus on learning a language and/or picking up a game library. You can leave the game creators for everyone else who can’t be bothered. It is about improving your skill set, and programming is always the richer experience.