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.