Pros and cons of systems like GameMaker, GameSalad, etc?

Started by
2 comments, last by frob 10 years, 2 months ago

Okay, so this question may not be for total beginners, but I'm still close enough to one that I'd like to hear from more experienced developers on the subject.

See, when I started creating games, I used GameMaker; I developed a complete "console" type system with at least 4-5 games for it, and back then I only knew the bare-bones basics of programming. Then I got a new job and the programming stopped for awhile. But last year, I started again; I learned Java and created a couple games and other programs. Anyway today, I answered a couple questions on here from true beginners asking about where to start, and someone brought up GameMaker. But the more I thought about it, the more I got to asking myself, "why'd I ever stop using it?" :)

So what I'd like to know is, what do you think are the pros and cons of using a system like GameMaker (or GameSalad or whatever else is out there) vs. a "real" programming language (like Java, C++ etc)? From my experience in Java and GameMaker, here's what I've seen so far:

GameMaker:

Pros:

- Things that should be simple, are simple (animations, sound, etc.)

- Things that are not so simple, are fairly straightforward (multiplayer games, joystick support, running external programs, etc.)

- One programming language (GML) to master

- No need to mess with deep system-level stuff like memory management or multithreading

- Buy the right version and you can export games to just about any platform (web, Android, iOS as well as PC/Mac) - talk about platform independence! :)

Cons:

- Expensive

- Not exactly resume material (if you're looking into developing professionally)

- If there are memory or other system-related issues, debugging might be pretty tricky

Java:

Pros:

- Fairly platform independent

- Free

- Looks better on resumes & developers are in demand

- Able to work with extrenal technologies (databases, HTTP requests, etc.)

- If you understand the system-level stuff, you can work with it to develop programs that may be better quality "under the hood".

Cons:

- Humungous code base - their motto could be "we have an API for that". : )

- Sometimes even the simple things are a colossal pain to implement

- If it doesn't work on a certain platform, you'll have to go learn another language.

Anyway, that's my 2 cents, but I'd really like yours. :)

Thanks.

Advertisement

One programming language (GML) to master

True of Java (or any other one programming language) as well. Further, good programmers know many languages.

- Not exactly resume material (if you're looking into developing professionally)

That isn't entirely true. A finished project will make a better portfolio piece than an unfinished one, usually. This is especially true if the position you are applying for is something more like a game design position rather than an engineering one. Further, you shouldn't judge the value of something only on the basis of its merit as a portfolio piece in a job interview. Building and completing games in GameMaker can still teach you valuable skills about logical thinking, structure, and problem solving. Even if you never put those games on your resume.

If there are memory or other system-related issues, debugging might be pretty tricky

I'm not entirely clear what you mean here.

If you want to be a programmer in the games industry, you're going to need to know how to program. Probably in C++. But if you're just a hobby developer who wants to make games quickly, something like GameMaker can be great if you can make your games within its constraints and you don't really care about learning other languages like C++, Java, C#, Objective-C, or what have you.

You can make pro and cons lists for days. But what really matters is what your goals are.

A game engine provides a higher level development tool. A programming language provides more control over how things happen, and enables things that may not be possible from the higher level view. Often a game engine provides a way to integrate anything you want from a programming language, providing you the option to dive deeper when necessary.

Notice how that sounds exactly the same as the comparison between a high level programming language and a low level programming language. It's the same argument because it's all just how high a level a given development tool is.

I'd say it boils down to a question of intent.

Using an existing game engine is a great thing if you want to make a game. It doesn't matter if the engine is GameMaker:Studio, GameSalad, Unity, or Unreal Engine. Use whatever engine you feel is best for your game, if any.

Now if your intent is to get a job as a game programmer at a major studio, you will need to focus on learning the languages a studio is likely to hire you for. The job listing will probably mention several of C++, C#, Java, Python, Perl, JavaScript, ActionScript/Flash, Objective C, or assorted other languages.


Note that these are not mutually exclusive. If you want to make games for fun that doesn't mean you can't learn to program in the major languages, and if you want to get a job in a major studio that doesn't mean you can't use smaller engines. You can do both if you want.

This topic is closed to new replies.

Advertisement