Where should I start learning game development?

Started by
11 comments, last by Serapth 9 years, 4 months ago

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.

This implies that being a developer for any length of time erodes your ability to help others learn your craft, and therefore my insistence to learn C++, the industry-wide standard language of game development, is bad advice to give someone who wants a career in game dev. This assertion lacks logic. It is also insulting to aspiring students that they must be too stupid to learn to code a for-loop in C++ before they've done it in PHP or something first.

Before my current job I spent three years teaching programming students, and in my spare time today I still make C++ tutorials for beginners with overwhelmingly good reviews. C++ was my first language too, so I know very well the struggles of learning it. Learning an "easier" language first won't make it easier to learn C++, and in my teaching experience, more often than not encourages bad coding habits that you'll have to unlearn once you start using a real language like C/C++.

So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra. There's much more to it than that, but that's where you start.

Advertisement


So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra.

You do not need to know C++ to make games. That's clearly a false statement, proven by the many, many games made in other languages/engines.

For AAA studios, knowing C++ might be a requirement, but the original post specifically mentions indie studios, which typically do not have the same criteria for e.g. performance as AAA studios have.

I also don't agree with your claim that saying "C++ is harder to learn" is equivalent of saying "you are too stupid to learn this, go look at something else".

Hello to all my stalkers.

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.


This implies that being a developer for any length of time erodes your ability to help others learn your craft, and therefore my insistence to learn C++, the industry-wide standard language of game development, is bad advice to give someone who wants a career in game dev. This assertion lacks logic. It is also insulting to aspiring students that they must be too stupid to learn to code a for-loop in C++ before they've done it in PHP or something first.

Before my current job I spent three years teaching programming students, and in my spare time today I still make C++ tutorials for beginners with overwhelmingly good reviews. C++ was my first language too, so I know very well the struggles of learning it. Learning an "easier" language first won't make it easier to learn C++, and in my teaching experience, more often than not encourages bad coding habits that you'll have to unlearn once you start using a real language like C/C++.

So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra. There's much more to it than that, but that's where you start.
You don't downvote because you disagree by the way.

Yes, I know the irony in down voting you here. that said, I do believe your advice is overwhelmingly bad.

As you said yourself, you know the struggles of starting with C++. So why the hell would you inflict that on other people?

The rules of teaching are pretty we'll entrenched at this point. You should focus on as narrow a field of study as possible, structure lessons so the learner feels accomplishment, and build on those accomplishments.

With C++, in addition to having to learn to program, the user also has to learn a 20 year old linking system, a language with a completely ineffable inheritance system and more rules than most legal codes, a build cycle that certainly doesn't support experimentation (non REPL), in a language which is a mashup of 4 prior languages.

It is not insulting to a student to managing their learning curve, in fact, it's the signs of a good teacher. Every skill has a natural progression of difficulty, programming is no different. Properly managing that progression is the key to efficient learning. Yes, a student can learn starting with C++, it's simply not efficient.


Compare and contrast teaching a for loop ( your example ) in say... Lua or JavaScript vs C++.

In Lua or JavaScript, you explain how to enter code, feed it in for evaluation and most importantly, you explain how the code works.

Now do the same for C++... Now you have to explain... The compile link cycle, #include, namespaces, main, scope, bracket operators, etc.

Now take that example to something like drawing a sprite on screen with Lua vs C++

One is a two step process, the other is about 20, only one of which is about code. So yes, you will learn faster if you learn in a more beginner friendly language, you will also be more likely to stick with programming I you see initial success. And yes, if you know programming concepts already, when you do decide to learn C++ the process will be faster.

This topic is closed to new replies.

Advertisement