Personally, I'm opposed to Shaun's (and HeartBeast's) tutorials. Yes, Shaun is an honorable member around here and yes his tutorials are some of the best known and pretty good for the most part, but they're far from perfect. A lot of questions that pop up around here are about issues in his tutorials. I've seen a couple of them and there were errors they (HeartBeast included) should have edited out. Furthermore, most people these days don't have the patience to actually sit through ALL of their tutorials in order, or even just one tutorial from beginning to end. The videos also expect you to know GML syntax ahead of time. I see too often posts like, "Why is this code not working? I copied Shaun Spalding's tutorial," and the issue was a basic GML syntax error that even the UI flagged them on.
This needs to be emphasized more over the currently in-vogue deference to Spalding/Heartbeast.
Personally these "video tutorials" drive me nuts as to how inflated they make novices feel, without backing them with any reusable skill. They start thinking they're good at GM because they copied what the tutorials showed and got a somewhat believable result. But down at the core, they can't even set or scope a variable right. Neither can they trace code that isn't already commentated by someone else. The instant they set out to do something themselves, they get cut down to size.
Here is a small section of code from Spalding's platformer tutorial:
Code:
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);
move = key_left + key_right;
I can ask a handful of novices to prove why it works, and virtually all would say they can only (or only want to) see it work but not prove it. Anyone who doesn't prove why it works is in no position to build upon it or derive real understanding from it. Novices these days are increasingly worthless without constant visual aid, and this lack of self-initiated fact-checking is part of the problem.
Neither would any of them point out the semantic conflict in the
key_left = -keyboard_check(vk_left); line. If later they want to check if a key is pressed for some other purpose,
if (key_left) won't work while
if (key_right) still does. I don't expect them to see the issue right away, but this total, unquestioning submission to tutorial content has to stop if they are to develop any sense of professional judgment.
Also, read through the forums, especially the archived forums. I've been a GMC member since 2005. I learned a lot of things about GM not just through my own experimentation but also through posts by other members. The forum moderators aren't just people who sit around at home playing Forum Nazi; a lot of them have been programming with GM for over a decade.
I have to disagree with the one about the archived forums. You're looking at this from the wrong perspective.
First of all, the old GMC is next to unusable as a novice resource at this point. It has been entirely de-listed on Google, all they can use is the relatively rough search engine. The wording has to be almost exact, and you have to get it right in one or two shots or it flood-controls. Even I don't have a 100% shot at finding my own posts from memory. From my experience, using it effectively at this point requires considerable time spent on it while it was live, a luxury that recent novices simply don't have.
Another issue is outdated information. As GMS 2 picks up momentum, it may start becoming a source of partial misinformation, like Apprentice/Companion in GMS 1. Filtering out the still applicable from the already obsolete requires historical expertise that novices can't be expected to have.