Theory and Practice Question

T

Tactician

Guest
Hello again, this is my second thread on this forum. For someones first time learning GameMaker Studio 2, can they only learn the theory from the manual, and a course teaching the basics for them to start practicing GML? There are also courses teaching how to code games, examples being how to make a platformer, make the player wall jump. With basic knowledge are they in need of learning examples to broaden their understanding of the theory? What would happen if they wanted to code the player rope swinging and there wasn't a tutorial? Would it take them longer to figure this out with their basic knowledge?
 
T

Taddio

Guest
There is zillions of tutorials and courses to teach you anything from a pong game to a JRPG, use Youtube and Google.
I would suggest starting with basic games and consulting the manual when needed, and not going through it before even getting started. There is a HUUUUGE amount of information in there.
 

FrostyCat

Redemption Seeker
Think of the Manual only as a dictionary. Yes, it has the definitions of every word on it, but don't expect to learn a language with that alone. You'll have to pick up the grammar, usage styles and conventions of the language from other sources.

Personally I think there is a huge need for non-specific practice resources in the GM user community. By non-specific, I mean broadly applicable skills like what events happen when, basic loops and control structures, data modeling, debugging strategies and common instance interaction patterns. It's what most of us would call "theory". And if my experience in the Q&A is anything to go by, the absurd dependency on tutorials for general problem solving indicates a massive theory deficit.

The fetishization of tutorials in the GM user community began to get out of hand around 10 years ago. I don't blame rookies for following a couple of platformer or arcade game tutorials when they're just getting started, but relying on them for every little detail is an issue. Sure, there are lots of tutorials out there, but they can't possibly cover all the permutations, and sooner or later a project-specific problem/need would show up. That's when reduction to theory and devising a plan like an adult would be the the right thing to do. When that doesn't happen and the only thing they'd do is to wait for cavalry, that turns a preference into a problem.

Having basic knowledge has never hindered my ability to solve problems, in fact that underpins it. When you see me post on the Q&A sections, 99% of the time I don't use tutorials. It takes me less time to derive a solution from basic theory (most of them memorized), than to search for and then read/watch a whole tutorial (if one even exists, that is). And here's something most people don't give thought to: What would a tutorial author have done before the tutorial existed? Exactly what I do all the time: Reducing a need into terms of broadly applicable skills, making a plan on my own, then acting it out step-by-step. It takes time and practice to get this skill right, but not even trying to get it right is sheer sloth.

Using tutorials for learning is fine, but using tutorials for general problem solving is a loser's game. See all those people posting on the Q&A crying about how they searched for and watched hours of tutorials on end, and none of them is their salvation? That's a testament to the stupidity of their choice.
 
T

Tactician

Guest
Personally I think there is a huge need for non-specific practice resources in the GM user community. By non-specific, I mean broadly applicable skills like what events happen when, basic loops and control structures, data modeling, debugging strategies and common instance interaction patterns. It's what most of us would call "theory".
Would you know of any non-specific practice resources that would help people in the long term? As I understand, for beginners it's counter-intuitive for them to balance theory relating to their practice method. It's intuitive for them to repeat the performance of an activity as to acquire or maintain proficiency in it with the imbalance of thesis. The problem is that they are dependent on others shortcuts to save them time and effort, these will yield short term solutions, but doesn't address the underlying condition that keeps arising.
 
M

Misty

Guest
Logic classes. Enlightenment, how-to-think, abstract thought, scientific method, reason, debate, etc.
 
T

Taddio

Guest
There is hundreds, if not thousands of little things that comes into making even a simple-looking game. Movement, collisions, basic A.I. (or something that at least looks like it), alarms, sprite animations, event orders and what they do, learning to create/change variables at the right time and properly accessing them in the most efficient way (this is a big one), making menus, making the game fun, not getting discouraged (that's the most difficult, and there's no tutorial on this one that I know of)...Eventually you will move on to intermediate stuff like shaders, data structures, enums, state machines, loops, and all that stuff... After that, and even before, you'll be able to debug yourself of pretty much anything on your own.

Basically, just learn the right way. Study the problems you come across until you master that pretty good. Be familiar with the principles and think about the potential uses in a broader way. Then continue with your project until you hit the next roadbump (which you will), and repeat the process all over again.
If anything in the list of things I gave makes you go "huh?", then you know what to do: make a fresh project, open the manual, google and a fresh GM session and experiment. Always run stuff in the DEBUGGER, and learn how to use it, it will speed up your learning curve 10x.
 

NightFrost

Member
I wonder what people think of YYG's very positively made declaration of Making Games Is For Everyone. My own feeling is that Making Games Is (Not) For Everyone.
 
T

Taddio

Guest
I wonder what people think of YYG's very positively made declaration of Making Games Is For Everyone. My own feeling is that Making Games Is (Not) For Everyone.
Well, it's the view of what a game is that changes as you grow as a dev too...
We all used to think at one point or another that Click the Clown was the greatest game ever made, didn't we?
 

YanBG

Member
After spending too much time figuring something by my own, i'd suggest join a team and just learn the ropes of coding.

At first i didn't know the algorithms i'm researching now even existed and didn't know what to really look for.
 
FrostyCat has it right. But as they said, there's not too many 'tutorials' out there on building a base of knowledge, mainly because the titles are not flashy enough for people to click on them. "Linking data structures" or "Algorithms 101" is not going to get as many people clicking on it compared to "Make a platformer in 1 hour!"

This is also the reason for some of the less uhhh, let's say nice responses on the Programming board. A lot of people post there with "bugs" that aren't really bugs, they are really a complete lack of understanding of even the simplest programming concepts. Of course, everyone starts somewhere, but sometimes it gets frustrating to have to tell the millionth person "Read what variables are" or "Read what events are". GMS has a funny problem in that respect as it markets itself as a beginners tool, but ANY game dev is not really for beginners. In fact, coding games can be some of the most complex code that is used in the realm of programming. You have to go deeper than simply watching a tutorial or something in order to be able to really make any game of your own.

Basic programming fundamentals will serve you well. This means researching what loops are and how they are used. Learn about data structures, what's the difference between a map and a list and why would you use one over the other? Learning how to do a sorting algorithm will teach you more about coding structure than any basic platforming tutorial. Learn to count in binary (it's not necessary to know how to code, but it's a generally useful skill and is vital if you ever need to use some bitshifting, etc). And you can find millions of these tutorials online, they just aren't necessarily in GML.

I am not a good programmer at all, but I still basically never have to come to the forums for help. If I run into a problem I'm having difficulty with, I look up the general idea of the problem in google and find a wealth of answers in other languages. Then I just convert whatever language it is into GML (most languages are basically the same, it's just syntactically different, I might not be able to write java/c#/perl/etc code, but I sure as hell can read it and tease apart what it's doing in an afternoon). Relying purely on the GML community to teach you how to program is going to be a bad time.
 
Top